在 K8s 上跑大模型推理,为什么越来越多人选了 KServe? - 张善友

在 K8s 上跑大模型推理,为什么越来越多人选了 KServe? - 张善友

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

KServe是CNCF孵化项目,用于解决AI团队模型上线后的服务管理问题。它不负责GPU推理(由vLLM等引擎承担),而是管理版本、流量切分、扩缩容和回滚。核心抽象InferenceService让模型成为K8s一等公民,并复用GitOps流程。针对大模型,KServe推出LLMInferenceService专用CRD,默认绑定vLLM,集成llm-d分布式调度和Envoy AI Gateway流量治理。但模型较少时不必引入,因其运维复杂度高,且LLMInferenceService仍为alpha版。

🔎

延伸解读

KServe 与推理引擎的分工边界

文章明确指出,将 KServe 与 vLLM 比性能是误会。vLLM、Triton 负责在 GPU 上执行推理,KServe 管理模型版本、流量切分、扩缩容和回滚。这种分层意味着团队选型时应先确认推理引擎,再评估是否需要 KServe 这类平台层。若已有稳定推理服务且模型数量少,引入 KServe 反而增加控制器、网关等运维负担。

大模型服务扩缩容的关键取舍

针对大模型,KServe 对接多种扩缩容机制,但文章给出明确经验:缩容到零后重新加载权重需几十秒甚至几分钟。面向用户的端点应保留至少一个热副本,缩容到零更适合批处理任务。这一取舍直接影响用户体验和成本,团队在配置弹性策略时需按场景区分,不能照搬传统无状态服务的缩容习惯。

LLMInferenceService 的成熟度风险

KServe 为 LLM 推出专用 CRD LLMInferenceService,默认绑定 vLLM,并集成 llm-d 调度和 Envoy AI Gateway 流量治理。但文章提醒该 API 仍为 alpha 版本,迭代快,几乎每个小版本都有调整。将其接入自动化系统时需预留跟进预算,不宜在缺乏平台工程团队的情况下作为生产唯一依赖。

引入 KServe 的适用门槛

文章给出可操作的判断标准:已使用 K8s、模型多到 YAML 开始失控、需要灰度弹性多租户等平台能力,三个条件都满足才值得认真评估。经验数字是十个模型以上平台层投入才开始回本。若只有一两个模型,直接 vllm serve 或裸 Deployment 更务实。此外 ModelMesh 仓库已归档,存量用户需规划迁移。

❓

Q&A

KServe 和 vLLM 有什么区别?是不是竞争关系?

不是竞争关系。vLLM 负责在 GPU 上实际运行模型推理,而 KServe 负责模型之外的服务管理,包括版本管理、流量切分、扩缩容和回滚。可以类比为:vLLM 是发动机,KServe 是底盘、变速箱和仪表盘。

KServe 的核心抽象 InferenceService 能帮我做什么?

InferenceService 是一个 Kubernetes 自定义资源。你只需在 YAML 中声明模型位置(S3、HuggingFace、OCI 镜像等)、使用的框架(TensorFlow、PyTorch、sklearn 等十几种内置运行时)和资源需求,控制器会自动创建工作负载、配置路由和接入监控。这让模型成为 K8s 一等公民,可直接复用 GitOps 流程。

KServe 针对大模型推理做了哪些专门优化?

KServe 推出了专用 CRD LLMInferenceService,原生暴露 OpenAI 兼容接口,并默认绑定 vLLM(支持 PagedAttention、连续批处理)。还集成了 llm-d 分布式调度(拆分 Prefill 和 Decode 到不同 GPU 池,按 KV 缓存命中率路由)和 Envoy AI Gateway 流量治理(按 token 限流、按模型名路由)。

KServe 的自动扩缩容有哪些机制?有什么注意事项?

KServe 对接了四种扩缩容机制。重要经验:大模型缩容到零后再拉起,加载权重需要几十秒甚至几分钟,因此面向用户的端点应至少保留一个热副本,缩容到零只适用于批处理任务。

什么情况下不应该使用 KServe?

如果只有一两个模型要上线,不建议使用 KServe。直接使用 vllm serve 或裸 Deployment 更快。KServe 的运维复杂度较高(涉及 cert-manager、Gateway API、KEDA 等组件),平台层投入要到模型和团队数量上来后才回本,经验数字是十个模型以上。此外,LLMInferenceService 仍是 alpha 版本,迭代快,接入自动化系统需预留跟进预算。

KServe 和其他同类方案(如 Seldon Core、BentoML、Ray Serve)相比如何?

Seldon Core 的推理流水线和模型监控更成熟,BentoML 的 Python 开发者体验更好,Ray Serve 的组合灵活性更强。但 KServe 在 Kubernetes 原生程度、多框架覆盖、LLM 专项能力和中立治理四方面综合得分最高,且作为 CNCF 孵化项目不会被单一厂商绑架。

🏷️

标签

➡️

继续阅读