넷플릭스의 머신러닝 민주화: 모델 라이프사이클 그래프 구축
넷플릭스가 **Metadata Service**로 모델·feature·실험을 하나의 그래프로 묶었다.
넷플릭스는 personalization, studio, payments, ads로 ML 활용이 넓어지면서 모델과 데이터가 각 도메인에 고립되는 문제를 마주했다. Studio의 content embeddings처럼 재사용 가치가 큰 자산도 있었지만, 모델 registry, pipeline orchestrator, experimentation platform, feature store, AI Dataset, identity platform이 분리돼 있어 cross-domain 재사용과 협업이 어려웠다.
실무자가 답해야 하는 질문은 세 가지다. Discovery는 어떤 feature와 data source가 있는지, Lineage는 어떤 pipeline이 어떤 모델을 만들었는지, Impact는 어떤 A/B test와 downstream 모델이 영향을 받는지다. 기존처럼 시스템별 UI를 오가서는 이런 연결을 한 번에 추적할 수 없었다.
해결책은 Metadata Service(MDS) 와 Model Lifecycle Graph다. 모든 ML 자산을 AIP URI인 aip://<componentType>/<platformId>/<resourceId>로 식별하고, component를 entity로 정규화한 뒤 Domain과 Provider를 분리했다. 여기서 Component는 유일하게 주소 지정되는 객체, Entity는 이름·설명·소유자 같은 속성을 가진 ML 자산, Domain은 모델과 pipeline처럼 같은 데이터 형태를 묶는 추상 인터페이스, Provider는 이를 실제 소스 시스템에 맞게 구현한 것이다.
데이터 흐름은 네 단계로 움직인다.
- Event ingestion: Kafka와 AWS SNS/SQS로 얇은 이벤트를 받아 변경을 알린다.
- Entity enrichment: 이벤트가 오면 소스 시스템 API를 호출해 최신 상태를 hydration한다.
- Normalization: 서로 다른 스키마를 표준 entity로 바꾼다.
- Graph materialization: 관계를 연결해 탐색 가능한 그래프로 만든다.
이 설계는 이벤트 순서가 뒤섞이거나 일부가 유실돼도 다음 hydration으로 최신 상태를 복구할 수 있게 해준다. 대신 원천 시스템의 읽기 부하가 늘기 때문에 rate limiting, caching, backoff가 중요하다. 결국 MDS는 모델, feature, pipeline, experiment, dataset을 하나의 연결된 그래프로 묶어, 도메인 간 재사용과 협업을 가능하게 했다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.