GPT-OSS 是 OpenAI 重新开源的大语言模型系列,一次放出两个规格:gpt-oss-120b 和 gpt-oss-20b。两者都采用 MoE Transformer 架构,支持 128K 上下文长度,以 Apache 2.0 许可协议发布,允许自由使用和商业应用 [1]。20B 版本最引人注目的是它的低门槛:仅 16GB 内存就能跑起来,从边缘设备到消费级显卡都装得下 [1]。这篇沿着 vLLM 路线走完部署全程,其中最费工夫的不是模型本身,而是依赖版本的匹配。
模型规格与定位
先看清两个规格各自的定位 [1]:120B 在核心推理基准测试里与 OpenAI o4-mini 几乎持平,单张 80GB 显卡就能高效运行;20B 在常见基准测试中拿到与 o3-mini 相近的结果,是设备端应用、本地推理和低成本快速迭代的理想选择 [1]。两个模型在工具使用、少样本函数调用、CoT 推理(Tau-Bench 智能体评估套件)以及 HealthBench 测试中都表现强劲,甚至超过了 OpenAI o1 和 GPT-4o 这样的专有模型 [1]。
显存账也好算 [1]:
- gpt-oss-20b:约 16GB 显存,A100、H20 这类显卡可以运行;
- gpt-oss-120b:显存至少 60GB 才有最佳效果,单张 H100 或多卡配置。
MoE 架构是这个系列能压低显存门槛的关键:模型的总参数量很大,但每个 token 只激活其中一部分专家,权重可以常驻显存而计算量远小于同等规模的稠密模型。对部署者来说,这意味着显存占用接近总参数量,但吞吐表现却好于同量级的稠密模型,代价是对专家负载均衡和并行策略的实现质量更敏感。
环境准备:和最新版本赛跑
这套部署最大的坑在环境。支持 gpt-oss 的 vLLM 0.10.1 在 2025 年 8 月 6 日时还未正式发布,需要从预发布源安装,官方建议新开一个 Python 3.12 环境避免污染现有配置 [1]。更要紧的是,很多依赖都处在最新版本线上,配置稍旧就会出问题,必要时得升级 conda 和 CUDA [1]:
conda search cuda-toolkit --channel nvidia
conda install cuda-toolkit=<新版本号> --channel nvidia
nvcc --version #查看是否升级成功
export CUDA_HOME=$CONDA_PREFIX
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH #在conda升级后需设置一下路径conda 升级后要重新设置 CUDA_HOME 和库搜索路径,这一步经常被跳过,结果是编译依赖时找不到 CUDA 头文件。试验环境为 PyTorch 2.9.0、Python 3.12(Ubuntu 22.04)、CUDA 12.8、一张 NVIDIA H20-96GB [1]。
接着克隆官方脚本仓库,建独立环境并换源加速 [1]:
git clone https://github.com/huggingface/gpt-oss-recipes.git
cd gpt-oss-recipesconda create -n gpt_oss_vllm python=3.12
conda activate gpt_oss_vllm
python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
export HF_ENDPOINT="https://hf-mirror.com"
pip install -U huggingface_hubHF_ENDPOINT 指向镜像站后,后续所有 Hugging Face 的下载都会走镜像,国内网络下能省大量等待时间。gpt-oss 的核心依赖一条命令装齐 [1]:
pip install -U transformers kernels torch accelerate模型下载
模型可以从 Hugging Face 和 ModelScope 两个仓库获取,既可以显式下载,也可以在首次使用时自动下载 [1]。显式方式最直观 [1]:
huggingface-cli download openai/gpt-oss-20b --local-dir gpt-oss-20blocal_dir 按自己的磁盘规划改。显式下载的好处是后续 serve 命令可以直接指向本地目录,避免每次启动都检查远端。
下载和安装之外还有几件值得提前想清楚的事:磁盘要给模型权重留足空间,20B 的权重文件加起来就有几十 GB,缓存目录放在大容量盘上更稳妥;首次自动下载虽然省事,但每次重启服务都可能在远端校验上浪费时间,生产环境一律显式下载到固定目录;镜像站的同步偶尔滞后于官方仓库,拉取最新发布版本时如果发现文件缺失,退回官方源重试即可。
transformers 调用:先小步验证
装好依赖后,先用 transformers 的 pipeline 做一次最小验证,确认模型能跑再上服务 [1]:
from transformers import pipeline
import torch
model_id = "openai/gpt-oss-20b"
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [
{"role": "user", "content": "Explain quantum mechanics clearly and concisely."},
]
outputs = pipe(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])torch_dtype 和 device_map 都交给 auto,框架自己决定精度和设备分配。输出取 generated_text 的最后一个元素,正是模型回复的那条消息。
transformers 也能直接起 HTTP 服务,两条命令完成服务端和客户端的连接 [1]:
transformers serve
transformers chat localhost:8000 --model-name-or-path openai/gpt-oss-20b这个模型还有一个特别的控制点:推理的详细程度可以用系统提示来调。想要更深入的推理,就在消息里加一条系统级设定 [1]:
messages = [
{"role": "system", "content": "Reasoning: high"},
{"role": "user", "content": "解释量子计算的基本原理"}
]推理级别高的请求消耗更多思考 token,但答案更扎实;简单任务可以调低级别换速度。把推理强度做成可调参数,是 gpt-oss 系列在接口设计上的独特之处。
vLLM 部署:预发布轮子与 FlashInfer
进入 vLLM 环节前有个提醒:vLLM 各版本之间兼容性很差,部署前务必确认版本 [1]。安装走预发布轮子,再单独装 FlashInfer [1]:
pip install --pre vllm==0.10.1+gptoss \
--extra-index-url https://wheels.vllm.ai/gpt-oss/ \
--extra-index-url https://download.pytorch.org/whl/nightly/cu128
# !!!安装 FlashInfer!!!
pip install flashinfer-python==0.2.10两个 extra-index 一个指向 vLLM 的 gpt-oss 专用轮子源,一个指向 PyTorch 的 CUDA 12.8 nightly 源,缺一不可。FlashInfer 版本也锁死在 0.2.10,这是注意力计算的关键加速件。
服务启动是一条命令的事,vLLM 会自动从 Hugging Face 拉取模型并起一个 OpenAI 协议兼容的服务器,命令里的模型名可以换成已下载的本地目录 [1]:
# For 20B 可以替换成本地下载的目录
vllm serve openai/gpt-oss-20b
# For 120B 可以替换成本地下载的目录
vllm serve openai/gpt-oss-120b实测配置里还加了三个参数:环境变量强制使用 Triton 注意力后端,--served-model-name 给模型起了干净的对外名字,端口改到 8801 [1]:
VLLM_ATTENTION_BACKEND=TRITON_ATTN_VLLM_V1 vllm serve openai/gpt-oss-20b --served-model-name gpt-oss-20b --trust_remote_code --port 8801--served-model-name 这一步值得单独说:显式命名后,客户端请求里的 model 字段写 gpt-oss-20b 即可,不再受服务器目录结构的影响,接入下游应用时干净得多。注意力后端的强制指定则是预发布阶段的稳定性手段,等正式版本发布后这类环境变量大概率可以省掉。
整套流程的要点可以收拢成三句话:环境用最新的,依赖锁版本,服务起好后先用 pipeline 或 chat 客户端小流量验证再放量。开源 weights 加上 16GB 的显存门槛,让 gpt-oss-20b 成为在本地把 OpenAI 级模型跑起来的最低成本路径之一。
本文改编自 Datawhale 开源教程《self-llm》的 GPT-OSS-20B vLLM 部署调用一节[1],原文以 Apache 2.0 许可协议发布。
来源
- 101-GPT-OSS-20b vLLM 部署调用 | self-llmDatawhale self-llm (Apache-2.0)
引用本页: gpt-oss-20b 用 vLLM 部署. TellWorld, https://www.tellworld.net/zh/practice/practice-gpt-oss-vllm. 更新于 2026-11-14