用旧显卡搭本地大模型:Ollama + Open WebUI 折腾手记
抽屉里躺着一张 GTX 1660 Super、一块 RTX 2060,扔了可惜,卖又不值几个钱。与其让它吃灰,不如拿来跑本地大模型——数据不出门、断网能用、零 API 成本。这篇文章记录我用旧显卡 + Ollama + Open WebUI 从零搭建的完整过程,包括选型思路、安装步骤和踩过的坑。
一、动手前先想清楚:旧显卡还能打吗?
本地跑大模型,显存(VRAM)比算力更关键。模型参数量决定了显存下限,可以参考下面的粗略对照:
| 量化后模型大小 | 建议显存 | 典型模型 |
|---|---|---|
| 3B(约 2GB) | 4GB 起步 | Qwen2.5-3B、Phi-3 |
| 7B/8B(约 4-5GB) | 6-8GB | Qwen2.5-7B、Llama3.1-8B |
| 14B(约 9GB) | 10-12GB | Qwen2.5-14B |
| 32B 及以上 | 24GB+ | 需要两张卡或量化极致压缩 |
几点经验总结:
- NVIDIA 卡优先。Ollama 基于 llama.cpp,对 CUDA 支持最成熟;AMD 卡需要 ROCm,旧卡支持列表很挑剔。
- 显存 ≥ 6GB 是比较舒服的门槛,能流畅跑 7B 级别量化模型。
- 4GB 显存也不是没救,可以跑 3B 模型,或者让模型部分层卸载到 CPU,只是速度会明显下降。
- 纯 CPU 也能跑 Ollama,只是每秒 token 数会跌到个位数,体验较差。
我手上这块 1660S(6GB 显存)实测跑 Qwen2.5-7B Q4 量化,生成速度约 20-25 token/s,日常问答完全够用。
二、第一步:安装 Ollama
Ollama 是本地大模型的运行时底座,负责模型下载、量化推理和 API 服务。安装极其简单。
2.1 安装步骤
Linux / macOS(一行命令):
curl -fsSL https://ollama.com/install.sh | shWindows: 官网下载安装包,双击下一步即可,无需手动配 CUDA 环境。
Docker 方式(推荐服务器部署):
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama注意:Docker 方式跑 GPU,需要提前安装好 NVIDIA Container Toolkit,否则容器内看不到显卡。
2.2 验证 GPU 是否被识别
ollama ps
# 或直接看日志
journalctl -u ollama -f日志里看到 inference compute 后面跟着你的显卡名称和显存,就说明 GPU 加速已生效。
2.3 拉取并运行第一个模型
ollama run qwen2.5:7b首次运行会自动下载(约 4.7GB),下载完直接进入对话。命令行里就能聊,但体验还差口气——接下来上 WebUI。
三、第二步:选对模型,别让显存爆掉
这是整个折腾过程中最容易翻车的环节。Ollama 默认拉取的就是 Q4_K_M 量化版本,显存占用已经比较友好,但仍要注意:
- 模型显存占用 ≈ 模型文件大小 + KV Cache。上下文越长,KV Cache 吃显存越多。6GB 卡跑 7B 模型时,上下文建议控制在 4K-8K。
- 同一模型有多个量化档位。以 Qwen2.5 为例:
ollama run qwen2.5:7b-instruct-q4_K_M # 4.7GB,推荐,速度与质量平衡
ollama run qwen2.5:7b-instruct-q8_0 # 8.1GB,6GB 卡跑不动
ollama run qwen2.5:3b-instruct-q4_K_M # 1.9GB,低配救命稻草选型建议:
- 6-8GB 显存:
qwen2.5:7b或llama3.1:8b,中文场景首选 Qwen - 4-6GB 显存:
qwen2.5:3b或gemma2:2b,轻量但可用 - 12GB 显存:可以上
qwen2.5:14b,效果提升明显
四、第三步:部署 Open WebUI
Open WebUI 提供了类 ChatGPT 的界面:多轮对话、历史记录、多模型切换、文档上传问答,一应俱全。
4.1 Docker 安装(推荐)
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:main启动后浏览器访问 http://localhost:3000,注册一个本地管理员账号即可(数据只存在本地)。
4.2 Pip 安装(不想折腾 Docker)
pip install open-webui
open-webui serve默认跑在 8080 端口。前提是本机已装 Python 3.11。
关键配置:Open WebUI 会自动探测 localhost:11434 的 Ollama 服务。如果两者不在同一台机器或同一容器网络,需要在 管理面板 → 设置 → Ollama API 中手动填入地址。4.3 两个必改的默认设置
- 上下文长度:Ollama 默认上下文只有 2048,对话稍长就"失忆"。在 WebUI 的模型参数里把
num_ctx调到 4096 或 8192(量显存而行)。 - temperature 与系统提示词:针对不同用途建立不同"模型预设",比如写作场景 temperature 调高到 0.8,代码场景降到 0.2。
五、踩坑记录
折腾一晚上,这几个坑最有代表性:
- GPU 没被调用,推理全在 CPU 上。多数情况是驱动问题。Linux 下先确认
nvidia-smi正常,再重装 Ollama;Windows 下升级到较新的显卡驱动即可。 - 显存不够,Ollama 静默回退到 CPU。表现是速度骤降。用
ollama ps查看PROCESSOR列,若显示百分比分割说明部分层跑在 CPU 上。解决办法:换小一号的模型或更低量化档位。 - 多模型同时加载导致显存溢出。Ollama 默认会缓存已加载的模型,6GB 卡同时挂两个 7B 必炸。设置环境变量
OLLAMA_MAX_LOADED_MODELS=1,或调短OLLAMA_KEEP_ALIVE(如5m)让模型自动卸载。 - WebUI 里长文回答中途截断。大概率是
num_ctx还是默认的 2048,上下文被截掉了,调大即可。
六、进阶小技巧
- API 复用:Ollama 本身就是 OpenAI 兼容的 API 服务(
http://localhost:11434/v1),可以把各类第三方客户端、插件直接指向它。 - Modelfile 定制模型:写一个 Modelfile 固化系统提示词和参数,一键创建专属模型,免得每次在 WebUI 里手动调。
- 混合调度:大任务走云端 API,隐私敏感任务走本地模型。Open WebUI 支持同时挂 Ollama 和 OpenAI 端点,切换只在一个下拉框之间。
七、总结
这套方案的性价比极高:一张 6GB 显存的旧显卡 + 半小时部署时间,就能换来一个完全离线、响应 20+ token/s 的私人 AI 助手。它当然打不过 GPT-4 级别的云端模型,但在日常问答、文本润色、代码补全、本地文档整理这些场景里已经足够好用。
旧硬件的价值不在于跑出多惊艳的分数,而在于让你零成本地真正"用上"大模型。如果你的抽屉里也有这样一块卡,不妨翻出来试试——折腾的过程本身就是乐趣的一部分。