兄弟们,想跑大模型但被显卡价格劝退的看过来!一张4090要一万多,一张A100二手都要好几万,普通人根本玩不起。但今天我要告诉你一个骚操作:花2000多块,就能拼一台能跑320亿参数大模型的AI推理服务器,8个人同时提问都不卡,速度比llama.cpp快6倍!
这套方案的核心就俩字:捡漏。用两张二手AMD Radeon VII显卡(每张16GB显存,两张凑32GB),配上淘汰的洋垃圾服务器主板和CPU,总价2500块搞定。没错,就是当年AMD拿来打RTX 2080 Ti的旗舰卡,现在二手只要800块一张,显存比2080 Ti还大!
这篇文章从硬件清单、组装、装系统到部署vLLM服务,一步步教你全流程,看完就能照着拼一台。适合想本地跑大模型、又不想花大价钱的兄弟,也适合拿来当开源项目练手。
一、先搞懂原理:为什么两张旧卡能跑320亿参数?
你可能想问:320亿参数=32B模型,光权重文件就20多个G,两张16G的卡加起来32G,怎么塞得下?两个关键点:
第一,量化。模型用4-bit AWQ量化后,体积缩到原来的1/4左右,32B模型压到20G上下,32G显存刚好装下。
第二,张量并行。这是重点!vLLM的张量并行会把模型矩阵从中间切开,两张显卡同时处理同一个层的不同部分,1+1=2。
对比一下传统方案llama.cpp:它用的是流水线并行,模型一层层顺序跑,同一时间只有一张卡在干活,另一张在等着。所以vLLM张量并行比llama.cpp快约6倍——实测8个用户并发提问,总吞吐量超过100 tokens/s,所有窗口流畅运行不排队。
⚠️ 注意:这套方案对MoE(混合专家)模型支持有限,AWQ量化的稠密模型是它的最佳应用场景。别拿它跑DeepSeek-V3那种MoE模型,跑不动的。
二、准备工作:硬件清单(全套2500元)
先看清单,全是二手件,去哪买我都给你标好了:
| 配件 | 型号 | 二手价 | 去哪买 |
|---|---|---|---|
| 显卡×2 | AMD Radeon VII(16GB HBM2) | 800元/张 | 闲鱼 |
| CPU | Intel E5-2680v4(14核28线程) | 56元 | 闲鱼/淘宝洋垃圾店 |
| 主板 | 华南X99M Plus | 300元左右 | 淘宝 |
| 内存 | DDR4服务器内存8GB×4(共32G) | 几十元 | 闲鱼 |
| 硬盘 | 512GB NVMe SSD | 100元 | 闲鱼 |
| 电源 | 800W电源 | 155元 | 闲鱼/淘宝 |
备选显卡:如果Radeon VII涨价了,可以看AMD M50计算卡——同款GFX906核心,性能接近还更便宜,但需要自己动手改散热,动手能力强的可以上。
⚠️ 注意:两张Radeon VII满载功耗接近600W,电源必须上800W以上,别省这个钱。Radeon VII发热大,机箱通风要做好,建议开放式机架或者加装风扇。
三、组装服务器(半小时搞定)
这套X99平台组装比普通电脑还简单,都是服务器拆机件,接口标准统一:
第1步:装CPU和内存。E5-2680v4对准主板CPU插槽的三角标记放进去,压好扣具。4条内存插满四通道,注意插槽顺序,按主板说明书来。
第2步:装硬盘和电源。NVMe SSD插到主板M.2接口。电源线接好:主板24pin、CPU 8pin、显卡供电——Radeon VII是双8pin供电,两张卡要4个8pin接口,买电源时确认接口够用。
第3步:插显卡。两张Radeon VII插进主板的PCIe x16插槽。X99平台一般有多个PCIe插槽,两张卡最好分开插,中间留散热空间。
第4步:开机验证。接上显示器和键鼠,开机进BIOS,能看到CPU型号和内存容量就说明硬件没问题。
👁️ 验证:BIOS里看到”Intel Xeon E5-2680 v4″和32GB内存,硬件组装完成。
四、装Ubuntu系统
vLLM只支持Linux,装Ubuntu 22.04 LTS最省心。需要一个8GB以上的U盘做启动盘:
第1步:下载系统镜像。去 Ubuntu官网(https://ubuntu.com/download/server)下载22.04 LTS Server版ISO文件。
第2步:做启动盘。用 Rufus(https://rufus.ie)把ISO写入U盘,U盘模式选”DD镜像”写入。
第3步:安装系统。U盘插到服务器上开机,进启动菜单选U盘启动,一路按提示装系统。分区直接用默认整盘安装,用户名密码自己设一个记好。
👁️ 验证:装完重启进系统,命令行输入下面命令,能看到显卡信息就对了:
# 查看显卡是否被系统识别 lspci | grep -i amd
看到两行 “AMD … Vega 20” 开头的设备,就是两张Radeon VII都认出来了。
五、装Docker(跑vLLM的容器环境)
vLLM用Docker部署最省事,不用手动装一堆Python依赖。装Docker官方脚本一条命令:
# 官方一键安装Docker curl -fsSL https://get.docker.com | sh # 把当前用户加入docker组(省得每次sudo) sudo usermod -aG docker $USER # 重新登录终端让配置生效 exit
👁️ 验证:重新登录后输入 docker --version,能显示版本号说明装好了。
六、拉取vLLM镜像(AMD显卡专用版)
这里是最关键的一步!官方vLLM不支持AMD GFX906架构(Radeon VII的核心),必须用大神MLZY维护的vLLM修改版Docker镜像,它专门解决了这个问题。
镜像是v0.5.2.4.5的LZY3版本,作者把部署教程和命令都整理在了自己的GitHub仓库(视频简介里有链接,或者GitHub搜索 “MLZY vLLM” 就能找到)。拉取命令格式如下:
# 从Docker Hub拉取MLZY的vLLM修改版镜像(以作者GitHub教程里的完整镜像名为准) docker pull mlzy/vllm:lzy3 # 拉完确认镜像在本地 docker images
⚠️ 注意:镜像完整名称以作者GitHub仓库说明为准,如果上面这个拉取失败,去作者GitHub看README里写的最新镜像标签。
七、下载模型(320亿参数4-bit量化版)
推荐跑QwQ-32B的AWQ量化版——320亿参数推理模型,写代码、数学、逻辑推理都很强,4-bit量化后体积约20G,两张16G显存刚好放下。
模型下载地址 👉 HuggingFace: Qwen/QwQ-32B-AWQ
国内下载地址 👉 ModelScope: Qwen/QwQ-32B-AWQ(国内直连,速度快,推荐)
下载到服务器上的 /models 目录:
# 创建模型目录 mkdir -p /models # 用ModelScope下载(国内快),装一下下载工具 pip install modelscope # 下载模型到 /models(会自动建QwQ-32B-AWQ文件夹) modelscope download --model Qwen/QwQ-32B-AWQ --local_dir /models/QwQ-32B-AWQ
👁️ 验证:下载完成后检查模型文件:
# 确认模型文件都在 ls -lh /models/QwQ-32B-AWQ | head # 看到 .safetensors 权重文件,总大小20G左右就对了
⚠️ 链接失效了怎么办?别急,直接在百度搜索”QwQ-32B-AWQ 下载”,或者去HuggingFace/ModelScope官网搜模型名,都能找到最新地址。
八、启动vLLM服务(关键:开张量并行)
启动命令里最核心的参数是 --tensor-parallel-size 2,意思就是让两张显卡同时干活。这个必须写对,写1的话只有一张卡在工作,速度减半:
# 启动vLLM服务器,挂载模型目录,开启张量并行2 docker run -d --name vllm-server \ --gpus all \ -v /models:/models \ -p 8000:8000 \ mlzy/vllm:lzy3 \ vllm serve /models/QwQ-32B-AWQ \ --tensor-parallel-size 2 \ --quantization awq \ --max-model-len 8192 # 看启动日志 docker logs -f vllm-server
👁️ 验证:日志里看到 “CUDA graphs” 或者 “Starting vLLM server” 字样,说明模型加载完成、服务已启动。第一次启动要加载20G模型,等几分钟正常。
⚠️ 注意:如果日志报显存不足(OOM),把 --max-model-len 调小到4096再试。
九、测试:8人同时用都不卡
vLLM服务启动后是OpenAI兼容API,任何支持OpenAI接口的程序都能直接连。先本地测一下能不能正常对话:
# 发一个聊天请求测试
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "/models/QwQ-32B-AWQ", "messages": [{"role": "user", "content": "用Python写一个快速排序"}], "max_tokens": 100}'
👁️ 验证:返回一段JSON,里面”content”字段有模型生成的代码,就说明模型正常工作了。
然后测试并发能力——8个用户同时提问:
# 并发测试脚本(8个并发请求同时打过去)
for i in $(seq 1 8); do
curl -s http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "/models/QwQ-32B-AWQ", "messages": [{"role": "user", "content": "解释一下什么是TCP三次握手"}], "max_tokens": 200}' &
done
wait
👁️ 验证:8个请求全部在几秒内返回,总吞吐量超过100 tokens/s,每个窗口都在流畅输出——这就是vLLM张量并行+连续批处理的威力,比llama.cpp快了约6倍。
连上之后你就能用任何支持OpenAI API的客户端(比如ChatBox、NextChat、各类AI工具箱)填上 http://服务器IP:8000 这个地址,白嫖自己的私有大模型了。
十、常见问题
Q1:我的主板只有一个PCIe x16插槽,能插两张卡吗?
不行,张量并行必须两张卡都在x16(或至少x8)带宽的插槽上。选主板时确认有两个全速PCIe插槽,华南X99M Plus这类双插槽的板子才行。
Q2:显存不够报OOM怎么办?
两个办法:一是把–max-model-len从8192调小到4096,省显存;二是确认模型是AWQ 4-bit量化版,别下成8-bit的。两张卡32G显存跑32B AWQ是刚刚好的配置。
Q3:为什么我跑MoE模型很慢/跑不起来?
这套方案对MoE(混合专家)模型支持有限,量化MoE模型更是不支持。它就是给AWQ量化稠密模型准备的,别拿它硬跑MoE。
Q4:一定要用MLZY的镜像吗?官方vLLM不行?
不行。Radeon VII用的GFX906架构,官方vLLM不认这个架构,跑不起来。MLZY的修改版专门支持GFX906,必须用它。
Q5:家里电费扛得住吗?
满载功耗约600W,跑起来确实费电。但日常问答是间歇性的,不用的时候服务闲着一小时大概几十瓦。想想省下的几万块显卡钱,电费都是毛毛雨。
总结
花2000多块拼一台能跑320亿参数大模型的服务器,核心就三件事:两张二手Radeon VII捡漏 + MLZY修改版vLLM镜像 + 张量并行参数开2。这套方案比买新显卡省了十倍的钱,比llama.cpp快6倍,8人同时用都不卡,拿来本地跑模型、搭私有API、做开源项目都是神器。
给新手的一句话建议:照着清单买配件时,显卡和电源这两样别贪便宜,其它都能将就。装好系统后先跑通测试再研究进阶玩法。