llm-d/llm-d-router

GitHub: llm-d/llm-d-router

面向 Kubernetes 环境的 LLM 推理流量智能路由器,通过缓存感知与负载感知调度优化大规模推理服务的性能与资源利用率。

Stars: 188 | Forks: 200

[![Go 报告卡](https://goreportcard.com/badge/github.com/llm-d/llm-d-inference-scheduler)](https://goreportcard.com/report/github.com/llm-d/llm-d-inference-scheduler) [![Go 参考](https://pkg.go.dev/badge/github.com/llm-d/llm-d-inference-scheduler.svg)](https://pkg.go.dev/github.com/llm-d/llm-d-inference-scheduler) [![许可证](https://img.shields.io/github/license/llm-d/llm-d-inference-scheduler)](/LICENSE) [![加入 Slack](https://img.shields.io/badge/Join_Slack-blue?logo=slack)](https://llm-d.slack.com/archives/C08SBNRRSBD) # llm-d 路由器 **llm-d Router** 是推理流量的智能入口,提供 LLM 负载和前缀缓存感知路由、请求优先级划分以及跨多种请求格式的高级流量控制,以实现复杂的服务目标。它支持灵活的部署模型:可以运行在**独立模式**(在同一个 Pod 中运行自管理的 Envoy 代理和 EPP),也可以通过 Kubernetes Gateway API 集成 L7 负载均衡器——包括自管理实例(例如 Istio、AgentGateway)和云托管服务(例如 Google Cloud 的 Application Load Balancer)。 该 Router 通过与生产级代理(如 [Envoy])通过 [ext-proc] 协议集成的 **Endpoint Picker (EPP)** 来实现其智能化,将实时信号注入数据平面以优化请求的放置策略。

llm-d Router Architecture

## 核心组件和 API 本仓库包含以下核心组件: - **Endpoint Picker (EPP)**:作为 Router “大脑”的智能路由引擎。它根据 [InferencePool] 的当前状态评估传入的请求,综合考虑 KV-cache 局部性、当前负载和优先级等因素,以做出最佳的放置决策。它通过 `ext-proc` 协议与 L7 代理集成。 - **请求管理 API**:这些资源直接影响 EPP 的请求处理行为: - **InferenceObjective**:为特定请求配置 EPP 的调度目标,包括优先级和性能目标。 - **InferenceModelRewrite**:指导 EPP 执行模型名称重写,支持灵活的流量管理,适用于 A/B 测试和金丝雀发布。 - **分离式 Sidecar**:与模型服务器一起部署的协调组件(通常作为 Decode Worker 的 Sidecar)。它通过与专门的 Encode 和 Prefill Worker 通信来管理 KV-cache 和 embedding 传输,从而编排复杂的多阶段推理生命周期,例如 **P/D (Prefill/Decode)** 和 **E/P/D (Encode/Prefill/Decode)**。有关更多详细信息,请参阅 [Disaggregation Documentation]。 ## 操作模式 如 [Kubernetes Gateway API Inference Extensions] 所规定,llm-d Router 支持两种主要的部署模式: ### 1. 独立模式 一种轻量级部署,其中自管理的 Envoy 代理与 EPP 在同一个 Pod 中运行。此模式非常适合没有 Gateway API 基础设施的集群,或用于基础测试和本地评估。 ### 2. Gateway 模式 (Inference Gateway) 推荐用于生产环境的模式,利用官方的 [Gateway API]。在此模式下,EPP 作为 `InferencePool` 的后端,该 `InferencePool` 被共享 `Gateway` 上的 `HTTPRoute` 所引用。这支持高级流量管理、多集群负载均衡,以及推理和传统工作负载的共享基础设施。 有关 Router 架构、路由逻辑和不同插件(过滤器和评分器)的更多详细信息,请参阅 [Architecture Documentation]。 ## 术语 为了确保整个项目的清晰度,我们使用以下标准术语: - **llm-d Router**:完整的智能入口,由 **Proxy**(例如 Envoy)和 **Endpoint Picker (EPP)** 组成。此术语在所有语境中均替代“Inference Scheduler”。 - **llm-d Endpoint Picker (EPP)**:实现路由智能和评分逻辑的特定组件。当指代 EPP 本身特有的功能或配置,而不是作为整体的请求路由系统时,请使用此术语。 - **Inference Gateway**:在 **Gateway 模式**下运行时 **llm-d Router** 的同义词。 - **Request Scheduler**:EPP 内部负责请求排队和分发的子组件。
标签:AI基础设施, Endpoint Picker, Envoy代理, EVTX分析, Golang, InferencePool, Istio, Kubernetes网关API, KV Cache感知调度, L7负载均衡, llm-d, LLM推理网关, MacOS取证, 云原生AI, 大模型推理, 安全编程, 微服务架构, 日志审计, 智能路由, 模型服务部署, 流量控制, 网关, 请求优先级管理, 请求拦截, 负载均衡, 路由调度