Skip to main content

왜 Databricks에서 ML을 하나요?

전통적으로 ML 워크플로우는 도구가 파편화 되어 있었습니다. 데이터 준비는 Spark, 모델 학습은 Jupyter + GPU 서버, 실험 추적은 별도 서버, 모델 배포는 또 다른 도구… 이런 분산된 환경은 관리가 복잡하고, 데이터를 여러 시스템 간에 복사해야 하며, 거버넌스 적용이 어렵습니다. Databricks는 이 모든 과정을 하나의 플랫폼 에서 수행할 수 있게 합니다. 데이터 엔지니어가 준비한 데이터를 별도로 내보내지 않고 바로 ML 학습에 사용할 수 있으며, 학습된 모델은 클릭 한 번으로 REST API로 배포됩니다. 이러한 통합 환경은 ML 프로젝트의 생산성을 극적으로 향상 시키고, 실험에서 프로덕션까지의 시간(Time to Production)을 크게 단축합니다.

외부 ML 플랫폼과의 비교

ML을 수행할 수 있는 플랫폼은 여러 가지가 있습니다. 각각의 장단점을 이해하면 Databricks의 차별점을 더 명확하게 파악할 수 있습니다.
💡 핵심 차별점: Databricks는 데이터 레이크하우스와 ML이 하나의 플랫폼에 통합 되어 있다는 점이 가장 큰 강점입니다. 다른 플랫폼에서는 데이터 준비와 ML이 별도 서비스이므로 데이터 이동과 권한 관리의 복잡성이 증가합니다.

ML 워크플로우 전체 그림

Databricks에서의 ML 워크플로우는 크게 5단계로 구성됩니다. 각 단계가 유기적으로 연결되어 있어, 한 플랫폼 안에서 전체 ML 라이프사이클을 관리할 수 있습니다.

단계별 상세 설명

1단계: 데이터 준비 (Feature Engineering)

ML 모델의 성능은 데이터 품질에 크게 좌우됩니다. Databricks의 Feature Engineering 기능을 사용하면, Lakehouse에 저장된 원본 데이터로부터 피처(Feature) 를 추출하고 재사용 가능한 피처 테이블로 관리할 수 있습니다. 피처 테이블은 학습과 서빙에서 동일한 피처를 일관되게 사용하도록 보장하여, 학습-서빙 불일치(Training-Serving Skew) 문제를 방지합니다.

2단계: 실험 및 학습 (MLflow Tracking)

MLflow Tracking은 모든 실험의 하이퍼파라미터, 메트릭, 모델 아티팩트 를 자동으로 기록합니다. mlflow.autolog() 한 줄이면 대부분의 ML 프레임워크에서 자동 로깅이 활성화되며, 여러 실험을 UI에서 시각적으로 비교하여 최적의 모델을 선택할 수 있습니다. Databricks Notebook에서 Spark의 분산 컴퓨팅 파워를 활용하여 대규모 데이터셋으로 학습하는 것도 가능합니다.

3단계: 모델 등록 (Unity Catalog Model Registry)

학습이 완료된 모델은 Unity Catalog에 등록하여 버전 관리, 접근 권한, 리니지 추적 을 적용합니다. Alias 기능(champion, challenger)을 통해 프로덕션 모델과 테스트 모델을 명확하게 구분하며, 데이터 테이블과 동일한 거버넌스 체계 아래에서 모델을 관리합니다.

4단계: 모델 배포 (Model Serving)

등록된 모델을 서버리스 REST API 엔드포인트 로 배포합니다. 인프라 관리 없이 오토스케일링이 적용되며, A/B 테스트를 위한 트래픽 분할도 지원합니다. 전통 ML 모델뿐 아니라 LLM, RAG 체인, AI 에이전트까지 동일한 방식으로 배포할 수 있습니다.

5단계: 모니터링 (Inference Tables + Lakehouse Monitoring)

배포된 모델의 모든 입력/출력이 Inference Table 에 자동 기록됩니다. 이 데이터를 기반으로 응답 지연시간, 오류율, 데이터 드리프트를 모니터링하며, 품질이 저하되면 알림을 받아 재학습 파이프라인을 트리거할 수 있습니다.

전통 ML vs GenAI 워크플로우

Databricks는 전통적인 ML(테이블 데이터 기반 예측)과 GenAI(LLM 기반 에이전트) 모두 를 지원합니다. 두 워크플로우는 데이터 유형, 모델 종류, 평가 방식에서 근본적인 차이가 있지만, Databricks에서는 동일한 플랫폼 위에서 두 가지 모두를 수행할 수 있습니다.

전통 ML 예시: 이탈 예측

고객의 과거 행동 데이터를 바탕으로 이탈 가능성을 예측하는 전형적인 분류(Classification) 문제입니다. mlflow.autolog()를 사용하면 모델의 파라미터, 메트릭, 학습된 모델 자체가 모두 자동으로 MLflow에 기록됩니다.

GenAI 예시: 고객 지원 에이전트

사전학습된 LLM에 사내 문서를 RAG로 연결하고, 주문 조회 같은 도구(Tool)를 부여하여 고객 지원 에이전트를 구축합니다. MLflow에 에이전트를 로깅하면 동일한 Model Serving 인프라로 배포할 수 있습니다.

실무 워크플로우 예시: 엔드투엔드 ML 파이프라인

아래는 실제 프로덕션 환경에서 Databricks ML을 활용하는 전체 흐름을 보여주는 예시입니다. 이탈 예측 모델을 데이터 준비부터 배포, 모니터링까지 자동화하는 시나리오입니다. 이처럼 Databricks에서는 데이터 파이프라인과 ML 파이프라인이 동일한 플랫폼에서 동작하므로, Lakeflow Jobs로 전체 흐름을 하나의 워크플로우로 관리할 수 있습니다.

Databricks ML 핵심 컴포넌트 맵

아래 표는 Databricks에서 제공하는 ML 관련 컴포넌트를 카테고리별로 정리한 것입니다. 각 컴포넌트의 역할을 파악하면, 본인의 ML 프로젝트에 어떤 도구를 사용해야 하는지 빠르게 판단할 수 있습니다.

ML Runtime 상세

ML 워크로드를 실행할 때는 ML Runtime 이 포함된 클러스터를 사용하는 것이 좋습니다. ML Runtime은 Standard Runtime에 머신러닝에 필요한 라이브러리를 사전 설치하여 제공하므로, 환경 설정에 들이는 시간을 절약할 수 있습니다.

ML Runtime에 포함된 주요 라이브러리

💡 GPU Runtime 은 ML Runtime에 CUDA, cuDNN 등 GPU 드라이버가 추가된 버전입니다. 딥러닝이나 LLM 파인튜닝 시에는 반드시 GPU Runtime을 선택해야 합니다.

현장에서 배운 것들: ML 프로젝트의 현실

ML 프로젝트의 80%는 데이터 준비에 쓰인다 — 실화

이건 과장이 아니라 수치로 증명된 현실입니다. 제가 참여한 30개 이상의 ML 프로젝트에서 시간 분배를 추적해봤습니다.
💡 현업 진실: “멋진 알고리즘”보다 **“깨끗한 데이터”**가 모델 성능에 10배 더 큰 영향을 미칩니다. XGBoost + 잘 정제된 피처가 최신 딥러닝 모델 + 지저분한 데이터를 이기는 경우를 수없이 봤습니다. Databricks의 가치는 이 데이터 준비 과정을 같은 플랫폼 안에서 할 수 있다는 것입니다.

Jupyter 노트북에서 시작한 모델이 프로덕션까지 가는 현실적 여정

데이터 과학자의 로컬 Jupyter에서 시작된 모델이 실제 서비스에 배포되기까지의 현실적인 여정을 그려보겠습니다.

전통적 방식 (Databricks 없이)

Databricks 방식

MLOps 성숙도 모델: 우리 팀은 어디에 있나요?

제가 고객을 컨설팅할 때 사용하는 MLOps 성숙도 모델입니다. 각 레벨의 현실적인 모습을 그려보겠습니다.
⚠️ 많은 팀이 이 실수를 합니다: 레벨 0에서 바로 레벨 5를 목표로 하면 실패합니다. 한 단계씩 성숙도를 올리세요. 대부분의 팀은 레벨 23에서 이미 엄청난 생산성 향상을 경험합니다. 레벨 3에 도달하는 데 보통 36개월이 걸립니다.

ML 프로젝트 실패의 5가지 패턴

성공 사례보다 실패 패턴 을 아는 것이 더 가치 있습니다. 20년간 목격한 가장 흔한 실패 패턴입니다.

데이터 과학자 vs ML 엔지니어: 역할의 분리와 협업

ML 프로젝트에서 가장 흔한 조직 문제는 **“누가 무엇을 책임지는가?”**가 불명확한 것입니다.
💡 작은 팀(5명 이하)의 현실: 한 사람이 여러 역할을 겸합니다. 이때 Databricks의 통합 환경이 빛납니다. 한 사람이 노트북에서 실험하고, 같은 코드를 Job으로 스케줄링하고, 클릭 한 번으로 서빙하는 것이 가능하기 때문입니다.

실전 ML 프로젝트 체크리스트

새 ML 프로젝트를 시작할 때 확인해야 할 항목들입니다.

정리


참고 링크