넷플릭스에서의 머신러닝 민주화: 모델 라이프사이클 그래프 구축
Netflix는 개인화, 스튜디오 제작, 결제, 광고와 같은 다양한 비즈니스 도메인에 걸쳐 머신러닝을 활용합니다. ML 채택이 증가함에 따라 모델과 데이터가 사일로화되어 협업과 검색을 방해하는 파편화된 환경이라는 문제가 발생했습니다. ML 실무자들은 다양한 시스템에 걸쳐 모델 계보, 기능 소스 및 영향을 이해하는 데 어려움을 겪었습니다. 이러한 파편화로 인해 기존 기능, 데이터 소스, 파이프라인 종속성 및 변경 효과에 대한 질문에 쉽게 답할 수 없었습니다.핵심적인 어려움은 메타데이터를 생성하는 분산된 ML 인프라 구성 요소를 연결하는 데 있었습니다. 파이프라인 오케스트레이터부터 실험 플랫폼 및 기능 스토어에 이르기까지 수십 개의 시스템이 다양한 형식으로 데이터를 생성했습니다. 이를 해결하려면 이기종 메타데이터를 수집하고, 이를 통합된 모델로 변환하고, 탐색을 위한 연결된 그래프를 구축해야 했습니다.해결책은 Netflix에서 ML 엔티티를 상호 연결하는 모델 수명 주기 그래프를 구축하는 메타데이터 서비스(MDS)입니다. MDS는 ML 메타데이터를 실시간으로 수집하여 특정 모델을 사용하는 실험을 식별하거나 특정 기능을 공유하는 모델과 같은 도메인 간 쿼리를 가능하게 합니다. 비전은 모든 ML 자산을 회사 전체에서 검색 가능하고, 이해 가능하며, 재사용 가능하게 만드는 것입니다.MDS는 고유한 AIP URI를 가진 구성 요소, 속성을 가진 ML별 자산인 엔티티, 데이터 모양을 정의하는 엔티티 유형, 관련 엔티티 유형을 그룹화하는 도메인, 소스 시스템의 도메인에 대한 구체적인 구현인 공급자와 같은 핵심 추상화를 기반으로 작동합니다. 이 URI 기반 주소 지정 방식을 통해 모든 서비스가 모든 ML 자산을 보편적으로 참조할 수 있습니다. 그래프를 구축하는 과정은 여러 단계를 거칩니다.첫째, MDS는 Kafka 및 AWS SNS/SQS를 통해 소스 시스템과 통합하여 변경 사항을 나타내는 얇은 이벤트를 소비합니다. 전용 이벤트 핸들러는 파이프라인 오케스트레이션, 모델 레지스트리, 기능 스토어, 실험 플랫폼, ID 플랫폼과 같은 시스템의 이벤트를 처리합니다. 둘째, MDS는 수분 계약을 구현하여 이벤트를 검증하고 소스 시스템 API를 호출하여 전체 상태를 가져온 다음, 이를 정규화된 엔티티로 변환합니다. 이 "변경 알림" 패턴은 이벤트 순서 문제에 대한 견고성을 보장하지만 소스 시스템에 읽기 부하를 줍니다.셋째, 원시 이벤트는 표준화된 필드를 가진 통합 엔티티 모델로 변환되어 다운스트림 소비자에게 일관된 인터페이스를 생성합니다. 정규화된 엔티티는 필드 이름, 형식을 표준화하고 플랫폼별 ID를 전역 AIP URI로 변환합니다. 마지막으로 정규화된 엔티티는 캐싱 및 관계 저장을 위해 Datomic에 지속되고 동시에 Elasticsearch에 인덱싱됩니다. 불변 사실 모델을 가진 Datomic은 복잡한 그래프 순회 및 엔티티 관계를 지원하여 비효율적인 N+1 쿼리 패턴 없이 여러 도메인에 걸친 쿼리를 가능하게 합니다.