Netflix에서 LLM Post-Training 확장하기
핵심 내용
Netflix는 Ray·PyTorch·vLLM 위에 유연한 LLM Post-Training Framework를 구축했다.
자세히 보기
Pre-training이 언어 능력과 세계 지식을 넓힌다면, post-training은 모델을 실제 서비스 요구에 맞게 정렬하는 단계다. Netflix는 추천, 개인화, 검색에 LLM을 적용하기 위해 도메인 데이터와 멀티턴 상호작용을 반영하는 내부 Post-Training Framework를 만들었다.
실험 수준에서는 데이터만 준비해 Hugging Face 모델을 학습하면 끝처럼 보이지만, 프로덕션 규모에서는 데이터, 모델, compute, workflow 네 축에서 문제가 터진다. 특히 학습 손실에 포함할 토큰을 정확히 제어하는 loss masking, 배치 패딩 낭비를 줄이는 sequence packing, FSDP 환경에서의 샤딩 로딩, 그리고 대형 vocabulary에서의 logits 메모리 폭증이 핵심 난제로 꼽힌다.
프레임워크는 이 문제를 추상화하기 위해 다음을 제공한다.
- Data: SFT, reward modeling, RL용 dataset abstraction, 클라우드/디스크 스트리밍, 비동기 on-the-fly packing
- Model: Qwen3, Gemma3, Qwen3 MoE, GPT-OSS 같은 현대적 아키텍처 지원, LoRA 내장, 고수준 sharding API
- Compute: 단일 노드부터 수백 GPU까지 확장되는 job submission, MFU 모니터링, 파라미터·optimizer·dataloader·data mixer까지 포함한 checkpointing
- Workflow: SFT를 넘어 rollout, reward scoring, policy update가 섞이는 온라인 RL까지 지원하는 hybrid single-controller + SPMD 실행 모델
기반 스택은 Netflix의 내부 GPU 플랫폼 Mako 위에 PyTorch, Ray, vLLM을 얹는 구조다. 개발자는 recipe를 고르는 설정 파일 중심으로 작업하고, 연구팀은 인프라 복잡도 대신 모델 설계와 실험에 집중할 수 있다.
핵심 설계 변화는 SFT에서 RL로의 확장이다. SFT는 동일한 step function을 각 worker가 병렬 수행하는 SPMD 모델로 충분하지만, on-policy RL은 rollout 생성, reference model inference, reward scoring, policy optimization이 서로 다른 역할과 자원 조정을 요구한다. 이를 위해 driver는 더 이상 thin launcher가 아니라, 각 단계의 타이밍과 클러스터 자원 배분을 관리하는 active controller로 바뀌었다.
이 과정에서 Netflix는 단순한 fine-tuning 도구를 넘어, 아키텍처 변형, 비표준 vocabulary, 도메인 특화 시퀀스까지 다룰 수 있는 유연성을 우선했다. 즉, 학습을 "돌리는 것"보다 "복잡한 post-training을 안정적으로 운영하는 것"이 목표인 프레임워크다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.