Netflix内部LLM服务 笔记

Netflix内部LLM服务

Netflix 在其内部运行整个大型语言模型(LLM)栈,直接管理部署与推理。他们将此集成到现有的生产环境中,而非构建独立的机器学习孤岛。该方案涉及精心选择推理引擎、决定模型打包方式、设计 API 接口、定义部署策略以及强制输出约束。所选的推理引擎为 vLLM,因其操作适配性、支持加载自定义架构、可扩展性、可调试性以及从业人员的熟悉度而被选中。模型采用基于 Triton 的 vLLM 后端进行打包,以支持动态 I/O 张量规格,从而促进模型与前端端的独立演进。此外,在其现有的 gRPC 接口旁增加了一个兼容 OpenAI 规范的 HTTP 前端,以增强与更广泛生态系统的兼容性。在部署方面,Netflix 采用版本化(Versioned)策略来处理不同模型版本之间可能出现的模式(schema)变更,使消费者能够独立更新。当模型接口保持稳定时,则采用成本较低的蓝黑部署(Red-Black)策略。一个关键的操作挑战是模型启动时间过长,他们通过在 Amazon FSx 上预置大型模型来解决这一问题,以实现更快的访问速度。可观测性通过创建一个统一的 /metrics 端点得到提升,该端点聚合来自 vLLM 和 Triton 的数据。一个显著特性是大规模受限解码(constrained decoding),通过 vLLM 的自定义 logits 处理器实现。这使得模型能够直接生成合规输出,避免了推理后的修正步骤。受限解码的初始纯 Python 实现因全局解释器锁(GIL)以及 CPU 上的顺序处理而在扩展性上遇到困难。这一问题仅在高度并发下显现,导致显著的尾部延迟。该系统依赖 Java 控制平面来管理部署、版本控制和自动扩缩容。其服务系统同时支持实时推理和缓存的批量推理路径。这一统一系统处理完整的下游消费者流程,包括路由、候选生成和日志记录。
CdXz5zHNQW_CmjJjU7Bih.png