Netflix는 전체 대규모 언어 모델 스택을 내부적으로 운영하며 배포 및 추론을 직접 관리합니다. 이들은 별도의 머신러닝 사일로 대신 기존 프로덕션 환경에 이를 통합했습니다. 이 접근 방식에는 추론 엔진의 신중한 선택, 모델 패키징 방식 결정, API 표면 설계, 배포 전략 정의, 출력 제약 조건 시행이 포함되었습니다.선택된 추론 엔진은 vLLM으로, 운영 적합성, 사용자 정의 아키텍처 로드 능력, 확장성, 디버깅 용이성, 실무자들의 익숙함 때문에 선택되었습니다. 모델은 Triton의 vLLM 백엔드를 사용하여 패키징되어 동적 I/O 텐서 사양을 허용하고 모델과 프론트엔드의 독립적인 발전을 촉진합니다. 더 넓은 생태계 호환성을 위해 기존 gRPC 인터페이스와 함께 OpenAI 호환 HTTP 프론트엔드가 추가되었습니다.배포를 위해 Netflix는 모델 버전 간의 잠재적인 스키마 변경을 처리하기 위해 Versioned 전략을 사용하여 소비자가 독립적으로 업데이트할 수 있도록 합니다. 모델 인터페이스가 안정적일 때는 비용이 덜 드는 Red-Black 배포 전략을 사용합니다. 한 가지 주요 운영 과제는 느린 모델 시작 시간이었으며, 이는 Amazon FSx에 대규모 모델을 구체화하여 더 빠른 액세스를 가능하게 함으로써 해결했습니다.vLLM과 Triton 모두의 데이터를 집계하는 통합 /metrics 엔드포인트를 생성하여 관찰 가능성을 개선했습니다. 중요한 기능은 vLLM의 사용자 정의 로짓 프로세서를 통해 구현된 대규모 제약 디코딩입니다. 이를 통해 모델은 추론 후 보정 없이 직접 규정을 준수하는 출력을 생성할 수 있습니다.제약 디코딩의 초기 순수 Python 구현은 Global Interpreter Lock (GIL)과 CPU에서의 순차 처리로 인해 확장성 문제가 있었습니다. 이는 높은 동시성에서만 명확해졌고 상당한 꼬리 지연 시간을 초래했습니다. 시스템은 배포, 버전 관리 및 자동 확장을 관리하기 위해 Java 제어 평면에 의존합니다. 실시간 및 캐시된 배치 추론 경로 모두 서비스 시스템에서 지원됩니다. 이 통합 시스템은 라우팅, 후보 생성 및 로깅을 포함한 전체 다운스트림 소비자 흐름을 처리합니다.
/metrics엔드포인트를 생성하여 관찰 가능성을 개선했습니다. 중요한 기능은 vLLM의 사용자 정의 로짓 프로세서를 통해 구현된 대규모 제약 디코딩입니다. 이를 통해 모델은 추론 후 보정 없이 직접 규정을 준수하는 출력을 생성할 수 있습니다.제약 디코딩의 초기 순수 Python 구현은 Global Interpreter Lock (GIL)과 CPU에서의 순차 처리로 인해 확장성 문제가 있었습니다. 이는 높은 동시성에서만 명확해졌고 상당한 꼬리 지연 시간을 초래했습니다. 시스템은 배포, 버전 관리 및 자동 확장을 관리하기 위해 Java 제어 평면에 의존합니다. 실시간 및 캐시된 배치 추론 경로 모두 서비스 시스템에서 지원됩니다. 이 통합 시스템은 라우팅, 후보 생성 및 로깅을 포함한 전체 다운스트림 소비자 흐름을 처리합니다.