用 vLLM 在两张 RTX 3090 上部署 Qwen2.5-14B BF16全量大模型的完整过程_bf16 vllm推理

🐇明明跟你说过:个人主页
🏅个人专栏:《深度探秘:AI界的007》 🏅
🔖行路有良友,便是天堂🔖
目录
一、前言
1、Qwen2.5-14B 简介与优势
2、双 3090 的算力配置
二、技术栈介绍
1、vLLM简介
2、NVIDIA 系列 GPU 简介
3、Qwen系列模型简介
4、什么是模型量化(Quantization)
三、环境准备
1、硬件环境
2、软件环境
四、部署Qwen2.5:14B
1、模型文件准备
2、安装vLLM
3、使用 Python 脚本方式运行
4、常驻运行(对外提供服务)
5、本地调用测试
6、进阶建议
一、前言
1、Qwen2.5-14B 简介与优势
🤖 Qwen2.5-14B 是什么?
Qwen2.5-14B 是阿里云推出的大语言模型 Qwen2.5 系列中的「大块头」——拥有 140亿参数 的智能大脑🧠!
你可以把它想象成一个能写、能答、能聊、还能编程的超级助手,既聪明又可靠~
🌟 Qwen2.5-14B 有啥亮点?
1️⃣ 更聪明的大脑 🧠
相比之前的版本,Qwen2.5-14B 在理解语言、分析问题、写作、推理等方面全面升级!
 无论是日常对话,还是技术问题,它都能“对答如流”。
2️⃣ 多才多艺 ✍️🧑💻📚
它不仅能写文章📄、生成代码💻、翻译语言🌍,还能辅助写论文、整理文档,甚至参与编程教学!
👉 应用场景举几个:
- 
写周报、写PPT大纲 ✅
 - 
翻译中英文 ✅
 - 
分析数据结构、写 Python、Go、SQL ✅
 - 
总结长文档、提取关键信息 ✅
 
 
 
3️⃣ 支持多轮对话,记忆力💾更强
Qwen2.5-14B 的对话能力更自然、更有逻辑,而且可以“记住上下文”,实现更流畅的多轮交流👏。
比如:你前面问了一个问题,后面继续提问时,它还能“接得上茬”!
4️⃣ 中英双语都厉害 🌏
中文自然不用说,母语级别✅
 英文水平也很强,能轻松处理技术文档、科研论文和日常交流✒️
5️⃣ 开源友好 🔓
Qwen 系列是 开放的、可商用的模型,意味着开发者、企业可以自由使用和集成,构建自己的 AI 应用,少了很多束缚!💼💡
比如:
- 
构建企业客服助手
 - 
嵌入到办公系统中
 - 
自研 AI 产品(智能问答、知识库等)
 

2、双 3090 的算力配置
💥双 RTX 3090:极限性能,性价比之选⚡
如果说显卡是深度学习的“发动机”,那么双 RTX 3090绝对是民间炼丹师们的“神级座驾”!🏎️💨
在消费级显卡中,3090 拥有:
- 
🧠 24GB 大显存(训练大模型的“必需品”)
 - 
🔥 强劲的 FP16/TF32 算力
 - 
💵 相对合理的二手价格(尤其是在 4090/5090 推出之后)
 
而 **双卡并联(NVLink 或多进程策略)**更是把性价比拉满,成为小团队、本地实验、独立研究者的理想选择!
✅ 为什么说它是“极限”?
- 
可以单机跑 LLaMA、Qwen、Mistral 等中等规模模型 🧠
 - 
数据吞吐速度快,训练速度比单卡提升一大截 🚀
 - 
能胜任多模型并发推理任务,边训练边测试都不是问题!
 
  
 
✅ 为什么说它是“性价比”?
- 
二手一张 3090 价格≈一张 4080,但显存更大!
 - 
比 4090 更便宜、比 A6000 更实用、比 4090Ti 更可控 👊
 - 
配合 Open Source 大模型,打通训练 + 推理全流程 🧑💻
 
🧊 小提醒:
当然,双卡发热量大、功耗高,建议搭配:
- 
大功率电源(≥1000W)
 - 
优秀的散热系统(风道通畅 or 水冷)
 - 
机箱空间足够大!
 
🔚 总结一句话:
**双 3090,不只是极限堆料,更是 AI 开发者的“性价比之选”!**💻🔥
 
 
二、技术栈介绍
1、vLLM简介
🚀 什么是 vLLM?
vLLM 是一个开源的 高性能推理引擎,专为大语言模型(LLMs)打造,它让模型“跑得更快、用得更省”💨。
📌 项目地址:https://github.com/vllm-project/vllm
✅ 支持 Hugging Face 上的大多数主流模型(如 LLaMA、Mistral、Qwen 等)
🌟 vLLM 的核心亮点
1️⃣ 超快推理速度 ⚡
vLLM 使用了一种叫做 PagedAttention 的新机制,优化了传统 Transformer 的内存使用方式,使模型推理变得更高效,速度提升可达 2~4 倍!
2️⃣ 多用户高并发 ✨
你可以让很多人同时调用同一个模型,vLLM 会智能调度,避免资源冲突。
适合部署到:
- 
AI 聊天机器人
 - 
多人问答接口
 - 
在线写作、翻译工具
 
 
 
3️⃣ 支持 OpenAI 接口风格 🧠
只需几行命令,就能让你的本地大模型支持 OpenAI API 接口,像 chat/completions 一样调用,
再用 curl 或 openai SDK 调用就行!是不是很丝滑😎?
4️⃣ 多 GPU 高效利用 🔧
vLLM 支持 多 GPU 部署,能智能把模型参数分布到多个显卡上,非常适合:
- 
多张 3090 / A100 / H100 环境
 - 
单机多卡或集群部署
 
5️⃣ 高吞吐、低延迟 🌀
即使是上百个请求同时进来,vLLM 也能做到:
- 
✅ 快速响应
 - 
✅ 内存精打细算
 - 
✅ 批处理优化
 
适合追求实时性的 AI 应用场景。
更多vLLM介绍,可以参考这篇文章
 
 
2、NVIDIA 系列 GPU 简介
🎮💻 NVIDIA GPU 系列介绍
NVIDIA 是显卡界的扛把子 💪,其 GPU 不仅统治着游戏圈,更是AI 和深度学习界的最强大脑 🧠。
 它的产品线主要分为以下几大类👇:
🎮 GeForce 系列 —— 游戏 & 入门 AI 的主力军
这是最常见的一类显卡,主打游戏玩家和普通创作者。
🌟 特别推荐:RTX 3090/4090
- 
24GB 大显存,能跑 LLaMA、Qwen、Mistral 等大语言模型
 - 
vLLM 推理、多卡训练完全胜任!
 
 
 
🤖 Tesla / A100 / H100 系列 —— 数据中心神器
这类 GPU 是为AI 训练 & 超大规模计算设计的,常见于服务器集群中:
🔥 特点:
- 
不接显示器
 - 
专为训练优化(FP16、TensorCore 超强)
 - 
用在如 ChatGPT、BERT、Stable Diffusion 的大规模训练上
 
🧪 Jetson 系列 —— 边缘计算 / 物联网 AI
面向开发板 & 机器人等小型设备的 GPU:
👍 如果你做嵌入式 AI,小而强的 Jetson 是好选择!
🧠 总结一下:
 
 
3、Qwen系列模型简介
🤖 Qwen 系列大模型简介
你是否听说过「Qwen」这个名字?它是阿里云推出的开源大语言模型家族,名字取自 “通义千问”(Qwen = QianWen),寓意 “千问千答、智慧无边”🌌。
它不仅是国产开源大模型的佼佼者,还支持商业化使用,用起来放心又强大!
🧬 Qwen 系列进化之路
 
 
🧩 Qwen1.5:奠基之作
✅ 优点:
- 
良好的中英文通用性
 - 
开源 + 商用许可
 - 
已有众多第三方工具支持(如 LangChain)
 
⚠️ 限制:
- 
推理速度稍慢
 - 
训练数据中英文比重偏中文
 
🔧 推荐用途:轻量部署、学习研究、初级应用开发
⚙️ Qwen2.5:速度与性能双升级
🚀 优化亮点:
- 
架构升级:基于 Transformer + SwiGLU + Rotary PosEmbedding
 - 
支持 vLLM、多线程推理,速度飞快⚡
 - 
中文、英文、代码理解都更强
 
✅ 更适合部署在 RTX3090 / 4090 / A100 等显卡上
🔧 推荐用途:企业私有部署、中型应用开发、快速响应系统
🧠 Qwen3:全能旗舰,媲美 GPT-4
🎯 核心优势:
- 
中英文能力双满分(中文能力甚至领先 GPT-4)
 - 
更长上下文、更强代码推理、多轮对话无压力
 - 
训练数据更丰富,知识更广泛
 - 
支持 Qwen3-MoE(混合专家模型)👉 高性能低成本!
 
🏆 在 CMMLU、MMLU、HumanEval 等多个榜单碾压 LLaMA3 同级别模型
🔧 推荐用途:大模型基础设施、科研场景、AI 原生应用开发
💡 简单比一比:谁更适合你?
🔚 总结一句话:
Qwen 是中国开源大模型的代表作,从 1.5 到 3,每一代都更聪明、更快、更强大,是国产 LLM 中最值得尝试的系列之一!💪
 
 
4、什么是模型量化(Quantization)
大模型非常大(几十GB起步),运行时显存压力巨大 💥。量化是为了:
- 
✅ 降低模型体积
 - 
✅ 降低显存占用
 - 
✅ 加速推理速度
 - 
❗但可能会损失一定精度(需要权衡)
 
🧱 FP32:原汁原味的大模型
- 
占空间最大,常见模型 50GB+
 - 
准确率最高
 - 
通常只用于训练和验证
 
✨ FP16(float16):“高性能原味”
- 
一般用于推理和训练,速度更快,显存减半
 - 
精度接近 FP32,几乎无损失
 - 
如你运行的 Qwen2.5-14B FP16,就是高质量推理版本
 
🧠 BF16(bfloat16)
- 
与 FP16 类似,但保留更多指数位,适合训练阶段
 - 
Google TPU 系上常见
 
⚡ INT8:“压缩之后还挺聪明”
- 
占空间只有 FP32 的 1/4
 - 
推理速度显著提升
 - 
精度略有下降,但可接受,常用于部署(ONNX, TensorRT)
 
🔬 INT4:“极限压缩选手”
- 
超省空间,仅 FP32 的 1/8
 - 
推理快得飞起(尤其适合边缘设备)
 - 
精度可能下降明显,不适合要求高准确率任务
 
🧠 哪种格式该选谁?

三、环境准备
1、硬件环境
- GPU:RTX 3090 x 2
 - CPU:32C
 - 内存:64G
 - 硬盘:≥ 50G
 
2、软件环境
- 操作系统:Ubuntu 22.04
 - GPU驱动版本:≥ 525(建议 570)
 - CUDA版本:CUDA 11.8 或 CUDA 12.x(推荐 CUDA 12.4)
 - Python 版本:python3.12
 - PyTorch版本: ≥ 2.1(推荐2.5.1)
 

四、部署Qwen2.5:14B
1、模型文件准备
通过 Hugging Face 或 魔搭社区进行模型文件的下载,国内推荐魔搭社区
以魔搭社区为例,执行以下命令将 Qwen2.5-14B-Instruct 模型拉取至本地
pip install modelscopemodelscope download --model Qwen/Qwen2.5-14B-Instruct --local_dir ./Qwen2.5-14B-Instruct

2、安装vLLM
创建虚拟环境(可选但推荐)
python -m venv vllm-envsource vllm-env/bin/activate
# 安装 vLLM + transformers(官方推荐)
pip install --upgrade pippip install \"vllm[all]\" transformers accelerate safetensors
安装包非常大,耗时可能会比较久

3、使用 Python 脚本方式运行
编写代码
from vllm import LLM, SamplingParams# 初始化模型llm = LLM( model=\"/root/autodl-tmp/Qwen2.5-14B-Instruct\", dtype=\"float16\", tensor_parallel_size=2, max_model_len=8192, gpu_memory_utilization=0.95,)# 定义推理参数sampling_params = SamplingParams(temperature=0.7)# 拼接 prompt(低版本不支持 chat 格式)prompt = \"你是一个有帮助的 AI 助手。\\n用户:你好,介绍一下Qwen2.5模型吧\\n助手:\"outputs = llm.generate(prompt, sampling_params)print(outputs[0].outputs[0].text)
执行代码
python test.py 

4、常驻运行(对外提供服务)
在命令行执行下面的命令
python -m vllm.entrypoints.openai.api_server \\ --model /root/autodl-tmp/Qwen2.5-14B-Instruct \\ --served-model-name Qwen2.5-14B-Instruct \\ --dtype float16 \\ --tensor-parallel-size 2 \\ --max-model-len 8192 \\ --gpu-memory-utilization 0.95
参数解释:
--model--dtype float16--tensor-parallel-size 2--gpu-memory-utilization--max-model-len5、本地调用测试
上面我们已经将大模型启动完毕,接下来进行调用测试
vLLM 会默认监听 http://localhost:8000/v1/chat/completions,兼容 OpenAI 接口!
在命令行执行下面的命令
curl http://localhost:8000/v1/chat/completions -H \"Content-Type: application/json\" -d \'{ \"model\": \"Qwen2.5-14B-Instruct\", \"messages\": [{\"role\": \"user\", \"content\": \"你好,介绍一下Qwen模型吧\"}], \"temperature\": 0.7 }\'

也可以用 Python + openai 兼容客户端调用:
from openai import OpenAIclient = OpenAI(base_url=\"http://localhost:8000/v1\", api_key=\"EMPTY\")response = client.chat.completions.create( model=\"Qwen2.5-14B-Instruct\", messages=[ {\"role\": \"system\", \"content\": \"你是一个有帮助的AI助手\"}, {\"role\": \"user\", \"content\": \"介绍一下你自己吧\"} ], temperature=0.7,)print(response.choices[0].message.content)

6、进阶建议
--swap-space 和 --load-format safetensors 是 vLLM 加载大型模型时两个常用的性能优化参数,它们可以:
- 
✅ 加速大模型加载速度(特别是首次运行)
 - 
✅ 降低内存或显存压力
 - 
✅ 提升容错性和部署效率
 
--load-format safetensors
🔍 作用:
告诉 vLLM 使用 .safetensors 格式加载权重文件,相比传统 .bin 格式,它:
- 
加载更快(是原生内存映射格式)
 - 
更安全(防止任意代码执行)
 - 
更节省内存
 
🛠 使用方式:
只需加上参数:
--load-format safetensors
✅ 条件:
- 下载的模型文件夹必须包含 
.safetensors文件(大多数新模型默认已经支持了)。 
--swap-space
🔍 作用:
设置 vLLM 在模型加载时最多使用的 CPU swap 空间(单位为 MB)。
这非常有用,尤其是在:
- 
显卡内存不够时 ➜ 临时放一部分数据到内存
 - 
第一次加载大模型时 ➜ 减缓“爆内存”崩溃
 - 
启动大模型(如 Qwen2.5-14B)时显存紧张
 
🛠 使用方式(例如使用 8GB 交换空间):
--swap-space 8192
或者给个更大的缓冲:
--swap-space 16000
💡 注意:这个“swap”是 vLLM 自己管理的,并不是 Linux 的 swap 分区。
🧪 完整命令行推荐(适合双 3090 启动 Qwen2.5-14B)
python -m vllm.entrypoints.openai.api_server \\ --model /root/autodl-tmp/Qwen2.5-14B-Instruct \\ --served-model-name Qwen2.5-14B-Instruct \\ --dtype float16 \\ --tensor-parallel-size 2 \\ --max-model-len 8192 \\ --gpu-memory-utilization 0.95 --swap-space 16000 \\ --load-format safetensors
启动后可以通过 nvidia-smi 命令来查看GPU功耗以及显存使用情况

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!


