云计算百科
云计算领域专业知识百科平台

8G显存也想本地跑27B?我把Bonsai2-27B从CUDA装到WebUI跑通了

8G显存也想本地跑27B?我把Bonsai2-27B从CUDA装到WebUI跑通了

开头

我第一次看到“8G 显存跑 27B”这个说法时,第一反应不是兴奋,而是怀疑:模型参数摆在那儿,普通消费级显卡真能塞得进去?更现实的问题是,就算别人视频里已经跑起来了,自己照着装时也未必顺利。

Git、CUDA、nvcc、PowerShell 脚本权限、HuggingFace Token、模型下载,任何一环没接好,最后看到的都不是聊天窗口,而是一串报错。所以这次我更想把过程完整走一遍,不跳步骤,也不把“下载成功”当成“模型已经能用”。

这篇就从 Windows 环境准备开始,先把 Git 和 CUDA Toolkit 配好,再拉取 Bonsai2-27B 项目、设置 HuggingFace 令牌、执行安装脚本并启动本地 WebUI。等本机 8080 页面真正能打开、模型可以对话后,再继续用 cpolar 给它增加远程入口。

对小白来说,真正有价值的不是一句“8G 也能跑”,而是知道每一步应该看到什么、卡住时先查哪里。只要把这条链路拆开看,本地大模型部署就没有想象中那么玄学。

我也会把几个最容易混在一起的地方单独拆开:nvidia-smi 正常不代表 nvcc 已经配置好,模型文件下载完也不代表服务已经启动。把这些节点分清楚,后面看到报错时才不会一股脑地怀疑显卡、CUDA 或模型本身。

1. 先别急着下载模型,先看机器够不够

这类教程最容易让人冲动的地方,就是先看到“8G 显存也能跑 27B”,然后直接开始下载。我的习惯是先把硬件和系统条件看清楚,不然模型下到一半才发现环境不合适,最浪费时间。

1.1 硬件前提

原来的环境要求是:

  • NVIDIA 独立显卡,显存 ≥ 8GB
  • 磁盘至少预留 15GB 空间
  • 能访问 HuggingFace,用于下载模型和项目文件

这里还有一个很实际的提醒:Windows 本身会占用部分显存,所以“显卡标称 8G”不代表运行时一定有完整 8G 可用。教程里的建议是,优先保证可用显存在 8.5G 左右;如果显存吃紧,可以调低上下文长度。

1.2 Windows 需要准备的软件

整个 Windows 流程里,前面先准备三样东西:

  • Git:用于拉取项目仓库;
  • PowerShell:Windows 自带,用来执行命令和脚本;
  • NVIDIA CUDA Toolkit:提供 CUDA 开发环境和 nvcc。
  • image-20260921164239641

    2. 安装 Git:先把最基础的一步确认好

    Git 这一段很简单,但我还是建议安装完马上验证,不要等到后面 git clone 报错时才回来找原因。

    安装地址和原操作保持不变:

  • 打开 https://git-scm.com/download/win
  • 下载 64 位安装包
  • 默认选项一路安装
  • 打开 PowerShell 验证:
  • git –version

    看到版本号,就说明 Git 已经能正常调用。

    image-20260921110859316

    3. Windows 安装 CUDA Toolkit 12.1

    3.1 先分清显卡驱动和 CUDA Toolkit

    这一步是我觉得小白最容易混淆的地方。

    显卡驱动能让 NVIDIA 显卡正常工作,但 CUDA Toolkit 是另一套开发工具包,里面包含 nvcc 等工具。也就是说,nvidia-smi 能正常输出,不代表 nvcc 一定已经可用。

    先执行:

    nvidia-smi

    image-20260921111126361

    如果能看到显卡信息和对应表格,说明驱动这一步正常。

    原教程还特别提醒:nvidia-smi 里显示的 CUDA Version,指的是当前驱动支持的最高 CUDA 版本,不等于本机已经安装的 CUDA Toolkit 版本。

    3.2 下载 CUDA Toolkit 12.1

    进入 CUDA Toolkit 归档页面:

    https://developer.nvidia.com/cuda-toolkit-archive

    找到 CUDA Toolkit 12.1.0:

    image-20260921111257784

    操作系统选择:

    Windows

    image-20260921111333703

    架构选择:

    x86_64

    image-20260921111404956

    系统版本根据自己的 Windows 版本选择:

    • Windows 10 → 选择 10
    • Windows 11 → 选择 11

    image-20260921111611990

    安装类型选择 Local Installer。对于第一次装的人,我也更倾向于离线大包,至少不会因为安装过程中网络波动再多一层变量。

    image-20260921111659258

    下载后得到:

    cuda_12.1.0_531.14_windows.exe

    image-20260921111732445

    3.3 安装 CUDA

    双击安装包以后,按原步骤操作:

  • 等待临时文件解压完成;
  • 同意协议;
  • 选择 Custom(自定义安装);
  • 组件全部勾选;
  • 安装路径保持默认。
  • 其中包括:

    • CUDA
    • Visual Studio Integration
    • Nsight Systems
    • Nsight Compute

    路径不改的好处很直接:后面环境变量少一点折腾。

    image-20260921112638742

    3.4 验证 nvcc

    CUDA 装完以后,不要继续沿用安装之前已经打开的旧 PowerShell 窗口。重新打开终端,再执行:

    nvcc -V

    如果能正常输出版本号,说明这一关过去了。

    image-20260921112752436

    我会把这一步当成一个明确检查点:先确认 nvcc 能用,再继续往后。 不然后面脚本出问题,很容易把环境问题误判成模型问题。

    4. 注册 HuggingFace,并创建只读 Token

    模型和代码准备好以后,下一步是 HuggingFace。

    先注册并登录:

    https://huggingface.co/

    image-20260921112834542

    进入:

    Settings → Access Tokens

    image-20260921113324288

    点击:

    New token

    创建 Token 时:

    • Name:可以写 bonsai-read
    • Role:选择 read
    • 点击 Generate

    image-20260921113343624

    image-20260921113430213

    生成以后立即复制保存。

    这串 Token 后面要交给部署脚本使用。它属于访问凭证,所以不要贴到公开文章、截图或聊天群里。

    5. 开始部署 Bonsai2-27B

    5.1 建目录、拉仓库、准备 PowerShell

    在电脑里找一个空间足够的磁盘,例如 F 盘,新建 Bonsai2 文件夹,然后在这个目录里打开 PowerShell。

    image-20260921143450621

    克隆项目:

    git clone https://github.com/PrismML-Eng/Bonsai-demo.git

    image-20260921143531181

    进入目录:

    cd Bonsai-demo

    接下来开启当前 PowerShell 进程的脚本执行权限:

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

    按原操作,提示时输入 Y 确认。

    image-20260921143555969

    然后设置 Bonsai2 相关环境变量:

    $env:BONSAI_FAMILY = "bonsai2"
    $env:BONSAI_MODEL = "27B"
    $env:BONSAI_TOKEN = "你的HuggingFace read令牌"

    image-20260921143621493

    这里最容易犯的错误,就是忘了把 "你的HuggingFace read令牌" 换成自己刚刚生成的 Token。

    5.2 执行安装脚本

    环境变量配置完成后,执行:

    .\\setup.ps1

    image-20260921143646812

    按照原流程,这个脚本会完成依赖安装,并自动下载相应模型文件。

    模型本身体积不小,所以这一段我不会盯着进度条着急。这里的处理方式是:

    • 网络正常时等待下载完成;
    • 不关闭当前 PowerShell;
    • 如果中断,再重新运行脚本继续。

    对第一次部署的人来说,能让脚本自己把依赖和模型拉下来,已经省掉不少手工步骤。

    5.3 启动 Bonsai2-27B Web 对话界面

    下载完成后,继续执行启动脚本:

    .\\scripts\\start_llama_server.ps1

    image-20260921150427800

    等终端输出启动信息以后,在浏览器访问:

    http://localhost:8080

    能看到 Web 对话页面,说明本地服务已经真正跑起来。

    image-20260921150331647

    这一步比“模型已经下载到磁盘”更重要,因为到这里才能确认服务至少已经启动并能通过页面访问。

    image-20260921153456548

    5.4 Linux 命令也一并保留

    另外还保留了 Linux 环境的命令:

    git clone https://github.com/PrismML-Eng/Bonsai-demo.git
    cd Bonsai-demo
    export BONSAI_FAMILY="bonsai2"
    export BONSAI_MODEL="27B"
    export BONSAI_TOKEN="你的hf read令牌"
    ./setup.sh1
    ./scripts/start_llama_server.sh

    浏览器同样访问:

    http://localhost:8080

    这部分我不展开改成另一套 Linux 教程,保留原有命令作为补充即可。

    6. 本地能聊以后,再解决远程访问

    模型部署完成后,WebUI 默认只能通过本机的 127.0.0.1:8080 或 localhost:8080 访问。

    对我来说,本地先跑通是第一阶段;如果还想在手机、平板或另一台电脑上使用,再解决公网入口。

    这里 cpolar 的职责很明确:把本地的 Web 服务映射成一个公网可访问入口。

    它不负责模型推理,也不负责模型下载,Bonsai2 才是业务本身。

    7. Windows 安装 cpolar

    先进入 cpolar 官网注册账号并下载 Windows 版本。

    image-20250828153039526

    下载后完成安装:

    image-20250828153119554

    安装成功以后,在浏览器访问:

    http://localhost:9200

    使用 cpolar 账号登录 WebUI。

    image-20250828153208376

    8. 给 Bonsai2 的 8080 端口创建公网地址

    登录 cpolar Web UI 后,进入“隧道管理 → 创建隧道”。

    按照原配置:

    • 隧道名称:Bonsai2
    • 协议:http
    • 本地地址:8080
    • 域名类型:随机域名
    • 地区:China Top

    image-20260921155258884

    创建以后,在在线隧道列表中查看生成的公网地址。

    image-20260921155309634

    用其他设备打开这个地址测试。

    image-20260921155617231

    到这里,本地模型的 WebUI 就多了一条外部访问入口。

    9. 保留固定公网地址

    如果准备长期使用,再继续配置固定二级子域名。

    image-20250918151358733

    进入预留页面,地区选择 china Top,名称按需要自定义,例如 Bonsai2。

    image-20260921163723841

    然后回到隧道列表,找到对应隧道并点击编辑。

    image-20260921163753546

    修改:

    • 域名类型:二级子域名
    • Sub Domain:填写已经预留的子域名
    • 地区:China Top

    点击更新。

    image-20260921163823038

    更新后,在在线隧道列表中可以看到对应地址发生变化。

    image-20260921163835432

    最后用固定公网地址再次访问:

    image-20260921163852987

    这样,本地 Bonsai2 WebUI 就有了一个更稳定的远程入口。

    结尾

    这次真正跑下来,我觉得“8G 显存跑 27B”最容易被标题带偏的地方,是大家只看到了最后那个聊天页面,却忽略了前面其实有一整条环境链。

    Git 没装好,仓库拉不下来;CUDA Toolkit 没配好,nvcc 过不了;HuggingFace Token 没设置,模型下载会卡;脚本和模型都准备好了,还得等 8080 的 WebUI 真正打开,才算完成本地部署。把这些检查点拆开以后,排错就不会完全靠猜。

    所以对我来说,这篇最有价值的不是证明一句“8G 也能跑”,而是把每一步该看到什么、该确认什么摆出来。只要知道现在卡在哪一层,就能少走很多回头路。

    最后的 cpolar 只是把已经跑通的 8080 Web 服务带到公网,它没有改变模型本身的能力。先本地跑通,再考虑远程访问,这个顺序我会一直保留。对于第一次折腾本地大模型的人来说,能把这一整条链完整走通,比单纯追求一个更大的参数数字更重要。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 8G显存也想本地跑27B?我把Bonsai2-27B从CUDA装到WebUI跑通了
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!