AI Infra实战03:vLLM部署实战——跑通第一个大模型推理服务 📅 2026/8/24 13:37:30 AI Infra实战03vLLM部署实战——跑通第一个大模型推理服务本篇目标在真实GPU环境中部署vLLM推理服务成功让大模型对外提供API。这是AI Infra工程师最核心的技能之一。学完本篇你将掌握vLLM是什么、为什么快模型下载和加载vLLM推理服务启动OpenAI兼容API的使用对话、流式输出、System角色常见报错处理实操环境配置值平台AutoDLGPUTesla T416GB显存CPU8核 Xeon内存56GB系统盘50GB驱动550.107.02CUDA12.4镜像vllm-project/vllm/VLLM_simplePyTorch 2.6vLLM版本0.10.1.1模型Qwen2-1.5B-Instruct费用0.78元/小时本篇实操约1元什么是vLLMvLLM是一个高性能的大模型推理引擎专门优化LLM的推理速度。为什么比普通推理快技术作用PagedAttention像操作系统管理内存一样管理KV Cache减少显存浪费Continuous Batching多个请求合并在GPU上并行计算不用等一个完了再算下一个高效显存管理动态分配显存同样的GPU能服务更多并发简单理解普通推理是一个请求一个请求排队处理vLLM是把多个请求打包到GPU上一起算。架构图客户端curl/应用/前端 │ ▼ HTTP请求OpenAI兼容格式 ┌─────────────────────────────┐ │ vLLM API Server │ ← 端口8000 │ (/v1/chat/completions) │ └──────────────┬──────────────┘ │ ▼ ┌─────────────────────────────┐ │ vLLM推理引擎 │ │ - PagedAttention │ │ - Continuous Batching │ │ - KV Cache管理 │ └──────────────┬──────────────┘ │ ▼ ┌─────────────────────────────┐ │ GPUTesla T4 16GB │ │ 模型权重 KV Cache │ └─────────────────────────────┘完整操作步骤Step 1验证GPU可用nvidia-smi输出----------------------------------------------------------------------------------------- | NVIDIA-SMI 550.107.02 Driver Version: 550.107.02 CUDA Version: 12.4 | |--------------------------------------------------------------------------------------- | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | 0 Tesla T4 On | 00000000:00:06.0 Off | 0 | | N/A 48C P0 26W / 70W | 0MiB / 15360MiB | 0% Default | ---------------------------------------------------------------------------------------确认Tesla T4、15360MiB显存、CUDA 12.4 ✅Step 2确认vLLM已安装python-cimport vllm; print(vllm.__version__)输出0.10.1.1✅Step 3下载模型# 设置HuggingFace镜像国内网络无法直连HuggingFaceexportHF_ENDPOINThttps://hf-mirror.com# 下载Qwen2-1.5B-Instruct模型约3GBhf download Qwen/Qwen2-1.5B-Instruct --local-dir /root/models/Qwen2-1.5B-Instruct⚠️踩坑记录直接下载会报ConnectTimeout因为AutoDL在国内无法直连huggingface.co。解决方案设置HF_ENDPOINThttps://hf-mirror.com使用国内镜像。下载约2-3分钟完成。Step 4启动vLLM推理服务vllm serve /root/models/Qwen2-1.5B-Instruct--host0.0.0.0--port8000⚠️踩坑记录首次启动报错ImportError: flash_attn_2_cuda...undefined symbol。原因是T4Turing架构compute capability 7.5不支持FlashAttention-2。解决方案pip uninstall flash-attn-y卸载flash-attn后重新启动即可。vLLM会自动fallback到XFormers后端。启动成功日志INFO: Using XFormers backend. INFO: Started server process [1278] INFO: Application startup complete.看到Application startup complete说明服务就绪。Step 5发起推理请求另开终端基本对话curlhttp://localhost:8000/v1/chat/completions\-HContent-Type: application/json\-d{ model: /root/models/Qwen2-1.5B-Instruct, messages: [ {role: user, content: 你好请用一句话介绍你自己} ], max_tokens: 100 }返回{choices:[{message:{role:assistant,content:我是你的AI助手致力于帮助你解答问题、提供信息和完成任务。},finish_reason:stop}],usage:{prompt_tokens:25,completion_tokens:18,total_tokens:43}}推理成功API功能演示1. System角色设定curlhttp://localhost:8000/v1/chat/completions\-HContent-Type: application/json\-d{ model: /root/models/Qwen2-1.5B-Instruct, messages: [ {role: system, content: 你是一个DevOps专家}, {role: user, content: K8s中Pod一直Pending怎么排查} ], max_tokens: 200 }模型会以DevOps专家的角色回答列出资源限制、网络问题等排查思路。2. Temperature控制创意程度curlhttp://localhost:8000/v1/chat/completions\-HContent-Type: application/json\-d{ model: /root/models/Qwen2-1.5B-Instruct, messages: [ {role: user, content: 给我的技术博客起5个标题主题是GPU监控} ], temperature: 0.9, max_tokens: 200 }temperature0每次回答相同确定性temperature0.9更有创意和多样性3. 流式输出像ChatGPT一样逐字返回curlhttp://localhost:8000/v1/chat/completions\-HContent-Type: application/json\-d{ model: /root/models/Qwen2-1.5B-Instruct, messages: [ {role: user, content: 解释什么是NAT Gateway用小学生能听懂的方式} ], max_tokens: 150, stream: true }加stream: true后返回格式变为SSEServer-Sent Events逐token返回。前端可以实现打字机效果。4. 查看模型信息curlhttp://localhost:8000/v1/models返回当前加载的模型名称和配置max_model_len32768等。API参数说明参数类型说明modelstring模型路径或名称messagesarray对话消息列表role: system/user/assistantmax_tokensint最多生成多少tokentemperaturefloat0-2越高越随机streambool是否流式返回top_pfloat0-1nucleus samplingfrequency_penaltyfloat重复惩罚vLLM完全兼容OpenAI API格式——你用过ChatGPT的API的话代码不用改只要把URL从api.openai.com改成localhost:8000就行。GPU显存分析模型加载后查看显存nvidia-smi# Memory-Usage: 11925MiB / 15360MiB用途占用模型权重Qwen2-1.5Bfloat16~3GBKV Cache vLLM运行时开销~9GB剩余可用~3.4GBT4的16GB显存运行1.5B模型绑绑有余。如果换7B模型大约需要14GB显存T4也能勉强跑。踩坑记录问题1HuggingFace下载超时报错ConnectTimeout: Connection to huggingface.co timed out原因AutoDL在国内无法直连huggingface.co解决exportHF_ENDPOINThttps://hf-mirror.com问题2flash_attn报错报错ImportError: flash_attn_2_cuda...undefined symbol原因T4是Turing架构compute capability 7.5FlashAttention-2需要Ampere架构8.0解决pip uninstall flash-attn-y# vLLM自动fallback到XFormers后端问题3huggingface-cli命令废弃提示提示Warning: huggingface-cli download is deprecated. Use hf download instead.影响不影响执行只是提示用新命令。可以直接用hf download。延伸思考面试常见问题面试问题答案要点vLLM为什么比普通推理快PagedAttention管理KV Cache Continuous Batching并行处理多请求vLLM的API兼容什么格式完全兼容OpenAI API格式drop-in replacementT4能跑多大的模型16GB显存float16下最大跑7B模型int4量化可以跑13B模型加载后显存怎么分配的模型权重 KV Cache 运行时开销什么是Continuous Batching不等当前batch处理完就插入新请求GPU利用率更高费用说明项目费用AutoDL T4实例0.78元/小时本篇实操时长约30分钟总费用约0.4元小结本篇核心收获vLLM一条命令启动推理服务vllm serve 模型路径完全兼容OpenAI APImessages格式、stream输出、temperature控制国内下载模型用镜像HF_ENDPOINThttps://hf-mirror.comT4不支持FlashAttention-2卸载flash-attn让vLLM用XFormers1.5B模型占用约12GB显存T416GB运行绰绰有余下一篇预告AI Infra实战04vLLM生产化——性能调优与压测下一篇我们将学习串行vs并发性能对比vLLM关键调优参数max-model-len、gpu-memory-utilization压测方法和吞吐量分析Continuous Batching效果验证参考链接vLLM官方文档vLLM GitHubQwen2模型HuggingFace镜像站PagedAttention论文AutoDL官网