넷플릭스(Netflix)는 LLM을 활용한 새로운 멤버 경험 제공을 위해 후처리(Post-Training) 프레임워크를 자체 구축
데이터 준비(Data Preparation), 모델 로딩(Model Loading), 분산 훈련(Distributed Training) 등 엔지니어링 난제를 해결하여 모델 개발에 집중할 수 있도록 지원
오픈소스(Open Source) 생태계와의 긴밀한 연동을 통해 유연성과 확장성을 확보하고, 넷플릭스(Netflix) 고유의 요구사항을 충족
SFT(Supervised Fine-Tuning)에서 RL(Reinforcement Learning)까지 지원하며, 온라인 RL(Online RL) 워크플로우(Workflow)를 위한 하이브리드 아키텍처(Hybrid Architecture) 채택
온-디맨드(On-demand) 시퀀스 패킹(Sequence Packing), 어휘 크기 최적화(Vocabulary Size Optimization) 등을 통해 훈련 효율성을 극대화
넷플릭스(Netflix)는 Mako라는 자체 ML 컴퓨팅 플랫폼(ML Computing Platform)을 기반으로, PyTorch, Ray, vLLM과 같은 오픈소스(Open Source) 컴포넌트를 활용하여 후처리 프레임워크(Post-Training Framework)를 구축했다. 이 프레임워크는 SFT(Supervised Fine-Tuning), DPO(Direct Preference Optimization), RL(Reinforcement Learning), 지식 증류(Knowledge Distillation) 등 다양한 훈련 방식을 지원하며, 사용자는 설정 파일을 통해 훈련 레시피(Training Recipe)와 컴포넌트를 선택할 수 있다. 특히, 의 4가지 핵심 요소에 대한 추상화(Abstraction)를 제공하여 개발자가 복잡한 인프라(Infrastructure)를 신경 쓰지 않고 모델 개발에 집중할 수 있도록 지원한다.
초기 넷플릭스(Netflix) 프레임워크는 SFT(Supervised Fine-Tuning)에 맞춰 설계되었으나, 2025년 이후 온-정책 RL(On-policy RL)의 중요성이 커지면서 아키텍처(Architecture) 변화가 불가피했다. SFT는 비교적 단순한 데이터 흐름과 단일 훈련 루프(Training Loop)를 가지는 반면, RL은 다단계(Multi-stage) 실행 패턴(Execution Pattern)을 요구한다. 넷플릭스(Netflix)는 오픈소스(Open Source) 라이브러리인 Verl을 활용하여 Ray 액터(Actor)의 라이프사이클(Lifecycle) 관리 및 GPU 자원 할당을 처리하고, 자체 개발한 Data/Model/Compute 추상화(Abstraction)와 내부 최적화에 집중했다. 그 결과, SFT와 RL 워크플로우(Workflow)를 모두 지원하는 하이브리드 디자인(Hybrid Design)을 구현했다.
넷플릭스(Netflix)는 Hugging Face Hub를 LLM, 토크나이저(Tokenizer), 설정 파일의 주요 배포 채널로 활용하며, 프레임워크를 해당 생태계에 맞춰 설계했다. 내부적으로 최적화된 모델 표현(Model Representation)을 사용하면서도, 체크포인트(Checkpoint)는 표준 Hugging Face 형식으로 저장하여 호환성을 유지한다. 토크나이저(Tokenizer)의 경우, Hugging Face AutoTokenizer를 단일 소스(Single Source)로 사용하고, 자체 호환성 레이어(Compatibility Layer)를 통해 패딩 토큰(Padding Token) 설정, 손실 마스킹(Loss Masking) 지원, 특수 토큰 관리를 수행한다. 모델 구현(Model Implementation)은 자체 최적화된 모델 정의를 사용하며, AI 코딩 에이전트(AI Coding Agent)를 활용하여 새로운 모델 아키텍처(Architecture) 지원을 자동화한다.
넷플릭스(Netflix)는 실제 사용 사례에 맞춰 훈련 효율성을 최적화했다. 특히, 시퀀스 길이(Sequence Length)의 극심한 변동성을 해결하기 위해 온-디맨드(On-demand) 시퀀스 패킹(Sequence Packing)을 구현하여 CPU 작업과 GPU 연산을 중첩시켰다. 또한, 어휘 크기(Vocabulary Size) 최적화를 통해 cuBLAS 커널(Kernel) 사용을 유도하여 레이어 실행 시간을 단축했다. 이러한 최적화를 통해, 넷플릭스(Netflix)는 데이터 처리량(Throughput)을 최대 4.7배 향상시켰다. 이러한 최적화는 넷플릭스(Netflix)의 특정 요구사항을 충족하기 위해 자체적으로 개발되었으며, 일반적인 LLM 툴링(Tooling)에서는 지원하지 않는 기능이다.
넷플릭스(Netflix)는 일반적인 LLM 툴링(Tooling)에서 지원하지 않는, 멤버 상호작용 시퀀스(Member Interaction Sequence) 기반 모델 훈련과 같은 비표준 트랜스포머(Transformer) 사용 사례를 지원한다. 이를 위해, 넷플릭스(Netflix)는 자체적인 환경, 보상 계산, 오케스트레이션 패턴을 구축하여, 성능, 추적, 장애 허용(Fault Tolerance)에 대한 보장을 유지하면서도 특수한 요구사항을 수용한다. 이러한 유연성은 넷플릭스(Netflix)가 SFT, RL, 멀티모달(Multimodal) 아키텍처(Architecture) 등 다양한 훈련 방식을 지원하고, 자체적인 비즈니스 목표에 맞는 모델을 개발할 수 있도록 한다. 결과적으로, 넷플릭스(Netflix)는 표준화와 전문화 사이의 균형을 유지하며, 자체적인 LLM 후처리 프레임워크(Post-Training Framework)를 통해 혁신을 가속화하고 있다.