手里攥着两张 3080 20G 的显卡,想在本地跑个像样的 70B 级别大模型,这种想法在现在的圈子里太常见了。毕竟,谁不想拥有一个完全私有、低延迟且免费的 AI 助手呢?最近看到不少朋友在折腾用 Docker 部署 Qwen 的 AWQ 量化模型(27B 或 35B),结果却遇到了各种各样的坑。今天咱们就抛开枯燥的理论,结合实际的“踩坑”经验,来聊聊在双卡 3080 环境下,到底该怎么选部署框架才能不翻车。

场景复现:理想很丰满,现实很骨感

硬件基础是双卡 3080 20G,这个配置在消费级领域算是相当能打了,显存加起来正好 40G。理论上,跑个 AWQ 4-bit 量化的 Qwen-72B 甚至都有点悬,但跑 Qwen-27B 或 35B 应该是绰绰有余的。目标很明确:使用 Docker 容器化部署,配合 Open WebUI(原文提及 openclaw,推测为类似前端交互界面)进行多轮对话。然而,实际测试中,几个主流框架的表现却大相径庭。

NVIDIA RTX 3080 显卡性能示意图

RTX 3080 显卡,本地部署大模型的硬件基础

框架大乱斗:谁是你的真命天子?

1. vLLM:首发即巅峰,后续拉胯?

很多人首选 vLLM,因为它主打高性能推理服务,特别是针对 PagedAttention 的优化,听起来就很诱人。在测试 Qwen-27B 或 35B 时,初期的生成速度确实惊艳,首回复往往能冲到 100 tokens/s 甚至 50 tokens/s。

但问题出现了: 只要对话轮次一多,速度呈现断崖式下跌。从高速瞬间掉到 2-3 tokens/s,这种体验就像是在开法拉利堵在了早高峰的高架上。这通常是因为 KV Cache 在多轮对话中不断累积,显存管理碎片化,或者在双卡通信时出现了瓶颈。如果 vLLM 没有针对双卡 P2P 传输做很好的调优,很容易在这种长上下文场景下掉链子。

2. SGLang:起了个大早,赶了个晚集

SGLang 最近热度很高,主打结构化语言生和高效推理。但是,在实际双卡 3080 环境下,尝试加载 AWQ 模型时却频频报错,甚至根本拉不起来。这可能与当前 SGLang 对特定显卡架构(Ampere)或 CUDA 版本的兼容性有关,也可能是在处理双卡张量并行时的初始化逻辑有 BUG。对于追求稳定的个人玩家来说,现阶段可能稍显激进。

3. llama.cpp:看似平平无奇,实则稳如老狗

最后把希望寄托在 llama.cpp 上。虽然它不像 vLLM 那样起步瞬间爆发,但在多轮对话的稳定性测试中,它交出了一份不错的答卷:速度能稳定在 10-20 tokens/s。虽然没有 vLLM 峰值那么高,但胜在不会忽快忽慢,用户体验反而更好。

Docker 容器化部署架构图

使用 Docker 部署模型的环境示意

唯一的顾虑: llama.cpp 原生是 CPU/GPU 混合推理,虽然现在的 GGUF 版本对 CUDA 支持已经很好,但在处理高并发请求时的调度能力相比服务级的 vLLM 还是弱一些。如果你只是单机自己玩玩,这根本不是问题;但如果你想作为服务端给多个人用,可能就得权衡一下了。

解决方案与实操建议

既然折腾了好几天,总得有个解决办法。针对双卡 3080 的特性,这里有几条具体的路子可以试试:

  • 优化 vLLM 的显存占用: 如果坚持用 vLLM,尝试在启动参数中限制 KV Cache 的大小,或者启用 GPU 内存利用率限制(gpu_memory_utilization),防止显存溢出导致的频繁换页,这往往是掉速的元凶。确保双卡之间的通信通道(PCIe 通道数)是通畅的,如果你用的是主板上的 x4/x4 插槽而非 x16/x16,多卡通信带宽会严重拖累推理速度。

  • 回归 Ollama 的怀抱: 评论区有朋友提到用 3090 24G 跑 Qwen-27B 效果不错,没统计具体速度但体感流畅。Ollama 底层其实就是 llama.cpp 的封装,它最大的优势就是管理方便,一条命令就能跑,而且对多显卡支持的自动化做得很好。对于不想写复杂 Docker Compose 文件的同学,Ollama 绝对是“懒人福音”。在双卡模式下,Ollama 会自动尝试切分模型,你可以通过 OLLAMA_NUM_GPU 指定使用的 GPU 数量,省去不少配置烦恼。

  • 关于 AWQ vs GPTQ vs GGUF: 你的需求是 AWQ,但在双卡 3080 上,GGUF(llama.cpp/Ollama)的兼容性往往优于 AWQ。如果发现 AWQ 在 vLLM 上掉速严重,不妨试试转换成 GPTQ 或者 GGUF 格式,有时候换一种量化格式,显存利用率和计算效率会有意想不到的提升。

总结

折腾本地大模型本质上是在显存、速度和兼容性之间找平衡。双卡 3080 是一张好牌,但怎么打还得看需求。如果你追求极致的并发吞吐且能忍受偶尔的调参之苦,继续深挖 vLLM 的参数配置;如果你追求开箱即用和多轮对话的稳当,Ollama(llama.cpp)绝对是更省心的选择。 至于 SGLang,不妨等它再成熟一点,或者换成 4090/H100 这种“计算怪兽”再去挑战。

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭