
周末刚刷完 DeepLearning AI 一门新课vLLM 团队联合吴恩达出品讲的是大模型本地部署的推理优化免费的质量极高直接让我理解了为什么 vLLM 能成为开源推理引擎的事实标准这门课是什么课程叫Fast Efficient LLM Inference with vLLM由 Red Hat 高级开发者布道师 Cedric Clyburn 主讲吴恩达团队联合打造1.5 小时 9 节视频 3 个动手实验核心内容分三大块压缩Compress→ 部署Serve→ 评测Benchmark覆盖了从量化模型到本地跑服务再到性能压测的完整链路今天我重点聊聊 Part I 和 Part II 讲的推理优化三板斧——Continuous Batching、PagedAttention、Prefix Caching以及动手跑 vLLM 服务的实操代码下面这张图概括了 vLLM 的三板斧分别解决什么问题为什么需要推理优化LLM 推理有个致命问题每生成一个 token 都要做一次完整的前向传播把整个模型权重从显存搬到计算单元如果一次只服务一个请求GPU 的 tensor cores 大部分时间都在等数据搬运计算利用率极低。打个比方就像你开了一辆大卡车每次只运一个快递包裹解决方案很简单批处理——把多个请求打包在一起处理。读一次模型权重给多个用户同时算。同样的内存开销干的活儿多了好几倍第一板斧Continuous Batching连续批处理传统的Static Batching有个大问题一批请求里有人问22等于几5 个 token 就搞定有人要一篇 2000 字小作文。短请求早就算完了但必须等那个最慢的请求结束整批才能释放。GPU 空转浪费严重Continuous Batching 的思路不再等整批结束而是在token 级别调度。某个请求一结束新请求立刻补上它的槽位效果肉眼可见——GPU 永远在干活没有空闲槽位第二板斧PagedAttention分页注意力即使 GPU 算力够用还有第二个瓶颈显存每个活跃请求都有自己的 KV Cache键值缓存随着生成 token 不断增长。传统方案一上来就按最大长度预分配一整块连续内存——比如给每个请求留 2048 个 slot问题来了内部碎片请求只用了 200 个 token剩下 1848 个 slot 白白浪费外部碎片两个预分配块之间的空隙放不下新请求过度预留还没用到的空间一直被锁着别的请求用不了vLLM 的论文指出传统方案只有 20%~40%的 KV Cache 显存真正存了有用数据。其余全浪费了PagedAttention 的核心创新借鉴操作系统的虚拟内存分页机制。不再预分配大块连续内存而是把 KV Cache 切成固定大小的小块Block散落在显存各处用一张 Block Table 记录映射关系KV Cache可视化好处是按需分配用多少占多少块可以不连续没有碎片请求结束后块立即释放立即可被复用同样的显存能塞进更多并发请求第三板斧Prefix Caching前缀缓存很多应用场景里所有请求共享同一个 system prompt。比如你的 AI 客服可能有一段 500 token 的系统指令没有 Prefix Caching 时每来一个用户请求vLLM 都要重新算这 500 token 的 KV Cache——做了大量重复计算有了 Prefix Caching共享前缀只算一次后续请求直接复用两个典型场景多用户共享 system prompt算一次所有人用多轮对话第二轮的上下文包含第一轮的全部内容重复部分直接从缓存取课程里给的数据当缓存命中率达到 75% 时吞吐量提升约4 倍。这是白捡的性能动手实操启动 vLLM 服务理论讲完上代码启动一个 vLLM 推理服务只需要一行命令vllm serve Qwen/Qwen3-0.6B --dtypebfloat16 --max-model-len 4096各参数含义vllm serve启动内置推理服务器默认开启 PagedAttention Continuous Batching Prefix Caching监听 8000 端口Qwen/Qwen3-0.6BHugging Face Hub 上的模型 ID首次运行自动下载--dtypebfloat16以 BF16 精度加载权重--max-model-len 4096上下文窗口限制为 4096 tokenvLLM 会据此预估 KV Cache 块池大小服务启动后暴露 OpenAI 兼容的 HTTP API直接用openai官方 Python SDK 调用无需改代码用 OpenAI SDK 连接本地 vLLMimport time, requests, json, osVLLM_URL http://localhost:8000# 等待服务就绪print(Waiting for vLLM server...)for attempt in range(60): try: r requests.get(f{VLLM_URL}/v1/models, timeout5) if r.status_code 200: MODEL r.json()[data][0][id] break except requests.ConnectionError: pass time.sleep(5)print(fConnected to {VLLM_URL} — model: {MODEL})连接上之后用标准 OpenAI client 发请求from openai import OpenAIclient OpenAI(base_urlf{VLLM_URL}/v1, api_keyunused)resp client.chat.completions.create( modelMODEL, messages[{role: user, content: What is PagedAttention in one sentence?}], max_tokens80, temperature0.7, extra_body{chat_template_kwargs: {enable_thinking: False}},)print(resp.choices[0].message.content)注意api_keyunused—— 本地服务不需要真的 API key但 SDK 要求传一个非空值。base_url改成本地地址就行应用代码零修改即可从 OpenAI 切换到自部署模型查看 Logprobs模型到底有多确定vLLM 还能让你看到模型对每个 token 的置信度resp client.chat.completions.create( modelMODEL, messages[{role: user, content: The capital of France is}], max_tokens15, temperature0.0, logprobsTrue, top_logprobs5, extra_body{chat_template_kwargs: {enable_thinking: False}},)for tok in resp.choices[0].logprobs.content[:8]: print(f Chosen: {tok.token} (logprob {tok.logprob:.2f}))在课程实验里模型对 “Paris” 的置信度高达 92.5%——这对于判断模型是知道答案还是瞎猜非常有用实战Continuous Batching 效果观测发 5 个并发请求观察 vLLM 的 metricsimport concurrent.futuresprompts [ What is quantization?, Explain KV caching briefly., What is continuous batching?, Why is LLM inference memory-bound?, What is PagedAttention?,]def _ask(prompt): return client.chat.completions.create( modelMODEL, messages[{role: user, content: prompt}], max_tokens60, temperature0.7, extra_body{chat_template_kwargs: {enable_thinking: False}}, )start time.time()with concurrent.futures.ThreadPoolExecutor(max_workers5) as pool: futures {pool.submit(_ask, p): p for p in prompts} for f in concurrent.futures.as_completed(futures): resp f.result() print(f done: \{futures[f][:40]}\ - {resp.usage.completion_tokens} tokens)elapsed time.time() - startprint(f\nAll 5 completed in {elapsed:.2f}s)关键观察5 个请求的总耗时远小于逐个串行的 5 倍因为 Continuous Batching 让调度器把这些请求打包在同一个 batch 里并行生成实战Prefix Caching 效果验证发 5 个请求共享同一个 system promptSYSTEM_PROMPT ( You are a helpful AI teaching assistant for a course on LLM optimization. You specialize in explaining concepts like quantization, inference optimization, and model serving. Keep answers concise -- one or two sentences.)questions [ What is weight quantization?, How does vLLM handle memory?, What is continuous batching?, Why use prefix caching?, What is GPTQ?,]for i, q in enumerate(questions): t0 time.time() resp client.chat.completions.create( modelMODEL, messages[ {role: system, content: SYSTEM_PROMPT}, {role: user, content: q}, ], max_tokens60, temperature0.7, extra_body{chat_template_kwargs: {enable_thinking: False}}, ) dt time.time() - t0 print(f [{i1}] {q:35} {dt:.2f}s)通过/metrics端点可以看到prefix_cache_queries计数持续增长——vLLM 确实在复用 system prompt 的 KV Cache。课程实验里从 235 涨到 550每次请求都省掉了 system prompt 的重算开销KV Cache 到底占多大显存来算笔账以 Qwen3-0.6B 为例num_layers 28num_kv_heads 8 # GQA: 16 Q heads, 8 KV headshead_dim 128dtype_bytes 2 # BF16per_token 2 * num_layers * num_kv_heads * head_dim * dtype_bytes# 114,688 bytes ≈ 112 KB / token上下文长度KV Cache 大小64 tokens7 MB256 tokens28 MB1024 tokens112 MB4096 tokens448 MB10 个并发 × 4096 上下文 4.4 GB——这就是为什么 KV Cache 管理如此关键。PagedAttention 让每一字节都物尽其用vLLM 的生态位截至 2025 年 1 月vLLM 日安装量超过10 万次2024 年使用量增长了10 倍是 GitHub 上贡献者数最多的 AI/ML 项目之一它的定位很清晰一个平台覆盖所有场景支持模型Llama、Qwen、DeepSeek、Gemma、Mistral、Granite…支持硬件NVIDIA GPU、AMD Instinct、Intel Gaudi、Google TPU、AWS Neuron、IBM Spyre部署环境边缘、私有云、公有云通吃最后唠两句为什么AI大模型成为越来越多程序员转行就业、升职加薪的首选很简单这些岗位缺人且高薪智联招聘的最新数据给出了最直观的印证2025年2月AI领域求职人数同比增幅突破200% 远超其他行业平均水平整个人工智能行业的求职增速达到33.4%位居各行业榜首其中人工智能工程师岗位的求职热度更是飙升69.6%。AI产业的快速扩张也让人才供需矛盾愈发突出。麦肯锡报告明确预测到2030年中国AI专业人才需求将达600万人人才缺口可能高达400万人这一缺口不仅存在于核心技术领域更蔓延至产业应用的各个环节。那0基础普通人如何学习大模型 深耕科技一线十二载亲历技术浪潮变迁。我见证那些率先拥抱AI的同行如何建立起效率与薪资的代际优势。如今我将积累的大模型面试真题、独家资料、技术报告与实战路线系统整理分享于此为你扫清学习困惑共赴AI时代新程。我整理出这套 AI 大模型突围资料包【允许白嫖】✅从入门到精通的全套视频教程✅AI大模型学习路线图0基础到项目实战仅需90天✅大模型书籍与技术文档PDF✅各大厂大模型面试题目详解✅640套AI大模型报告合集✅大模型入门实战训练这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】①从入门到精通的全套视频教程包含提示词工程、RAG、Agent等技术点② AI大模型学习路线图0基础到项目实战仅需90天全过程AI大模型学习路线③学习电子书籍和技术文档市面上的大模型书籍确实太多了这些是我精选出来的④各大厂大模型面试题目详解⑤640套AI大模型报告合集⑥大模型入门实战训练如果说你是以下人群中的其中一类都可以来智泊AI学习人工智能找到高薪工作一次小小的“投资”换来的是终身受益应届毕业生无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界。业务赋能 突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型。获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】