Netflix TechBlog | Medium 日本語 フォロー Netflixでの社内LLMサービス Netflixは、大規模言語モデルスタック全体を社内で実行し、デプロイメントと推論を直接管理しています。これは、既存のプロダクション環境に統合されており、独立した機械学習サイロではありません。このアプローチには、推論エンジンの慎重な選択、モデルのパッケージ化方法の決定、APIサーフェスの設計、デプロイメント戦略の定義、および出力制約の施行が含まれます。選択された推論エンジンはvLLMであり、その運用上の適合性、カスタムアーキテクチャのロード能力、拡張性、デバッグ可能性、および実務家間の馴染みやすさから選ばれました。モデルはTritonのvLLMバックエンドを使用してパッケージ化され、動的なI/Oテンソル指定を可能にし、モデルとフロントエンドの独立した進化を促進します。より広範なエコシステムとの互換性のために、既存のgRPCインターフェースに加えて、OpenAI互換のHTTPフロントエンドが追加されました。デプロイメントにおいて、Netflixはモデルバージョン間のスキーマ変更の可能性に対応するためにバージョン管理戦略を使用しており、コンシューマーが独立して更新できるようにしています。モデルインターフェースが安定している場合は、コストの低いレッドブラックデプロイメント戦略が採用されます。運用上の重要な課題の1つは、モデルの起動時間の遅さであり、Amazon FSx上に大規模モデルをマテリアライズすることで、より高速なアクセスを実現しました。vLLMとTritonの両方からのデータを集約する統一された/metricsエンドポイントを作成することで、オブザーバビリティが向上しました。重要な機能は、vLLMのカスタムロジットプロセッサを介して実装された、大規模な制約付きデコーディングです。これにより、モデルは推論後の修正を回避し、コンプライアンスに準拠した出力を直接生成できます。制約付きデコーディングの初期の純粋なPython実装は、グローバルインタープリタロック(GIL)とCPU上での逐次処理により、スケーリングに苦労しました。これは高同時実行下でのみ明らかになり、大幅なテールレイテンシーを引き起こしました。システムは、デプロイメント、バージョン管理、およびオートスケーリングの管理のためにJavaコントロールプレーンに依存しています。リアルタイムおよびキャッシュされたバッチ推論パスの両方が、サービングシステムによってサポートされています。この統一されたシステムは、ルーティング、候補生成、およびロギングを含む、完全なダウンストリームコンシューマーフローを処理します。 In-House LLM Serving at Netflix netflixtechblog.com Netflix TechBlog | Medium 日本語 RSS thenote.app
/metricsエンドポイントを作成することで、オブザーバビリティが向上しました。重要な機能は、vLLMのカスタムロジットプロセッサを介して実装された、大規模な制約付きデコーディングです。これにより、モデルは推論後の修正を回避し、コンプライアンスに準拠した出力を直接生成できます。制約付きデコーディングの初期の純粋なPython実装は、グローバルインタープリタロック(GIL)とCPU上での逐次処理により、スケーリングに苦労しました。これは高同時実行下でのみ明らかになり、大幅なテールレイテンシーを引き起こしました。システムは、デプロイメント、バージョン管理、およびオートスケーリングの管理のためにJavaコントロールプレーンに依存しています。リアルタイムおよびキャッシュされたバッチ推論パスの両方が、サービングシステムによってサポートされています。この統一されたシステムは、ルーティング、候補生成、およびロギングを含む、完全なダウンストリームコンシューマーフローを処理します。