
넷플릭스 기술 블로그에 따르면 회사는 17일 대규모언어모델의 배포부터 추론까지 자체 운영 환경에서 처리하는 사내 서빙 플랫폼 구조를 공개했다. LLM을 별도 시스템으로 분리하지 않고 기존 머신러닝 운영 체계 안에 넣어 실험에서 실제 서비스까지 이어지는 경로를 일원화했다는 설명이다.
넷플릭스의 기존 머신러닝 서비스는 JVM 기반 통합 서빙 시스템이 요청 라우팅과 A/B 테스트, 후보 생성, 특성 조회, 추론, 후처리, 로깅을 담당한다. 작은 모델은 프로세스 내부에서 실행하고, GPU가 필요한 대형 모델은 공용 추론 백엔드인 Model Scoring Service로 보낸다. 이 백엔드는 XGBoost와 TensorFlow, PyTorch, LLM을 공통 인터페이스로 제공하며 하부에서 NVIDIA Triton Inference Server가 모델 적재와 배치 처리, GPU 스케줄링을 맡는다.
회사는 초기에는 TensorRT-LLM을 사용했지만 2025년 여름 실제 업무 구성을 다시 시험한 뒤 vLLM을 기본 엔진으로 선정했다. 임베딩 생성과 검색·랭킹용 프리필, 자동회귀 생성, 단계별 제약 로직을 쓰는 맞춤 모델까지 업무 범위가 넓어지면서 사용자 정의 모델을 빠르게 적용하고 오류를 추적하기 쉬운 운영 특성을 우선했다. 공개 글에는 두 엔진의 처리량이나 비용을 직접 비교한 수치는 제시되지 않았다.
모델 패키징은 표준 Hugging Face 호환 모델에 Triton의 vLLM 백엔드를 기본으로 사용한다. 모델 가중치와 토크나이저를 가리키는 JSON 설정을 배포 시점에 읽는 방식이어서 모델과 프런트엔드의 변경을 분리할 수 있다. 다만 Triton과 vLLM의 API 버전이 어긋나면 백엔드가 로드되지 않는 문제가 있어 호환 버전을 서비스 이미지에 고정했다. 맞춤 전처리나 후처리, 비표준 실행이 필요한 모델에는 Python 백엔드를 예외 경로로 남겼다.
외부 호출 인터페이스는 기존 gRPC와 함께 OpenAI 호환 HTTP API를 제공한다. 이를 통해 호스팅 모델에서 미세조정한 자체 모델로 옮길 때 애플리케이션 변경을 줄일 수 있다는 설명이다. 운영 과정에서는 Triton의 호환 프런트엔드가 구조화된 출력 요청인 response_format을 vLLM에 전달하지 않아 잘못된 JSON이 반환될 수 있는 문제를 발견했고, 넷플릭스는 요청을 유도 디코딩 매개변수로 변환하도록 해당 부분을 수정했다.
배포에는 새 버전과 기존 버전의 트래픽을 단계적으로 교체하는 레드-블랙 방식과 여러 모델 버전을 동시에 유지하는 버전별 방식을 함께 쓴다. 입출력 스키마가 유지되면 레드-블랙 배포로 GPU 중복 비용을 줄이고, 스키마가 바뀌면 구 버전과 신 버전을 병행해 호출 측 변경 시점을 분리한다. 대형 모델의 시작 시간을 줄이기 위해 모델 발표 시점에 Amazon FSx에 파일을 미리 적재하고, Triton과 vLLM의 관측 지표는 하나의 Prometheus 엔드포인트로 합쳤다.
제약 디코딩도 운영 환경에 맞게 손봤다. 초기 vLLM V0 구현에서는 요청별 Python 로직이 전역 인터프리터 잠금의 영향을 받아 동시 요청이 늘수록 CPU 처리 시간이 길어졌다. 넷플릭스는 vLLM V1의 배치 단위 구조로 옮기고 병목 구간을 C++ 다중 스레드 코드로 다시 구현했다. 회사가 공개한 도표에서는 배치 크기가 커져도 로짓 처리 시간이 거의 일정하게 유지됐다. vLLM 공식 문서도 V1 맞춤 로짓 처리기가 BatchUpdate를 통해 배치 상태 변화를 추적하는 구조임을 설명한다.
이번 공개는 대규모 서비스 기업이 LLM을 기존 머신러닝 인프라에 흡수하면서 마주친 운영상의 선택과 실패 사례를 구체적으로 제시했다는 점에서 의미가 있다. 다만 실제 요청량과 사용 모델, GPU 구성, 지연 시간, 비용 절감 폭은 공개되지 않았다. 공개된 구조가 넷플릭스 전체 LLM 업무에 어느 범위까지 적용됐는지도 추가 설명이 필요하다.
출처: Netflix Technology Blog https://netflixtechblog.medium.com/in-house-llm-serving-at-netflix-a5a8e799ea2c
출처: NVIDIA Triton vLLM Backend https://github.com/triton-inference-server/vllm_backend
출처: vLLM Custom Logits Processors 문서 https://docs.vllm.ai/en/latest/features/custom_logitsprocs/
출처: NVIDIA Triton OpenAI-Compatible Frontend 문서 https://docs.nvidia.com/deeplearning/triton-inference-server/user-guide/docs/client_guide/openai_readme.html









