在 NVIDIA DGX Spark 上优化 GPT-OSS:实现本地大模型部署
阅读原文· lmsys.orgDGX Spark本地跑通Claude Code完全离线,隐私敏感开发者的新选择
与 NVIDIA 合作,在 DGX Spark 上通过 SGLang 成功支持 GPT-OSS 20B 与 120B 模型,实现 20B 版本约 70 tokens/s、120B 版本约 50 tokens/s 的生成速度,达到目前最优水平。用户可通过 Docker 部署 SGLang 服务,接入 Open WebUI 实现本地聊天,或借助 LMRouter 转换请求格式以完全本地化运行 Claude Code。该方案使在 DGX Spark 上部署多百亿参数本地编码智能体成为现实。
目录
- 1. 环境准备
- 2. 使用 Docker 启动 SGLang
- 3. 测试服务器
- 4. 性能基准测试
- 5. 运行本地聊天机器人(Open WebUI)
- 6. 完全在本地运行 Claude Code
- 步骤 1:创建 LMRouter 配置
- 步骤 2:启动 LMRouter
- 步骤 3:启动 Claude Code
- 7. 总结
在 NVIDIA DGX Spark 上优化 GPT-OSS:充分发挥 Spark 的性能
我们带来了关于 NVIDIA DGX Spark 的一些激动人心的更新!在正式发布后的一周内,我们与 NVIDIA 紧密合作,成功将 GPT-OSS 20B 和 GPT-OSS 120B 的支持移植到了 DGX Spark 上的 SGLang。结果令人印象深刻:GPT-OSS 20B 约 70 tokens/s,GPT-OSS 120B 约 50 tokens/s——这是目前的最佳性能,使得在 DGX Spark 上运行本地编码智能体完全可行。

我们在这里更新了详细的基准测试结果,并在此处查看我们的演示视频。
在本文中,你将学习如何:
- 在 DGX Spark 上使用 SGLang 运行 GPT-OSS 20B 或 120B
- 在本地进行性能基准测试
- 将其连接到 Open WebUI 进行聊天
- 甚至通过 LMRouter 完全在本地运行 Claude Code
1. 环境准备
在启动 SGLang 之前,请确保已为 OpenAI Harmony 准备好正确的 tiktoken 编码:
mkdir -p ~/tiktoken_encodings
wget -O ~/tiktoken_encodings/o200k_base.tiktoken "https://openaipublic.blob.core.windows.net/encodings/o200k_base.tiktoken"
wget -O ~/tiktoken_encodings/cl100k_base.tiktoken "https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken"
2. 使用 Docker 启动 SGLang
现在,使用以下命令启动 SGLang 服务器:
docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface -v ~/tiktoken_encodings:/tiktoken_encodings \
--env "HF_TOKEN=<secret>" --env "TIKTOKEN_ENCODINGS_BASE=/tiktoken_encodings" \
--ipc=host \
lmsysorg/sglang:spark \
python3 -m sglang.launch_server --model-path openai/gpt-oss-20b --host 0.0.0.0 --port 30000 --reasoning-parser gpt-oss --tool-call-parser gpt-oss
将 `<secret>` 替换为你的 Hugging Face 访问令牌。如果你想运行 GPT-OSS 120B,只需将模型路径改为:`openai/gpt-oss-120b`。该模型大小约为 20B 版本的 6 倍,因此加载时间会稍长一些。为获得最佳性能和稳定性,建议在 DGX Spark 上启用交换内存。
3. 测试服务器
一旦 SGLang 运行起来,你可以直接发送兼容 OpenAI 的请求:
curl http://localhost:30000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many letters are there in the word SGLang?"
}
]
}'

4. 性能基准测试
一个快速的基准测试方法是请求较长的输出,例如:
curl http://localhost:30000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Generate a long story. The only requirement is long."
}
]
}'
在典型条件下,使用 GPT-OSS 20B 你应该能看到大约每秒 70 个 token。
5. 运行本地聊天机器人(Open WebUI)
要搭建一个友好的本地聊天界面,你可以在 DGX Spark 上安装 Open WebUI,并将其指向你正在运行的 SGLang 后端:http://localhost:30000/v1。按照 Open WebUI 安装说明进行操作即可启动运行。连接成功后,你就能与本地 GPT-OSS 实例流畅对话。无需联网。

6. 完全在本地运行 Claude Code
在本地运行 GPT-OSS 模型后,你甚至可以通过 LMRouter 连接 Claude Code,它能够将 Anthropic 风格的请求转换为 OpenAI 兼容的请求。
第一步:创建 LMRouter 配置
将此文件保存为 lmrouter-sglang.yaml。
第二步:启动 LMRouter
安装 pnpm(如果尚未安装),然后运行:
pnpx @lmrouter/cli lmrouter-sglang.yaml
第三步:启动 Claude Code
按照其设置指南安装 Claude Code,然后按如下方式启动:
ANTHROPIC_BASE_URL=http://localhost:3000/anthropic \
ANTHROPIC_AUTH_TOKEN=sk-sglang claude
就这样!你现在可以在本地使用 Claude Code,完全由 DGX Spark 上的 GPT-OSS 20B 或 120B 驱动。

7. 结论
通过这些步骤,你可以充分释放 DGX Spark 的潜力,将其变为一个本地 AI 强大引擎,能够以交互方式运行数百亿参数规模的模型。