INNER 07 / MODEL / 08 · ENGINE v1
vLLM 高吞吐生产级部署(The LLM Engineer: vLLM & Production Serving)
本关练习:编写 vLLM 生产级多 LoRA 动态挂载启动脚本与压测指标规范。
30 SECONDS / 30 秒看懂
这一关只解决一件事:在 AI Infra Engineer Learning (Mod 110) 与 mlabonne/llm-course 的 The LLM Engineer 篇章中,很多初学者用 Hugging Face 原生的 model.generate() 套个 FastAPI 就敢上线,结果 5 个用戶同时访问就把服务器卡死!生产环境必须使用 vLLM 或 TGI 等专用推理引擎。
- 写出完整的 vllm serve 启动命令及核心生产参数(含量化格式、最大上下文长度限制、GPU 显存预留比例、前缀缓存开关与多 LoRA 模块路径映射)(
- 5 分);
- 写出客戶端通过标准 OpenAI Python SDK 指定调用其中“法务审查 LoRA”的请求代码(
3 MINUTES / 3 分钟拆解
先看来源里的例子:PDF 本关任务(来源)
你要在单张 24GB GPU 服务器上使用 vLLM 启动一个兼容 OpenAI API 协议的生产服务端,基座采用 AWQ 4-bit 量化的 Qwen3.8-27B,同时动态挂载“法务审查 LoRA”和“营销文案 LoRA”两个适配器,并开启前缀缓存。
发生了什么
来源要求:写出完整的 vllm serve 启动命令及核心生产参数(含量化格式、最大上下文长度限制、GPU 显存预留比例、前缀缓存开关与多 LoRA 模块路径映射)( / 5 分); / 写出客戶端通过标准 OpenAI Python SDK 指定调用其中“法务审查 LoRA”的请求代码(
输出
参考答案:参考答案:vLLM 生产级多 LoRA 动态部署命令与压测基线 # 1. vLLM 生产级启动命令(开启 AWQ 量化、前缀缓存与多 LoRA 动态挂载) vllm serve Qwen/Qwen3.8-27B-AWQ \ --quantization awq \ --max-model-len 8192 \ --gpu-memory-utilization 0.90 \ --enable-prefix-caching \ --enab
术语拆开
- PagedAttention
- 把 KV Cache 拆成非连续固定块,提升显存利用率。
- Continuous Batching
- 请求结束即补入新请求,不等待整批。
- TTFT
- 首 Token 延迟。
为什么有效
来源核心原理:在 AI Infra Engineer Learning (Mod 110) 与 mlabonne/llm-course 的 The LLM Engineer 篇章中,很多初学者用 Hugging Face 原生的 model.generate() 套个 FastAPI 就敢上线,结果 5 个用戶同时访问就把服务器卡死!生产环境必须使用 vLLM 或 TGI 等专用推理引擎。vLLM 之所以能将吞吐量提升 10‒20 倍,核心在于三大黑科技: PagedAttention(分页注意力机制):借鉴操作系统虚拟内存分页思想,将原本必须连续分配、浪费高达 60% 的 KV Cache 显存拆分为非连续的固定大小物理块(Blocks),将显存利用率推升至 95% 以上。 Continuous Batching(连续批处理 / Iteration-level Scheduling):不再等一个 Batch 里最慢的长句子生成完才放新请求进来,只要批次里有任意一条请求生成结束(遇到 EOS),下一个排队请求立刻在下一个 Token 迭代周期无缝插队补位。 Prefix Caching(自动前缀缓存)与 Multi-LoRA Serving:自动缓存所有请求共享的长 System Prompt 或 Few-Shot 示例的 KV Cache,无需重复计算首字延迟(TTFT);且支持在一个基座模型实例上同时挂载数十个不同业务的轻量 LoRA 适配器动态切换。
结构长什么样
写出完整的 vllm serve 启动命令及核心生产参数(含量化格式、最大上下文长度限制、GPU 显存预留比例、前缀缓存开关与多 LoRA 模块路径映射)( 5 分); 写出客戶端通过标准 OpenAI Python SDK 指定调用其中“法务审查 LoRA”的请求代码( 5 分); 明确定义生产压测必看的三大核心性能指标:TTFT(首 Token 延迟)、TPOT / ITL(Token 间生成延迟) 与 Throughput(系统总吞吐 tokens/s) 的含义与达标基线( 5 分)。 全关卡标准
压测时 TTFT、TPOT/ITL、Throughput 分别衡量什么?
SOURCE READING / 来源精读
在 AI Infra Engineer Learning (Mod 110) 与 mlabonne/llm-course 的 The LLM Engineer 篇章中,很多初学者用 Hugging Face 原生的 model.generate() 套个 FastAPI 就敢上线,结果 5 个用戶同时访问就把服务器卡死!生产环境必须使用 vLLM 或 TGI 等专用推理引擎。
逐点读懂
- 写出完整的 vllm serve 启动命令及核心生产参数(含量化格式、最大上下文长度限制、GPU 显存预留比例、前缀缓存开关与多 LoRA 模块路径映射)(
- 5 分);
- 写出客戶端通过标准 OpenAI Python SDK 指定调用其中“法务审查 LoRA”的请求代码(
怎么对应本关练习
先读 30 秒与 3 分钟拆解,再读本关原文与实验,最后做客观题和实操题;答案在下方。
例子在哪
本关任务与参考答案见页面下方;来源为本册 PDF 对应关卡。
本关先记住:写出完整的 vllm serve 启动命令及核心生产参数(含量化格式、最大上下文长度限制、GPU 显存预留比例、前缀缓存开关与多 LoRA 模块路径映射)(
核心原理
在 AI Infra Engineer Learning (Mod 110) 与 mlabonne/llm-course 的 The LLM Engineer 篇章中,很多初学者用 Hugging Face 原生的 model.generate() 套个 FastAPI 就敢上线,结果 5 个用戶同时访问就把服务器卡死!
生产环境必须使用 vLLM 或 TGI 等专用推理引擎。
vLLM 之所以能将吞吐量提升 10‒20 倍,核心在于三大黑科技: PagedAttention(分页注意力机制):借鉴操作系统虚拟内存分页思想,将原本必须连续分配、浪费高达 60% 的 KV Cache 显存拆分为非连续的固定大小物理块(Blocks),将显存利用率推升至 95% 以上。
Continuous Batching(连续批处理 / Iteration-level Scheduling):不再等一个 Batch 里最慢的长句子生成完才放新请求进来,只要批次里有任意一条请求生成结束(遇到 EOS),下一个排队请求立刻在下一个 Token 迭代周期无缝插队补位。
Prefix Caching(自动前缀缓存)与 Multi-LoRA Serving:自动缓存所有请求共享的长 System Prompt 或 Few-Shot 示例的 KV Cache,无需重复计算首字延迟(TTFT);且支持在一个基座模型实例上同时挂载数十个不同业务的轻量 LoRA 适配器动态切换。
第 8 关实操练习题:编写 vLLM 生产级多 LoRA 动态挂载启动脚本与压测指标规范
任务背景
你要在单张 24GB GPU 服务器上使用 vLLM 启动一个兼容 OpenAI API 协议的生产服务端,基座采用 AWQ 4-bit 量化的 Qwen3.8-27B,同时动态挂载“法务审查 LoRA”和“营销文案 LoRA”两个适配器,并开启前缀缓存。
通关硬性要求(满分 12.5 分)
1. 写出完整的 vllm serve 启动命令及核心生产参数(含量化格式、最大上下文长度限制、GPU 显存预留比例、前缀缓存开关与多 LoRA 模块路径映射)(
5.5 分);
2. 写出客戶端通过标准 OpenAI Python SDK 指定调用其中“法务审查 LoRA”的请求代码(
3.5 分);
3. 明确定义生产压测必看的三大核心性能指标:TTFT(首 Token 延迟)、TPOT / ITL(Token 间生成延迟) 与 Throughput(系统总吞吐 tokens/s) 的含义与达标基线(
3.5 分)。 全关卡标准参考答案与工程配置解析(Answer Key) 以下提供全套 8 关的标准代码、训练配置 YAML 与显存核算公式,既是高薪 AI 工程师面试的高频必考题答案,也是可直接用于项目交付的实战脚手架。 第 1 关
PRACTICE / 本关练习 · 本地规则 + 覆盖检查
编写 vLLM 生产级多 LoRA 动态挂载启动脚本与压测指标规范
本地检查在你的浏览器里完成,不上传。覆盖检查需要先登录(免费注册),并把这段答案发送到服务器计算一次,算完即弃、不存档,需你点同意;只核对本关评分项覆盖的方向,不在评分项里的题目不会被检查。
评分项
结构分 — / 12.5 分
查看参考答案与得分点 先自己写,再打开+
参考答案与得分要点
参考答案:vLLM 生产级多 LoRA 动态部署命令与压测基线 # 1. vLLM 生产级启动命令(开启 AWQ 量化、前缀缓存与多 LoRA 动态挂载) vllm serve Qwen/Qwen3.8-27B-AWQ \ --quantization awq \ --max-model-len 8192 \ --gpu-memory-utilization 0.90 \ --enable-prefix-caching \ --enable-lora \ --max-loras 4 \ --max-lora-rank 32 \ --lora-modules legal-lora=./adapters/legal_sft_v1 marketing-lora=./adapters/mkt_sft_v2 \ --port 8000 # 2. 客戶端通过 OpenAI SDK 动态指定调用“法务审查 LoRA” from openai import OpenAI client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY") resp = client.chat.completions.create( model="legal-lora", # 直接传入 --lora-modules 中注册的适配器别名即可零停机切换! messages=[{"role": "user", "content": "请审查以下违约金条款是否合法..."}], temperature=0.0 ) 生产压测三大核心指标定义:1 TTFT(Time To First Token,首字延迟):从发送请求到收到第一个输出 Token 的耗时,反映 Prompt 预填充(Prefill)与排队速度,交互式对话要求 < 500ms(开启 --enable- prefix-caching 可大幅降低 TTFT);2 TPOT / ITL(Time Per Output Token,单字生成间隔):解码阶段每生成下一个 Token 的平均耗时 , 决定打字机流畅度 , 人类阅读舒适线要求 < 40ms/token ( 即 > 25 tokens/s);3 System Throughput(系统总吞吐量):在高并发下每秒为所有用戶生成的总 Token 数,衡量单卡商业承载力与单位 Token 成本。 得分要点拆解:完整写出含 `--quantization awq`、`--enable-prefix-caching`、`--enable-lora` 与 `-- lora-modules` 的启动命令(5.5 分);展示客戶端通过 `model="legal-lora"` 动态路由的调用代码(3.5 分);准确定义 TTFT、TPOT 与 Throughput 三大压测指标(3.5 分)。
网页永久免费。完整 PDF 会按顺序发给留邮箱的读者,不转售、不群发广告。
留邮箱,获取完整 PDF ↗