惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
GbyAI
GbyAI
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
C
Cyber Attacks, Cyber Crime and Cyber Security
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
Spread Privacy
Spread Privacy
P
Proofpoint News Feed
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MyScale Blog
MyScale Blog
T
Tor Project blog
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
P
Privacy & Cybersecurity Law Blog
MongoDB | Blog
MongoDB | Blog
Simon Willison's Weblog
Simon Willison's Weblog
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
小众软件
小众软件
G
GRAHAM CLULEY
P
Privacy International News Feed
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
人人都是产品经理
人人都是产品经理
S
Schneier on Security
Scott Helme
Scott Helme
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
T
The Exploit Database - CXSecurity.com
Recent Announcements
Recent Announcements
E
Exploit-DB.com RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
U
Unit 42
The Register - Security
The Register - Security
S
Securelist
Martin Fowler
Martin Fowler
Project Zero
Project Zero
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog

博客园_首页

AI开发-python-LangGraph框架(3-32-LangGraph 并行验证) 马斯克都在用的"第一性原理":为什么90%的程序员在"卷框架",而高手只看一件事? Jenkins-批量自动化构建指定目录或者视图下所有Job或者指定Job RAG夺命10连问,你能抗住第几问? 硬件连接器简介和图文大全 GPT-5.5 开启更强的智能体工作方式 零代码 AI 自动化测试神器!Browser‑Use Web UI 保姆级教程,测试人直接上手 Netty保姆级全解析|技术背景+核心知识点+生产实战教程 【译】Bookmark Studio:在 Visual Studio 中实现书签功能升级 Tomcat的事件监听机制:观察者模式 .NET 11 Preview 3 发布:C# 15 union 类型终补齐,Kestrel 暴增 40% 生成器与迭代器 【Java安全】URLDNS利用链分析 高数学习笔记 一分钟学会用Markdown绘制Mermaid思维导图 - 天恩软件 利用surging 网络组件重构插件开发 踩坑记录:UTF-8、UTF-8-BOM 与 GB2312 读取的乱码真相 我把市面上 UI 自动化 Skill 全踩坑一遍后,自己写了个真正能用的 存储器类型汇总 PortSwigger SQL注入LAB3 《软件测试策略》——测试相关技术(编写 bug 报告)(二) ElasticSearch中的索引模板详解 一份CLAUDE.md,为何能让GitHub榜首项目狂揽6万星? 设计圈真的要变天了:ChatGPT Image 2 不只是会生图了 多租户系统框架的界面分析设计 SpringAI入门指南 我为何选择私有化客服系统作为独立开发的方向 RAG 是什么?16 种 RAG 方案一次讲清!AI 应用开发必学 | 万字干货 HackTheBox Cap 靶机:从 IDOR 到 PCAP 凭据提取再到 Capabilities 提权 Python批量图片拼接脚本:支持行列布局、最后一行居中、自然排序 使用 Java 提取 HTML 文件中的纯文本内容 AI开发-python-LangGraph框架(3-31-LangGraph 「合并式状态管理」的原理与实践) keycloak~实现OAuth 2.0 Token Exchange SeaTunnel + AI:一句“我要做什么”,能不能直接变成一份能跑的配置? 本体论的启示:从零开始,如何让AI“学会”使用计算器 【译】Visual Studio 三月更新 —— 打造专属自定义 Agent Tomcat组件管理源码详解 推荐一个开箱即用的.NET权限管理平台:Magic.NET .NET 调试器 netcoredbg 跨平台及其 LoongArch 架构支持进展 DualToken如何让模型理解自己画出来的东西? surging 的Agent插件研发全流程:从定义到落地 无硬件学LVGL—定时器篇:基于Web模拟器+MicroPython速通GUI开发 Kimi 新模型发布!教你如何在 Claude Code 上配置并使用最新的 k2.6 模型! UEFI Driver 程序框架 PREEMPT_RT补丁技术实现:RCU 零代码经验,我用Claude Code搓出的生产力工具 FastAPI订单防超卖实战:从数据库锁到Saga分布式事务,这一篇给你理清了 Kimi Code CLI 系统指令的摸索 以及 开发实战经验分享 智能运维2.0:从范式跃迁到落地实操——理论框架与实施指南 当 AIR 只支持 Mac,我开始重新思考操作系统这件事 深度学习开发笔记(一):跨平台纯C++训练和推理框架LibTorch介绍、开发环境搭建和Demo 必知必会:大模型训练通信开销计算详解与面试指南 AI开发-python-LangGraph框架(3-30-LangGraph 「追加式消息状态」的原理与实践) 新版本Dash完美支持原生FastAPI后端 如何写一个好的 skill 让你的效率加倍 如何灵活设置公式中各个部分的颜色? Claude Code命令速查大全 Netty入门|从BIO到Netty:一步步看懂Java网络编程的迭代逻辑 最小二乘问题详解21:稀疏GCP约束下的自由网平差与弱约束融合 SQL Server 性能优化实战(第一期):索引——查询加速的基石 API未授权访问,敏感信息正在裸奔 Agent 上下文窗口的有限与突破 Linux进阶--系统备份、恢复与可视化管理工具webmin、bt宝塔 AI 赋能微服务工程化:Surging Engine-CLI 的插件化 Agent 架构革新 [项目管理] 浅谈大数据项目的项目管理 一个零基础计算机学生决定开始写博客的原因 基于 OpenSpec 实现规范驱动开发 方差在扩散模型保护中的作用 别再写 if/else 了:让 LLM 自己决定调用哪个函数 Microsoft Agent Framework 创建智能体 Responses WebSocket 协议详解:为什么它会让 Agent 工作流更快 分享一个Oracle 性能诊断工具,代码已开源 深度学习进阶(十) RoI Align 华为云亮相 KubeCon EU 2026,共建“智能原生”基础设施,加速 Agentic AI 未来 FastAPI 生产环境避坑指南:用 Alembic 管理数据库迁移,别再手动改表结构了! AI开发-python-LangGraph框架(3-29-LangGraph 「覆盖式状态」的原理与实践) 开源项目PocoEmit.Mapper重构之扑风捉影 robotframework-aitester---向robotframework中引入大模型能力 Codex学习路线图 ElasticSearch中的分词器详解 Linux--Shell编程入门 FastAPI服务半夜又挂了?先别急着重启,查查你的数据库连接池“池子”是不是漏了 ElasticSearch集群数据备份恢复详解 MAF快速入门(24)整合多个Skill来源 电子小白:光耦到底是什么? 不用写脚本!Browser-Use 实操:AI 直接驱动浏览器自动化测试 【从0到1构建一个ClaudeAgent】协作-Worktree+任务隔离 SolonCode vs OpenCode 内存实测,差距高达 8 倍!(此战能封神吗?) 上周热点回顾(4.13-4.19) LLM核心参数配置指南:原理篇 关于数据库服务器资源降配的效能分析 这篇千万阅读的 AI 方法论,我三个月前已经在用了,效果有点离谱! [云原生] K8s 核心组件使用指南 基于深度学习的障碍物检测系统(YOLOv12完整代码+论文示例+多算法对比) Plist 二进制格式 高等数学-导数与微分(微分中值定理) Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 分享一下笔者的 Mac 装机必备软件 成人礼——2026.4.19 鲜花
GLM模型这么火,咱们用vllm也咧一个呗!
神仙别打架 · 2026-04-16 · via 博客园_首页

上文《higress这个中登才是AI时代的心头好》提到用vll production-stack 部署LLM,
今天我们补交作业, 记录使用vllm production-stack 部署llm。

1. k8s调度gpu

集群管理员,需要在worker节点上安装设备驱动,并运行对应的设备插件。

为了让 K8s 识别并使用 GPU,这两个条件必须同时满足:

  • NVIDIA驱动(NVIDIA Drivers):操作系统与GPU 硬件通信的底层基础,它让操作系统能够识别并控制 GPU 。

  • NVIDIA Device Plugin:K8s的插件(节点上以daemonset形式部署),负责将GPU资源上报给K8s集群(nvidia.com/gpu),并让Pod可以请求和使用这些资源 。

image

具体表现在:

kubectl describe node node10上能显示扩展资源:

image

对于扩展资源gpu,请求和限制必须一样。

requests:
  nvidia.com/gpu: 1
limits:
  nvidia.com/gpu: 1

为帮助我们在k8s中便捷配置、管理GPU,英伟达推出了gpu operator ,具备以下能力

  • NVIDIA 驱动程序(以启用 CUDA)

每个节点上以pod形式安装,kubectl exec -it -n gpu-operator nvidia-driver-daemonset-xxxxx -- nvidia-smi, 或者sudo chroot /run/nvidia/driver nvidia-smi(因为驱动文件被挂载到主机这个目录下); 另外如果主机上安装了nvidia-smi驱动,gpu operator将不会在该节点上部署driver pod.

  • k8s device plugin
  • NVIDIA Container Toolkit、
  • 使用 GFD 的自动节点标记
  • 基于 DCGM 的监控

以下使用默认helm charts配置安装 gpu operator:

helm install --wait --generate-name \
    -n gpu-operator --create-namespace \
    nvidia/gpu-operator \
    --version=v24.9.2

以上为worker节点配置了最常见的容器gpu加速gpu operator还支持配置虚拟机gpu加速、管理vgpu设备, 如果你的k8s集群要管控云原生虚拟机(kubevirt)[https://github.com/kubevirt/kubevirt],需要先按照文档步骤设置节点标签kubectl label node <node-name> --overwrite nvidia.com/gpu.workload.config=vm-passthrough.

2. vllm production-stack

2.1 vllm的原理

为了理解请求,LLM 需要了解字词之间的关系以及如何在字词之间建立关联,与人类使用语义和推理来理解字词不同,LLM 是通过数学运算来“推理”的, 面对大量用户请求时, 需要消耗大量显存。

vllm是伯克利大学开源的吞吐量最强、最容易使用的推理引擎。

从本质上讲,vLLM作为一组指令工作,通过持续“批处理”用户请求,鼓励KV Cache创建快捷方式

① KV Cache: 是一种短期内存存储, 它是将每个token(词元)所对应的值保存到缓存中, 以空间换时间的方式支持快速推理。

连续批处理:是一种可同时处理多个查询的技术(将先前计算的查询词元创建快捷方式),。

借助vLLM,LLM可以将批处理请求中重复部分的词元字符串(“what is the capital of”)保存在短期记忆(KV 缓存)中,并发送一个“翻译请求”,而不是两个单独的请求。

2.2 vllm production-stack

LMCache大语言模型推理引擎的扩展,目标是减小首字延迟TTFT,提高吞吐量。

LMCache与vllm结合产生了 vllm production-stack, 通过这个项目可以得到:

  • 无需更改任何应用代码, 就能从单个vLLM实例扩展到分布式vLLM部署
  • 通过网页仪表盘监控指标
  • 基于请求路由和KVCache卸载带来的性能提升

image

KV Cache感知路由: 确保具有相同prompt前缀的后续请求被路由到同一实例,从而最大化 KV 缓存的利用率并提高性能。

KVCache卸载
将大量KV Cache从GPU显存移动到CPU或磁盘,从而实现更多潜在的KV Cache命中, 在helm charts中要应用lmcache-vllm镜像。

3. glm4.7-flash

glm4.7-flash是一个 30B-A3B MoE 模型, 号称30B级别中最强的模型。

按照上文显存估算: 权重值大概60GB, 可部署在4卡24G 4090上。

官方提示glm这货需要使用transformers框架, 最新的vllm-openai:latest镜像无 transformers框架,使用vllm-openai:latest会报错。

image

故需要我们自己建立一个镜像,dockerfile也很简单(基础镜像不是lmcache-vllm, 不带显存卸载能力):

FROM vllm/vllm-openai:latest
RUN apt-get update && \
    apt-get install -y git && \
    rm -rf /var/lib/apt/lists/*
    
# 安装支持 GLM-4.7-Flash 的最新版 transformers
RUN pip install --no-cache-dir git+https://github.com/huggingface/transformers.git \
    -i https://mirrors.aliyun.com/pypi/simple/

# docker  build -t12205599/vllm-glm47:fixed -f  Dockerfile
# docker push 12205599/vllm-glm47:fixed

使用vllm production-stack时,要注关注 helm charts value文件:

下面使用4卡4090部署1个glm4.7-flash模型实例。

# glm4.7-flash.yaml
root@k8sctrl1:/home/czf/vllm-llm# cat glm47-flash.yaml
routerSpec:
  imagePullPolicy: "IfNotPresent"
  nodeSelectorTerms:
  - matchExpressions:
    - key: nvidia.com/gpu.workload.config
      operator: In
      values:
      - "vm-passthrough"
  env:
  - name: TZ
    value: "Asia/Shanghai"

servingEngineSpec:
  runtimeClassName: "nvidia"
  imagePullPolicy: "IfNotPresent"
  extraVolumes:
  - name: dshm
    emptyDir:
      medium: Memory
      sizeLimit: "30Gi"

  extraVolumeMounts:
  - name: dshm
    mountPath: /dev/shm

  modelSpec:
  - name: "glm47-flash"
    repository: "12205599/vllm-glm47" 
    tag: "fixed"
    modelURL: "ZhipuAI/GLM-4.7-Flash"

    replicaCount: 1

    requestCPU: 16    
    requestMemory: "150Gi"
    requestGPU: 4

    shmSize: "30Gi"
    pvcStorage: "120Gi"
    pvcAccessMode: ["ReadWriteMany"]
    storageClass: "csi-cephfs-models-sc"   # 自动创建pvc
    pvcAnnotations:
      helm.sh/resource-policy: "keep"    # helm uninstall 之后不要删除pvc

    vllmConfig:
      tensorParallelSize: 4   # 不要使用6卡
      maxModelLen: 120000
      extraArgs:
      - "--gpu-memory-utilization"
      - "0.90"
      - "--tool-call-parser"
      - "glm45"
      - "--reasoning-parser"
      - "glm45"
      - "--enable-auto-tool-choice"

    env:
    - name: VLLM_USE_MODELSCOPE
      value: "true"
    - name: HF_ENDPOINT
      value: "https://hf-mirror.com"  # 当必须联网时 使用hf国内镜像站点
    - name: NCCL_DEBUG
      value: "INFO"
    - name: NCCL_P2P_DISABLE
      value: "1"
    - name: NCCL_IB_DISABLE
      value: "1"
    - name: NCCL_SHM_DISABLE
      value: "0"
    - name: PYTORCH_ALLOC_CONF
      value: "expandable_segments:True"
    - name: NCCL_CUDA_MEM_MANAGE
      value: "0"
    - name: NCCL_CUMEM_HOST_ENABLE        
      value: "0"                         
    - name: TZ
      value: "Asia/Shanghai"
    - name: MODELSCOPE_CACHE     #  告诉vLLM 把模型下载到pod内的value路径
      value: "/data/modelscope"


  startupProbe:
    initialDelaySeconds: 1800  # 第一次等待30min再探测
    periodSeconds: 15
    failureThreshold: 60       
    timeoutSeconds: 10
    httpGet:
      path: /health
      port: 8000
  • 镜像尽量使用IfNotPresent拉取策略,因为这些镜像实在太大了
  • 为拉取模型权重文件,启动探针可以先设置为较大的时间 30 * 60=1800,后面可使用upgrade更改为合适的探针时间。
  • 设置环境变量:VLLM_USE_MODELSCOPE: true, HF_ENDPOINT:"https://hf-mirror.com" 从国内的模搭社区下载文件,验证时使用huggingface.com镜像站hf-mirror.com

多个pod可共享加载同一个模型文件, 故模型文件应使用共享文件存储。

    pvcStorage: "120Gi"
    pvcAccessMode: ["ReadWriteMany"]
    storageClass: "csi-cephfs-models-sc"   # 自动创建pvc

这个配置会自动产生pvc,产生的pvc会默认挂载pod内/data目录,这个信息要与环境变量MODELSCOPE_CACHE匹配, 这个变量指示vllm将模型文件下载到pod内目录。

helm install glm4.7-flash vllm/vllm-satck -f glm4.7-flash.yaml -n vllm-product-stack

image

添加到higress网关之后,兼容openai的api如下:

curl -v http://studio.panguclouds.com/v1/chat/completions -X POST -H 'Content-Type: application/json' -d '{"model": "ZhipuAI/GLM-4.7-Flash", "messages": [{"role": "user", "content": "Hello!"}]}'

image

4. 总结

gpu在整个AI生态占据了黄金生态位, 目前算力市场一卡难求, token coding plan价格也是水涨船高。

AI基础设施团队的目标就是不断压榨gpu, 高质量高效地产出token。

本文概述了vllm 这一流行推理框架的原理, 核心是批处理用户请求(对有相同词元字符串部分建立KV Cache快捷方式);

社区引入的LMCache进一步将昂贵的KVCache显存卸载到内存或其他存储, 目的是提高显存使用率,优化吞吐量和首字延迟。

二者结合就是 vllm production-stack的实践。