这个项目能做什么

# llm-d Router 概述 llm-d Router 是 Kubernetes 环境中推理流量的智能入口,旨在通过提供负载感知和前缀缓存感知路由、请求优先级以及高级流控来优化 LLM 服务。它支持多种请求格式和复杂的服务目标,适用于生产级 AI 部署。 ## 核心组件 该仓库包含多个关键组件: 1. **Endpoint Picker (EPP)**:智能路由引擎,充当路由器的“大脑”。它根据 InferencePool 的当前状态评估传入请求,考虑 KV 缓存局部性、当前负载和优先级等因素,以做出最优放置决策。它通过 ext-proc 协议与 L7 代理集成。 2. **请求管理 API**:影响 EPP 行为的资源: - **InferenceObjective**:为特定请求配置调度目标,包括优先级和性能目标。 - **InferenceModelRewrite**:支持模型名称重写以实现灵活的流量管理,支持 A/B 测试和灰度发布。 3. **Disaggregation Sidecar**:与模型服务器一起部署的协调组件(通常作为解码工作节点的 sidecar)。它通过与此专用工作节点通信来管理 KV 缓存和嵌入传输,从而编排复杂的多阶段推理生命周期,例如 P/D(Prefill/Decode)和 E/P/D(Encode/Prefill/Decode)。 ## 运行模式 llm-d Router 支持两种主要部署模式: ### 1. 独立模式 此模式使用自管理的 Envoy 代理,无需 Gateway API 基础设施。独立 Helm chart 支持两种拓扑: - **Sidecar 模式**(默认):代理运行在 EPP Pod 中,适用于基本测试和本地评估。 - **Service 模式**:代理作为单独、可水平扩展的 Deployment 和 Service 运行,通过其 Service 访问 EPP。设置 `router.proxy.mode=service` 可独立扩展代理。 ### 2. Gateway 模式(Inference Gateway) 推荐的生产模式利用官方 Kubernetes Gateway API。EPP 作为 InferencePool 的后端,由共享 Gateway 上的 HTTPRoute 引用。这支持高级流量管理、多集群负载均衡,以及推理和传统工作负载的共享基础设施。 ## 架构与文档 该项目提供全面的文档,包括: - 架构细节、路由逻辑和插件(过滤器和评分器) - 针对重型或长上下文工作负载的容器规格建议 - OpenTelemetry JSON stdout 日志格式规范 - 分离式部署设置指南 - 用于安全性的制品验证说明 ## 技术要求 对于自动安装 Envoy,项目提供了工具,但手动安装需要 ext-proc 过滤器支持 `FULL_DUPLEX_STREAMED` 请求/响应体模式。 ## 社区与贡献 该项目鼓励社区参与,设有双周会议、专用 Slack 频道(#sig-router)和贡献指南。它遵循 llm-d 组织的贡献指南,较大的变更应首先通过 issue 讨论。 ## 安全 已发布的容器镜像带有签名的来源证明和 SBOM(软件物料清单)。安全报告指南记录在 SECURITY.md 中,并附有已发布制品的验证说明。 总体而言,llm-d Router 是组织在 Kubernetes 中寻求智能、可扩展推理路由的稳健解决方案,特别适用于具有分离式服务需求的现代 LLM 工作负载。