
为什么要在本地跑大模型?
最近在研究本地部署LLM,原因很简单:公司的敏感数据不想往云端传,而且API调用费用越来越高。正好GitHub上Talos项目最近很火,专门做GPU推理节点的分布式调度,让我想到了一个方案——用Proxmox直通GPU,在虚拟化环境里跑本地大模型。
硬件选择
我手头有一台N100小主机,没独显,推理速度感人。后来加了一块二手RTX 3060 12G,总共花了不到2000块。12G显存跑7B-13B的模型绰绰有余,70B的量化版也能勉强塞进去。
选3060的原因很实际:功耗才170W,不需要额外供电线,二手价格跌到了800左右。性价比这块拿捏了。
Proxmox GPU直通配置
- 开启IOMMU:编辑 /etc/default/grub,加上 intel_iommu=on iommu=pt,然后 update-grub 重启。
- 绑定vfio-pci:把GPU的PCI ID写进 /etc/modules,重启后用 lspci -nn 确认GPU已经绑定到vfio驱动。
- 虚机配置:创建Ubuntu虚机,硬件里添加PCI设备,选中GPU。记得勾选"ROM Bar"和"Primary GPU"。
- 安装驱动:虚机里装NVIDIA驱动,nvidia-smi能识别到GPU就算成功。
部署Ollama + Open WebUI
Ollama部署最简单,一行命令就搞定:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5:14b
然后用Docker跑个Open WebUI,界面跟ChatGPT差不多,支持多模型切换。实测Qwen2.5 14B在3060上推理速度大概15 tokens/s,日常使用完全够了。
性能实测
改造前后对比:
- CPU推理(N100):3 tokens/s,生成一段500字的回复要等将近3分钟
- GPU推理(3060):15 tokens/s,同样的内容不到30秒
- 功耗:CPU推理时整机8W,加了GPU后待机35W,满载180W
速度提升5倍,功耗代价可以接受。而且GPU推理时CPU基本空闲,虚机里的其他服务不受影响。
踩坑记录
- IOMMU分组问题:N100的主板把USB控制器和GPU分到同一组了,我不得不手动做ACS override patch才解决。
- 显存不够:一开始想跑Qwen2.5 72B,12G显存根本装不下。后来改用Q4_K_M量化的14B版本,质量够用。
- 驱动版本:Ubuntu 24.04自带的NVIDIA驱动是535,跟Ollama有兼容问题,手动装了550就好了。
总结
2000块的投入,换来一个私有的AI推理平台,数据完全在本地,不依赖任何云服务。如果你也有闲置的小主机,加张亮机卡就能玩起来。
文章评论