큐레이션 요약
넷플릭스에서 머신러닝의 민주화: 모델 수명 주기 그래프 구축
Netflix는 ML 자산이 개인화, 스튜디오, 결제, 광고 등 여러 영역으로 확장되면서 모델과 데이터가 각기 다른 시스템에 고립되는 문제를 겪었다. 이를 해결하기 위해 다양한 ML 메타데이터를 통합하는 Metadata Service(MDS)와 Model Lifecycle Graph를 구축했다. MDS는 모델·피처·파이프라인·실험·데이터셋 등의 관계를 연결해 자산의 발견, 계보 추적, 영향 분석, 재사용을 가능하게 하는 기반이다.
ML 생태계의 확장과 사일로 문제
- Netflix의 ML 활용 영역은 개인화 중심에서 다음과 같이 확대됐다.
- 콘텐츠 추천과 사용자 참여 최적화
- 스튜디오의 제작 전후 작업
- 사기 탐지, 결제 라우팅, 정기 결제 최적화
- 광고 타기팅과 실시간 의사결정
- 각 도메인은 서로 다른 기술 스택, 비즈니스 지표, 조직 구조를 사용한다.
- 그 결과 모델이 블랙박스처럼 고립되고, 다른 팀이 기존 모델과 데이터를 발견하거나 재사용하기 어려워졌다.
- 예를 들어 스튜디오에서 만든 콘텐츠 임베딩은 장면 전환과 콘텐츠 구조를 분석하지만, 광고의 문맥 매칭이나 개인화 추천에도 활용될 수 있다.
- 그러나 모델 레지스트리, 파이프라인 오케스트레이터, 실험 플랫폼이 분리되어 있어 다음 질문에 답하기 어렵다.
- 어떤 피처와 데이터 소스가 존재하는가?
- 특정 모델은 어떤 파이프라인과 데이터로 생성되는가?
- 해당 모델을 사용하는 A/B 테스트는 무엇인가?
- 피처를 변경하면 어떤 모델이 영향을 받는가?
- 각 자산의 담당자는 누구인가?
통합 UI보다 어려운 메타데이터 연결
- 문제의 본질은 화면을 하나로 합치는 것이 아니라, ML 라이프사이클의 서로 다른 구성 요소를 연결하는 것이다.
- Netflix에는 다음과 같은 시스템이 각각 메타데이터를 생성한다.
- 파이프라인 오케스트레이션: 실행 정보, 단계 의존성, 데이터 변환
- 모델 레지스트리: 모델 버전, 아티팩트, 오래된 모델 여부, 배포 이력
- 실험 플랫폼: A/B 테스트와 설정
- 피처 스토어: 피처 정의와 사용처
- AI Dataset 플랫폼: 데이터셋 생성, 관리, 검색, 로딩
- Identity 플랫폼: 사용자, 팀, 조직 정보
- 시스템마다 데이터 형식, 식별자, 개념 모델이 다르기 때문에 이질적인 메타데이터를 하나의 엔터티 모델로 변환하고 관계 그래프로 만드는 작업이 핵심 기술 과제가 됐다.
Metadata Service와 Model Lifecycle Graph
- MDS는 Netflix 전반의 ML 관련 엔터티를 색인하고 서로 연결하는 서비스다.
- 모델, 피처, 파이프라인, 실험, 데이터셋 등의 메타데이터를 실시간으로 수집한다.
- 다음과 같은 교차 도메인 질의를 지원하는 것을 목표로 한다.
- 특정 모델을 실행 중인 실험은 무엇인가?
- 특정 피처를 공유하는 모델은 무엇인가?
- 모델에 사용된 데이터와 생성 파이프라인은 무엇인가?
- MDS의 역할은 다음과 같다.
- 여러 시스템에서 이벤트 수집
- 메타데이터에 조직·소유자 등 추가 맥락 결합
- ML 자산 간 관계 추론 및 구체화
- 연결된 그래프 형태로 탐색 가능하게 제공
- 궁극적인 목표는 모든 ML 자산을 팀과 도메인에 관계없이 발견하고, 이해하고, 재사용할 수 있도록 만드는 것이다.
URI 기반 핵심 추상화
MDS는 시스템 간 일관된 연결을 위해 AI Platform URI를 사용한다.
- Component
- 고유한 URI로 주소 지정할 수 있는 모든 객체다.
- 형식은 다음과 같다.
aip://<componentType>/<platformId>/<resourceId> - 예:
aip://model/registry/ranking-v5 aip://user/identity/alice aip://pipeline/orchestrator/weekly-training
- Entity
- 이름, 설명, 생성일, 소유자 등 추가 속성을 가진 ML 생태계의 구성 요소다.
- 모델, 피처, 파이프라인 등이 이에 해당한다.
- Entity Type
- 동일한 데이터 구조와 속성·관계 제약을 공유하는 엔터티 집합이다.
- Domain
- 관련 엔터티 타입을 묶고 해당 ML 자산 범주의 추상 인터페이스를 정의한다.
- 예를 들어 Models 도메인은 Model과 Model Instance를, Pipelines 도메인은 Schedule·Request·Execution을 정의한다.
- Provider
- 도메인을 실제로 구현하는 특정 소스 시스템이다.
- 하나의 도메인에 여러 Provider를 연결할 수 있어, 모델 레지스트리가 교체되더라도 도메인 인터페이스를 변경하지 않고 확장할 수 있다.
- URI는 서비스 간 ML 자산 참조를 단일 문자열로 통일하고, MDS가 이를 풍부한 메타데이터와 연결된 관계로 해석할 수 있게 한다.
이벤트에서 엔터티와 그래프로
- MDS는 Kafka와 AWS SNS/SQS를 통해 소스 시스템의 이벤트를 실시간으로 수집한다.
- 소스 시스템은 식별자와 이벤트 유형 중심의 얇은 이벤트를 발행한다.
- 예시는 다음과 같다.
{ "event_type": "model_instance_created", "instance_id": "ranking-model-v5-20XX0101" } - 생산 시스템은 복잡한 그래프 로직을 알 필요 없이 간단한 이벤트만 발행하고, MDS가 이를 엔터티로 변환하고 다른 시스템의 정보와 결합한다.
- 이후 모델, 파이프라인, 피처, A/B 테스트 등의 관계를 추론해 질의 가능한 Model Lifecycle Graph로 materialize한다.
- 이를 통해 모델 생성 이벤트와 실험 설정을 연결하는 것처럼, 서로 다른 시스템에 존재하는 관계도 하나의 그래프에서 탐색할 수 있다.
MDS와 Model Lifecycle Graph는 단순한 모델 카탈로그가 아니라, ML 자산의 생성부터 배포·실험·재사용까지를 연결하는 메타데이터 인프라다. 여러 팀이 공통 URI와 엔터티 모델을 사용하도록 만들면 모델의 검색성, 의존성 파악, 변경 영향 분석, 조직 간 재사용이 크게 향상된다.
관련 글
큐레이션 요약을 이어서 읽어보세요.