Windows 本地部署 PrismML Ternary-Bonsai-2-27B:RTX 5070 + CUDA 13.3 + llama.cpp Web UI 完整教程

一、前言

最近尝试在 Windows 本地部署 PrismML 发布的 Ternary-Bonsai-2-27B 大语言模型。

这个模型比较特殊,它并不是普通的 GGUF 模型。PrismML 针对三值权重(Ternary)和 Hybrid Attention 做了专门的 llama.cpp 内核优化,因此不能简单地使用普通版本的 llama.cpp 或 LM Studio 加载。

官方模型页面明确说明,Bonsai 2 27B 提供 PTQ1_0PQ2_0 两种 GGUF 打包格式,并且这些模型需要使用 PrismML 自己的 llama.cpp fork。

本文以 Windows + NVIDIA RTX 5070 + CUDA 13.3 为例,使用 PrismML 官方预编译版本部署 Web UI。


二、硬件环境

本文实际测试环境如下:

项目 配置
操作系统 Windows 11
CPU Intel Core i7-14700K
内存 48GB DDR5 6000
GPU NVIDIA GeForce RTX 5070
GPU 显存 12GB
CUDA 13.3
模型 Ternary-Bonsai-2-27B-PQ2_0
推理框架 PrismML llama.cpp
Web UI llama-server

RTX 5070 可以通过 PrismML 的 CUDA 13.3 Windows x64 版本正常识别。


三、为什么不能直接使用普通 llama.cpp

如果直接使用普通版本的 llama.cpp 或 LM Studio 加载:

Ternary-Bonsai-2-27B-PQ2_0.gguf

可能会出现类似:

llama_model_loader: failed to load model

这是因为 Bonsai 2 的 GGUF 使用了 PrismML 自己的 ternary 权重格式和对应的专用计算内核。

官方模型说明中也明确指出:

These files need our llama.cpp build.

也就是说,需要使用 PrismML 官方提供的 llama.cpp fork。


四、下载 PrismML llama.cpp

PrismML 官方提供了预编译版本,可以直接下载,不需要自己编译源码。

官方 GitHub Release:

PrismML llama.cpp — prism-b10709-9a9394a

这个 Release 提供了多个平台版本,包括:

  • Windows x64 CPU
  • Windows x64 CUDA 12.4
  • Windows x64 CUDA 13.3
  • Windows ARM64 CUDA 13.4
  • Linux CUDA
  • macOS
  • Vulkan
  • ROCm 等

官方 Release 页面可以看到 Windows CUDA 13.3 x64 版本以及对应的 CUDA Runtime DLL 压缩包。


五、Windows 应该下载哪个版本

如果电脑使用 NVIDIA 显卡,并且是普通 Intel/AMD 64 位 Windows:

选择:

Windows x64 (CUDA 13.3)

同时还需要下载:

CUDA runtime DLLs

也就是两个压缩包:

llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64.zip

以及:

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

官方 Release 中明确提供了这两个 Windows CUDA 13.3 x64 下载项。


六、解压 PrismML llama.cpp

例如将第一个压缩包解压到:

D:\Program Files\llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64

解压后应该能够看到:

D:\Program Files\
└── llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64\
    ├── llama-cli.exe
    ├── llama-server.exe
    ├── ...

其中:

llama-server.exe

就是我们后面启动 Web UI 的核心程序。


七、安装 CUDA Runtime DLL

第一次运行:

llama-server.exe --list-devices

如果出现类似:

error while loading shared libraries:
cublas64_13.dll

说明 CUDA Runtime DLL 没有放到程序目录。

此时将:

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

解压到:

D:\Program Files\llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64

最终目录大致类似:

D:\Program Files\
└── llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64\
    ├── llama-server.exe
    ├── llama-cli.exe
    ├── cublas64_13.dll
    ├── cudart64_13.dll
    ├── ...

注意:

Runtime DLL 和 llama-server.exe 放在同一个目录即可。


八、检查 NVIDIA GPU 是否正常识别

进入 PrismML llama.cpp 目录:

cd /d "D:\Program Files\llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64"

执行:

llama-server.exe --list-devices

如果看到:

Available devices:
  CUDA0: NVIDIA GeForce RTX 5070 (12199 MiB, 11036 MiB free)

说明 CUDA 环境已经正常。

【截图:执行 llama-server.exe --list-devices 后显示 RTX 5070】

这一步非常重要。

如果这里无法识别 GPU,就不要继续启动模型,需要先解决 CUDA Runtime 或驱动问题。


九、下载 Ternary-Bonsai-2-27B 模型

模型官方下载地址:

Ternary-Bonsai-2-27B-GGUF — Hugging Face

模型提供:

PTQ1_0
PQ2_0

两种 GGUF 打包方式。

其中:

PTQ1_0 ≈ 5.95 GB
PQ2_0 ≈ 7.21 GB

官方说明 PQ2_0 使用 2-bit slot 存储三值权重,虽然文件更大,但具有更便宜的 unpacking 成本。

本文使用:

Ternary-Bonsai-2-27B-PQ2_0.gguf

十、模型放在哪里

模型实际上可以放在任意目录。

为了方便管理,我使用:

D:\Program Files\models\Publisher\Repository\

最终:

D:\Program Files\models\Publisher\Repository\
└── Ternary-Bonsai-2-27B-PQ2_0.gguf

也可以使用更加简单的目录,例如:

D:\AI\Models\
└── Ternary-Bonsai-2-27B-PQ2_0.gguf

模型目录和 llama.cpp 程序目录不要求相同。


十一、启动 Web UI

进入 llama.cpp 目录:

cd /d "D:\Program Files\llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64"

执行:

llama-server.exe ^
  -m "D:\Program Files\models\Publisher\Repository\Ternary-Bonsai-2-27B-PQ2_0.gguf" ^
  -ngl 99 ^
  -fa on ^
  -c 32768 ^
  --temp 1.0 ^
  --top-p 0.95 ^
  --top-k 20

参数说明:

参数 含义
-m 指定 GGUF 模型
-ngl 99 尽可能将模型层放入 GPU
-fa on 开启 Flash Attention
-c 32768 上下文窗口 32K
--temp 1.0 温度
--top-p 0.95 Top-P
--top-k 20 Top-K

其中 temperature=1.0top_p=0.95top_k=20 是 PrismML 针对 Thinking Mode 推荐的生成参数。


十二、打开 Web UI

启动成功后,终端会显示服务器监听地址。

通常可以通过:

http://127.0.0.1:8080

访问。

进入之后就可以直接和 Ternary-Bonsai-2-27B 对话。

同时 llama-server 还提供 OpenAI-compatible API,因此也可以被其他支持 OpenAI API 的客户端调用。官方模型页面也给出了 llama.cpp server 的本地 API 使用方式。


十三、上下文长度怎么设置

上下文长度由:

-c

控制。

例如:

-c 32768

表示:

32K Context

64K:

-c 65536

128K:

-c 131072

192K:

-c 196608

模型本身支持最高约 262K tokens 的上下文。

但是:

模型支持 262K ≠ 你的显卡可以高速运行 262K。

上下文越长,KV Cache 等内存开销越大,因此实际速度会明显下降。


十四、我的 RTX 5070 实测

我的测试机器:

RTX 5070 12GB
i7-14700K
48GB DDR5 6000

实际测试结果:

Context Decode速度
16K ≈ 61.56 t/s
32K ≈ 62.00 t/s
128K ≈ 7.90 t/s
192K ≈ 7.27 t/s

可以明显看到:

16K ─────── 61.56 t/s
32K ─────── 62.00 t/s
128K ────── 7.90 t/s
192K ────── 7.27 t/s

因此,如果主要追求日常聊天和代码开发体验,32K 是目前这台机器实测比较合适的配置。

如果确实需要处理超长文档,可以提高到 128K 或 192K,但需要接受明显的速度下降。


十五、创建 启动 BAT

为了避免每次手动输入命令,可以创建:

start-bonsai-32k.bat

内容:

@echo off
chcp 65001 >nul
title PrismML Ternary-Bonsai-2-27B - 32K

cd /d "D:\Program Files\llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64"

echo.
echo ==========================================
echo   PrismML Ternary-Bonsai-2-27B
echo   Context: 32K
echo   GPU: RTX 5070
echo ==========================================
echo.

llama-server.exe ^
  -m "D:\Program Files\models\Publisher\Repository\Ternary-Bonsai-2-27B-PQ2_0.gguf" ^
  -ngl 99 ^
  -fa on ^
  -c 32768 ^
  --temp 1.0 ^
  --top-p 0.95 ^
  --top-k 20

pause
start-bonsai-64k.bat

内容:

@echo off
chcp 65001 >nul
title PrismML Ternary-Bonsai-2-27B - 64K

cd /d "D:\Program Files\llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64"

echo.
echo ==========================================
echo   PrismML Ternary-Bonsai-2-27B
echo   Context: 64K
echo   GPU: RTX 5070
echo ==========================================
echo.

llama-server.exe ^
  -m "D:\Program Files\models\Publisher\Repository\Ternary-Bonsai-2-27B-PQ2_0.gguf" ^
  -ngl 99 ^
  -fa on ^
  -c 65536 ^
  --temp 1.0 ^
  --top-p 0.95 ^
  --top-k 20

pause
start-bonsai-192k.bat

内容:

@echo off
chcp 65001 >nul
title PrismML Ternary-Bonsai-2-27B - 192K

cd /d "D:\Program Files\llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64"

echo.
echo ==========================================
echo   PrismML Ternary-Bonsai-2-27B
echo   Context: 192K
echo   GPU: RTX 5070
echo ==========================================
echo.

llama-server.exe ^
  -m "D:\Program Files\models\Publisher\Repository\Ternary-Bonsai-2-27B-PQ2_0.gguf" ^
  -ngl 99 ^
  -fa on ^
  -c 196608 ^
  --temp 1.0 ^
  --top-p 0.95 ^
  --top-k 20

pause

十六、 BAT 建议放在哪里

可以直接放在:

D:\Program Files\

例如:

D:\Program Files\
├── start-bonsai-32k.bat
├── start-bonsai-64k.bat
├── start-bonsai-192k.bat
├── llama-prism-b10709-9a9394a-bin-win-cuda-13.3-x64\
│   ├── llama-server.exe
│   ├── llama-cli.exe
│   ├── cublas64_13.dll
│   └── ...
└── models\
    └── Publisher\
        └── Repository\
            └── Ternary-Bonsai-2-27B-PQ2_0.gguf

这样以后升级 PrismML llama.cpp 或模型时,只需要修改 BAT 中对应的路径即可。


当然可以。下面这一段可以直接作为你博客里的 “API 接入”章节。你的 llama-server 本身就是 OpenAI-compatible API,所以接入其他 Agent 时,通常只需要把 Base URL、API Key、Model 配好即可。官方 llama.cpp 文档也提供了 /v1/chat/completions 接口;Bonsai 官方示例同样使用 http://127.0.0.1:8080/v1 作为 Base URL。([GitHub][1])

十七、通过 API 接入其他 Agent

除了直接通过浏览器使用 llama-server Web UI 之外,llama-server 还提供了 OpenAI-compatible API

这意味着只要其他 Agent 工具支持 OpenAI API,就可以直接接入本地运行的 Ternary-Bonsai-2-27B,不需要额外部署 API 服务。


1.API 地址

默认情况下服务监听:

http://127.0.0.1:8080

OpenAI API 的 Base URL 为:

http://127.0.0.1:8080/v1

Chat Completions 接口:

http://127.0.0.1:8080/v1/chat/completions

如果 Agent 工具要求填写:

Base URL

填写:

http://127.0.0.1:8080/v1

即可。


2.获取模型名称

启动 llama-server 后,可以访问:

http://127.0.0.1:8080/v1/models

或者直接使用:

curl http://127.0.0.1:8080/v1/models

服务器会返回当前加载的模型信息。

例如:

{
  "object": "list",
  "data": [
    {
      "id": "Ternary-Bonsai-2-27B-PQ2_0.gguf",
      "object": "model"
    }
  ]
}

不同版本的 llama.cpp 返回的模型 ID 可能略有不同。

建议实际调用 /v1/models 获取当前服务器返回的 id,然后将这个值填写到 Agent 的 Model 配置中。


3.接入其他 Agent 工具

如果 Agent 工具支持自定义 OpenAI Compatible Provider,一般只需要配置三个参数:

Provider:OpenAI Compatible

Base URL:
http://127.0.0.1:8080/v1

API Key:
none

Model:
Ternary-Bonsai-2-27B-PQ2_0.gguf

有些工具可能要求填写:

API Endpoint

则填写:

http://127.0.0.1:8080/v1/chat/completions

需要注意:

如果工具要求的是 Base URL,不要把 /chat/completions 加进去。

即:

正确:
http://127.0.0.1:8080/v1

而不是:

错误:
http://127.0.0.1:8080/v1/chat/completions

十八、总结

整个部署流程实际上非常简单:

GitHub
  ↓
下载 PrismML llama.cpp
  ↓
Windows x64 CUDA 13.3
  ↓
下载 CUDA Runtime DLL
  ↓
解压到同一个目录
  ↓
下载 Ternary-Bonsai-2-27B-PQ2_0.gguf
  ↓
放入模型目录
  ↓
llama-server.exe --list-devices
  ↓
确认 RTX 5070
  ↓
启动 llama-server
  ↓
浏览器访问 127.0.0.1:8080
  ↓
开始使用 Bonsai 2 27B

对于 RTX 5070 12GB 这类显卡,建议准备多个启动脚本,根据实际需求切换上下文:

start-bonsai-32k.bat    日常使用
start-bonsai-64k.bat    长上下文
start-bonsai-192k.bat   超长上下文

这样不需要修改模型,也不需要重新下载模型,只需要选择不同的 BAT 即可。

posted @ 2026-09-21 22:52  DaenMax  阅读(6)  评论(0)    收藏  举报