适用硬件:NVIDIA GeForce RTX 5060 (8GB VRAM) + i5-10400F / 32GB RAM
技术栈:Ollama GGUF 模型、Hermes Agent v0.19.0
一、核心目标
在 8GB 显存(RTX 5060) 的硬件条件下,为 Hermes 智能体框架 找到一套兼顾 长上下文(≥64K) 与 高推理速度 的本地模型方案,并完成模型的下载、导入、调优和定稿。
二、最终定稿模型清单
| 模型名 | 源文件 | 上下文 | 速度(实测) | 层分布 | 定位 |
|---|---|---|---|---|---|
qwen35:90k |
Qwen3.5-4B-Q4_K_M.gguf |
90K | ~88 tok/s | 全GPU | Hermes 智能体 / 日常对话主力 |
qwen35-coder:100k |
qwen3.5-4B-super-coder.Q4_0.gguf |
100K | ~95 tok/s | 全GPU | 编程 / 代码生成主力 |
bge-m3:q8 |
bge-m3-Q8_0.gguf |
8K | — | — | 知识库向量化 / 检索 |
qwen3-8b:q4(备选) |
Qwen3-8B-Q4_K_M.gguf |
40K | ~8 tok/s | 部分CPU | 8B 通用能力备选 |
deepseek-r1-8b:q4(备选) |
DeepSeek-R1-0528-Qwen3-8B-Q4_K_M.gguf |
40K | ~8 tok/s | 部分CPU | 8B 推理增强备选 |
qwen3-emb-8b:q4(备选) |
Qwen3-Embedding-8B-Q4_K_M.gguf |
— | — | — | 高精度检索备选 |
三、核心命令速查
以下所有命令都在模型文件所在目录(如 D:\Tools\models\)下执行。
1. 导入模型(从 .gguf 文件创建 Ollama 模型)
# 格式:echo FROM ./文件名.gguf > Modelfile.txt && echo PARAMETER num_ctx 上下文值 >> Modelfile.txt && ollama create 模型名:标签 -f Modelfile.txt
# 示例1:创建 qwen35:90k(通用版,90K上下文)
echo FROM ./Qwen3.5-4B-Q4_K_M.gguf > Modelfile.txt && echo PARAMETER num_ctx 92160 >> Modelfile.txt && ollama create qwen35:90k -f Modelfile.txt
# 示例2:创建 qwen35-coder:100k(编程版,100K上下文)
echo FROM ./qwen3.5-4B-super-coder.Q4_0.gguf > Modelfile.txt && echo PARAMETER num_ctx 102400 >> Modelfile.txt && ollama create qwen35-coder:100k -f Modelfile.txt
# 示例3:创建 bge-m3:q8(嵌入模型,无需额外参数)
echo FROM ./bge-m3-Q8_0.gguf > Modelfile.txt && ollama create bge-m3:q8 -f Modelfile.txt
2. 查看已导入的模型列表
ollama list
3. 运行模型(测试)
ollama run 模型名:标签
# 例如:ollama run qwen35:90k
4. 删除模型
ollama rm 模型名:标签
# 例如:ollama rm qwen3-8b:q4
5. 查看模型详细信息(确认参数)
ollama show 模型名:标签 --modelfile
# 例如:ollama show qwen35:90k --modelfile
7. 查看 Ollama 服务日志(排查 GPU 调用问题)
ollama serve # 前台运行,Ctrl+C 停止
8. 查看 GPU状态(NVIDIA)
nvidia-smi
四、关键结论记录
| 问题 | 结论 |
|---|---|
| Hermes 需要多大上下文? | ≥64K,推荐 90K~100K |
| 8GB 显卡能跑多大模型? | 4B 参数 + 90K/100K 上下文 = 全GPU,~88~95 tok/s(最优) |
| 8B 模型为什么不用? | 40K 上下文不够 Hermes,强行拉到 64K 会爆显存或降速至 ~7 tok/s |
| Q4_K_M vs Q4_0 选哪个? | Q4_K_M 质量稍高(通用版),Q4_0 体积略小(Coder 版) |
| 为什么 100K 通用版比 90K 慢很多? | 100K 触发 KV Cache 超出安全线,导致 2 层被卸载到 CPU;90K 刚好全在 GPU |
实测速度对比
| 模型 | 上下文 | 速度 | 层分布 |
|---|---|---|---|
qwen35:90k |
90K | ~88 tok/s | 33/33 全GPU |
qwen35:100k |
100K | ~46 tok/s | 31/33 GPU |
qwen35-coder:100k |
100K | ~95 tok/s | 34/34 全GPU |
qwen35:128k |
128K | ~19 tok/s | 25/33 GPU |
qwen3-8b:q4 |
40K | ~7 tok/s | 部分CPU |
五、未来扩展测试流程
如果需要测试新模型或调整上下文参数,按以下步骤操作:
# 1. 将新的 .gguf 文件放入 D:\Tools\models\
# 2. 创建测试模型(以 80K 上下文为例)
echo FROM ./新模型.gguf > Modelfile.txt && echo PARAMETER num_ctx 81920 >> Modelfile.txt && ollama create test-model -f Modelfile.txt
# 3. 运行并观察显存占用(打开任务管理器查看"专用 GPU 内存")
ollama run test-model
# 4. 如果满意,重命名保留;如果不满意,删除
ollama rm test-model
测试判断标准
| 显存占用 | 状态 | 结论 |
|---|---|---|
| ≤ 6.5 GB | 全GPU | ✅ 速度理想,推荐 |
| 6.5 ~ 7.0 GB | 少量CPU卸载 | ⚠️ 速度可接受 |
| ≥ 7.0 GB | 大量CPU卸载 | ❌ 速度显著下降,不推荐 |
六、常用上下文换算表
| 中文描述 | Token 数值 | 计算方式 |
|---|---|---|
| 64K | 65536 | 64 × 1024 |
| 80K | 81920 | 80 × 1024 |
| 90K | 92160 | 90 × 1024 |
| 100K | 102400 | 100 × 1024 |
| 128K | 131072 | 128 × 1024 |
| 256K | 262144 | 256 × 1024 |
七、一句话总结
qwen35:90k(通用) + qwen35-coder:100k(编程) + bge-m3:q8(检索) = 8GB 显卡上 Hermes 智能体的最优解。