DGX Spark llama.cpp 方式部署 gpt-oss-120b 模型
DGX Spark 使用 llama.cpp 部署 GPT-OSS-120B 模型
原文参考: https://v2ex.com/t/1195382
原文参考: https://2libra.com/post/ai-programming/sS2H4De
参考资料: https://forums.developer.nvidia.com/t/pre-installed-ollama-configuration/349480书接上回,国内这方面资料太少了,半吊子英语水平,一边看一边尝试,总结下来就是以下步骤,供大家参考。
参考资料学习了很久,最下面还有很多相关的帖子,基本都看了一遍,有兴趣的可以看看
总结一下
Ollama 这个就是个玩具,真的要部署最好采用 vLLM 或者 llama.cpp 方式,还有一种 TensorRT-LLM ,英伟达出的部署方式
综合看了下 DGX Spark 采用 llama.cpp 方式部署是最成熟优化最完整的
最近甚至加了一个群,里面全是卖教程的,一位 99,讲的全是一键 openclaw,一键买模型,一键买服务器.
大家看的爽了给个金币,我也赚钱了
📋 前置准备
- 需要魔法(网络代理)
- 安装 Node.js(可通过 nvm 安装,选择最新 LTS 版本即可),后续安装龙虾 openclaw,顺带准备好
一、安装系统依赖
一次性安装所有必要的编译工具和开发库:
复制
sudo apt update sudo apt install -y clang cmake libcurl4-openssl-dev libssl-dev build-essential
二、克隆并编译 llama.cpp
复制
# 克隆仓库(这个实在不行就手动下载放在相同目录下,因为 git clone 经常失败,git 需要单独设置代理) git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp # 编译(关键:启用 CUDA 和 CURL 支持) cmake -B build -DGGML_CUDA=ON -DGGML_CURL=ON cmake --build build --config Release -j 20
⚠️ 如果编译后运行报 SSL/CURL 相关错误,请清理后重新编译:
复制cd ~/llama.cpp rm -rf build cmake -B build -DGGML_CUDA=ON -DLLAMA_CURL=ON -DLLAMA_OPENSSL=ON cmake --build build --config Release -j 20
三、启动服务(推荐 B 方式)
方式 A:自动从 Hugging Face 下载模型(没成功过,不是代理的问题,是文件压根找不到,基本给的例子都是找不到返回 404)
复制
cd ~/llama.cpp/build/bin ./llama-server -hf ggml-org/gpt-oss-120b-GGUF \ -fa on -ngl 999 \ --jinja \ --ctx-size 0 \ -b 2048 -ub 2048 \ --no-mmap \ --temp 1.0 \ --top-p 1.0 \ --top-k 0 \ --reasoning-format auto
方式 B:手动下载模型后加载
1. 创建模型目录
复制
mkdir -p ~/models/gpt-oss-120b cd ~/models/gpt-oss-120b
2. 手动下载 GGUF 模型文件
前往以下地址,用浏览器下载分片文件:
复制
https://huggingface.co/bartowski/openai_gpt-oss-120b-GGUF/tree/main/openai_gpt-oss-120b-Q3_K_M
需要下载的文件:
openai_gpt-oss-120b-Q3_K_M-00001-of-00002.ggufopenai_gpt-oss-120b-Q3_K_M-00002-of-00002.gguf
将文件放到 ~/models/gpt-oss-120b/ 目录下。
3. 启动服务(方式 B 直接指定分片文件路径)
💡 llama.cpp 新版本支持直接加载分片文件,无需手动合并。
复制
cd ~/llama.cpp/build/bin ./llama-server -m ~/models/gpt-oss-120b/openai_gpt-oss-120b-Q4_K_M-00001-of-00002.gguf \ -fa on -ngl 999 \ --jinja \ --ctx-size 0 \ -b 2048 -ub 2048 \ --no-mmap \ --temp 1.0 \ --top-p 1.0 \ --top-k 0 \ --reasoning-format auto
四、验证服务是否正常
服务启动后默认监听 http://localhost:8080,执行以下命令测试:
复制
curl -s http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-oss-120b", "messages": [ { "role": "user", "content": "Hello, who are you?" } ], "max_tokens": 100 }'
五、配置开机自启动(systemd)
将以下脚本保存后整体执行,可一键完成配置:
复制
# ===== 请确认你的用户名 ===== # 脚本会自动检测,如果不对请手动修改 USERNAME=$(whoami) HOME_DIR="/home/$USERNAME" echo "正在为用户 $USERNAME 配置 llama.cpp 开机自启动..." # 第一步:创建启动脚本 sudo tee /usr/local/bin/start-llama-server.sh > /dev/null <<EOF #!/bin/bash cd $HOME_DIR $HOME_DIR/llama.cpp/build/bin/llama-server \ -m $HOME_DIR/models/gpt-oss-120b/openai_gpt-oss-120b-Q4_K_M-00001-of-00002.gguf \ -fa on -ngl 999 \ --jinja \ --ctx-size 0 \ -b 2048 -ub 2048 \ --no-mmap \ --temp 1.0 \ --top-p 1.0 \ --top-k 0 \ --reasoning-format auto EOF # 第二步:添加执行权限 sudo chmod +x /usr/local/bin/start-llama-server.sh # 第三步:创建 systemd 服务 sudo tee /etc/systemd/system/llama-server.service > /dev/null <<EOF [Unit] Description=llama.cpp Server for GPT-OSS-120B After=network.target network-online.target Wants=network-online.target [Service] User=$USERNAME Group=$USERNAME ExecStart=/usr/local/bin/start-llama-server.sh Restart=on-failure RestartSec=5 Type=simple TimeoutStopSec=30 KillMode=process [Install] WantedBy=multi-user.target EOF # 第四步:重新加载 systemd 并启用服务 sudo systemctl daemon-reload sudo systemctl enable llama-server.service sudo systemctl start llama-server.service # 第五步:显示状态 echo "==================================" echo "✅ 安装完成!服务状态:" sudo systemctl status llama-server.service --no-pager echo "==================================" echo "📝 常用命令:" echo " 查看日志: sudo journalctl -u llama-server.service -f" echo " 重启服务: sudo systemctl restart llama-server" echo " 停止服务: sudo systemctl stop llama-server" echo "=================================="
📝 常用管理命令
| 操作 | 命令 |
|---|---|
| 查看实时日志 | sudo journalctl -u llama-server.service -f |
| 重启服务 | sudo systemctl restart llama-server |
| 停止服务 | sudo systemctl stop llama-server |
| 查看服务状态 | sudo systemctl status llama-server |
📢 转载声明:如需转载本文,请注明原文出处
有意思,先收藏了