星光澄海 | BLOG

Windows 11 + RTX 3060 12G 跑 Ternary-Bonsai-27B:128K 上下文实战配置

目标环境:Windows 11 / NVIDIA RTX 3060 12G / PrismML llama.cpp /
Ternary-Bonsai-27B Q2 或 PTQ1_0 目标:在 12GB 显存下尽量开启 128K 上下文,并保证可日常使用。

目标环境:Windows 11 / NVIDIA RTX 3060 12G / PrismML llama.cpp /
Ternary-Bonsai-27B Q2 或 PTQ1_0 目标:在 12GB 显存下尽量开启 128K 上下文,并保证可日常使用。

Windows 11 + RTX 3060 12G 跑 Ternary-Bonsai-27B:128K 上下文实战配置

目标环境:Windows 11 / NVIDIA RTX 3060 12G / PrismML llama.cpp / Ternary-Bonsai-27B Q2 或 PTQ1_0
目标:在 12GB 显存下尽量开启 128K 上下文,并保证可日常使用。

先说结论

RTX 3060 12G 可以跑 Ternary-Bonsai-27B。

但要注意三件事:

  1. 不要拿普通 llama.cpp、LM Studio、Ollama 直接加载,它需要 PrismML 配套的 llama.cpp 构建。
  2. RTX 3060 是 Ampere 架构,优先选 PTQ1_0,而不是 PQ2_0。如果你手里是 Q2 / PQ2_0 文件,也能跑,但 3060 上不一定更划算。
  3. 128K 上下文可以开,但显存很紧。最稳的组合是:q8_0 KV + Flash Attention + 单并发;如果 OOM,就退到 q4_0 KV 或 96K 上下文。

一、需要准备哪些文件

1. PrismML 版 llama.cpp

去 PrismML 的 GitHub Release 页面,下载 Windows x64 CUDA 包。常见文件包括:

  • llama-prism-...-bin-win-cuda-13.3-x64.zip
  • cudart-llama-bin-win-cuda-13.3-x64.zip

如果你的 NVIDIA 驱动不支持 CUDA 13.3,就换成 CUDA 12.4 版本。RTX 3060 本身支持 CUDA,关键看驱动版本。

解压到类似目录:

D:\llama-prism

然后把 cudart 压缩包里的 DLL 复制到同一目录。

2. Bonsai 27B 模型

Hugging Face 仓库:

prism-ml/Ternary-Bonsai-27B-gguf

主要看两个量化:

文件体积适合谁
PTQ1_0约 5.54 GiBRTX 3060 / Ampere 优先选
PQ2_0约 6.70 GiBBlackwell 50 系更有优势

所以,RTX 3060 12G 部署 Bonsai 27B Q2 时,如果你追求 128K 上下文,建议优先用 PTQ1_0。
如果你一定要用 Q2 对应的 PQ2_0,也能加载,但它体积更大,留给 KV 缓存的空间更少,128K 会更吃力。


二、关键认知:模型文件不等于通用 GGUF 流程

很多人会下意识觉得:既然是 .gguf,那丢给任意 llama.cpp 就行。
Bonsai 2 这里不能这么理解。

它的权重虽然以 GGUF 形式分发,但内部的权重打包方式、算子实现、内存排布,是 PrismML 这套运行时专门配合的。普通上游 llama.cpp 没有这些配套计算路径,加载阶段就可能直接失败,而不是“慢一点”或“效果差一点”。

更直白地说:

模型文件、llama-server、CUDA runtime 要来自同一套 PrismML 构建。
你不能只换模型,不换推理程序。

LM Studio、Ollama、普通 llama.cpp 发布包,都不能直接替代。


三、Windows 11 下的目录准备

建议路径尽量短,避免中文和空格:

D:\llama-prism\llama-server.exe
D:\models\Ternary-Bonsai-2-27B-PTQ1_0.gguf

如果你用的是 PQ2_0:

D:\models\Ternary-Bonsai-2-27B-PQ2_0.gguf

确认 llama-server.exe 能正常运行:

D:\llama-prism\llama-server.exe --version

如果报缺少 DLL,多半是 cudart 没复制全,或者 CUDA 版本和驱动不匹配。


四、128K 上下文在 12GB 显存里的账

RTX 3060 12G 跑 27B 三值模型,模型本身占掉一部分,剩下给 KV 缓存和运行时。
128K 上下文能不能开,主要看 KV 缓存怎么量化。

社区实测大致如下:

配置显存占用状态
128K + q8_0 KV约 11.0 GiB能开,但很紧
128K + q4_0 KV约 9.9 GiB更稳
96K + q8_0 KV约 10.8 GiB推荐的质量默认值
64K + q8_0 KV约 7.3 GiB很宽裕

所以策略是:

  • 先试 128K + q8_0 KV + Flash Attention + 单并发;
  • 如果 OOM,换 q4_0 KV;
  • 还不行,降到 96K;
  • 不要开多并发槽位,-np 1 对 12G 卡非常重要。

五、启动脚本:128K 上下文版

新建 start-bonsai-3060-128k.bat:

@echo off
title Bonsai 27B - RTX 3060 12G - 128K Context

set MODEL=D:\models\Ternary-Bonsai-2-27B-PTQ1_0.gguf
set SERVER=D:\llama-prism\llama-server.exe

set HOST=127.0.0.1
set PORT=8081

:: 全部层放 GPU
set GPU_LAYERS=99

:: 128K = 131072
set CONTEXT=131072

:: KV 缓存:先 q8_0,OOM 改 q4_0
set KV_K=q8_0
set KV_V=q8_0

:: 单并发,省显存
set PARALLEL=1

:: Flash Attention 必须开
set FLASH=on

set BATCH=1024
set THREADS=5

set TEMP=0.7
set TOP_P=0.95
set TOP_K=20

taskkill /f /im llama-server.exe >nul 2>&1
timeout /t 2 /nobreak >nul

echo Starting Bonsai 27B...
echo Web UI: http://%HOST%:%PORT%

"%SERVER%" ^
  -m "%MODEL%" ^
  --host %HOST% --port %PORT% ^
  -ngl %GPU_LAYERS% ^
  -c %CONTEXT% ^
  -ctk %KV_K% -ctv %KV_V% ^
  -np %PARALLEL% ^
  -fa %FLASH% ^
  --batch-size %BATCH% ^
  --threads %THREADS% ^
  --temp %TEMP% ^
  --top-p %TOP_P% ^
  --top-k %TOP_K%

启动后浏览器打开:

http://127.0.0.1:8081

在 Web UI 里确认上下文设置为 131072。


六、为什么这些参数对 3060 特别重要

1. -fa on

Flash Attention 对长上下文影响很大。RTX 30 系支持,开了以后显存和延迟都会好一些。128K 场景下不建议关。

2. -ctk q8_0 -ctv q8_0

q8_0 KV 的质量比 q4_0 好很多,但显存也更紧张。
在 3060 12G 上,128K + q8_0 是“能跑但贴边”;如果你同时开浏览器、IDE、游戏,很容易 OOM。

3. -np 1

默认多槽位会额外吃显存。
12G 卡跑 128K,单并发是最现实的配置。

4. -ngl 99

把能卸载的层都放 GPU。
Bonsai 27B 三值模型本身不大,瓶颈主要在 KV 缓存。


七、性能预期

RTX 3060 12G 上,参考速度大致是:

场景解码速度
新上下文约 26–40 tok/s
64K 上下文约 14–18 tok/s
128K 上下文约 10–11 tok/s

128K 下大约 10 tok/s 左右,写代码、总结长文、对话都能用,但不要期待 50 系那种 prefill 速度。


八、常见问题排查

1. 启动就 OOM

按顺序处理:

  1. KV_K 和 KV_V 改成 q4_0;
  2. CONTEXT 从 131072 降到 98304;
  3. 确认 PARALLEL=1;
  4. 关掉浏览器、游戏、录屏、其他 AI 程序;
  5. 如果还不行,降到 65536。

2. 加载模型失败

检查:

  • 是否用的 PrismML 版 llama-server.exe;
  • cudart DLL 是否复制完整;
  • 模型是否下载完整;
  • CUDA 版本是否和驱动匹配,必要时换 CUDA 12.4 包。

3. PTQ1_0 和 PQ2_0 怎么选?

RTX 3060 选 PTQ1_0。
PQ2_0 在 Blackwell 架构上 prefill 更有优势,在 Ampere 上不是首选。

4. 能不能用 LM Studio 或 Ollama?

不能直接替代。
它们的运行时没有 PrismML 这套配套计算路径。


九、资料入口

重点看这几个地方:

  1. Hugging Face:prism-ml/Ternary-Bonsai-27B-gguf
  2. PrismML GitHub Release:找 Windows CUDA 版 llama.cpp
  3. 社区讨论:搜“RTX 3060 12G Ternary-Bonsai-27B 128K KV cache”
  4. 参数说明:以你下载的 PrismML Release 内附帮助为准,不同构建版本参数名可能略有差异

十、一句话总结

RTX 3060 12G 可以用 PTQ1_0 跑 Bonsai 27B;
128K 上下文建议 q8_0 KV + Flash Attention + 单并发,OOM 就退 q4_0 或 96K。th.webp

发表第一条评论吧

支持 Markdown