LLMs之GPT:gpt-oss-120b/gpt-oss-20b的简介、安装和使用方法、案例应用之详细攻略
目录
gpt-oss的简介
2025年8月6日,OpenAI重新回归开源节奏,gpt-oss-120b 和 gpt-oss-20b 是 OpenAI 发布的两个开放权重(open-weight)的语言模型。
- gpt-oss-120b:适用于生产环境、通用目的和高推理使用场景,可以放入单个 H100 GPU 中运行(具有 1170 亿参数,其中 51 亿为活跃参数)。
- gpt-oss-20b:适用于低延迟、本地或专用使用场景(具有 210 亿参数,其中 36 亿为活跃参数)。
这两个模型都使用 OpenAI 的 harmony 响应格式进行训练,因此必须使用此格式,否则无法正常工作。
官网地址:https://openai.com/index/introducing-gpt-oss/
GitHub地址:https://github.com/openai/gpt-oss
1、特点
>> Apache 2.0 许可证:允许自由构建,没有 copyleft 限制或专利风险,适合实验、定制和商业部署。
>> 可配置的推理强度:可以根据具体的使用场景和延迟需求轻松调整推理强度(低、中、高)。
>> 完整的思维链(Chain-of-Thought):提供对模型推理过程的完全访问,方便调试并提高对输出的信任度。此信息不应向最终用户展示。
>> 可微调(Fine-tunable):可以通过参数微调完全定制模型,以适应特定的使用场景。
>> 具备 Agent 能力:模型原生支持函数调用、网页浏览、Python 代码执行和结构化输出等 Agent 任务。
>> 原生 MXFP4 量化:模型在 MoE 层使用原生 MXFP4 精度进行训练,使 gpt-oss-120b 能够在单个 H100 GPU 上运行,gpt-oss-20b 能够在 16GB 内存中运行。
gpt-oss的安装和使用方法
1、安装
依赖要求
Python 3.12
macOS:安装 Xcode CLI 工具 (xcode-select --install)
Linux:需要 CUDA
Windows:未在 Windows 上测试,建议使用 Ollama 等解决方案。
安装步骤
直接从 PyPI 安装
# 如果只需要工具
pip install gpt-oss
# 如果想尝试 torch 实现
pip install gpt-oss[torch]
# 如果想尝试 triton 实现
pip install gpt-oss[triton]
本地设置(如果想修改代码或尝试 metal 实现)
git clone https://github.com/openai/gpt-oss.git
GPTOSS_BUILD_METAL=1 pip install -e ".[metal]"
下载模型
从 Hugging Face Hub 下载模型权重:
# gpt-oss-120b
huggingface-cli download openai/gpt-oss-120b --include "original/*" --local-dir gpt-oss-120b/
# gpt-oss-20b
huggingface-cli download openai/gpt-oss-20b --include "original/*" --local-dir gpt-oss-20b/
2、使用方法
该项目提供了多种参考实现,包括:
Inference (推理):
torch: 一个非优化的 PyTorch 实现,仅用于教育目的。因为它没有优化,所以需要至少 4 个 H100。
triton: 一个更优化的实现,使用 PyTorch 和 Triton,包括 CUDA graphs 和基本缓存。
metal: 一个 Metal 专门的实现,用于在 Apple Silicon 硬件上运行模型。
Tools (工具):
browser: 模型训练时使用的浏览器工具的参考实现。
python: 模型训练时使用的 Python 工具的无状态参考实现。
Client examples (客户端例子):
chat: 一个基本的终端聊天应用,使用 PyTorch 或 Triton 实现进行推理,并结合 Python 和浏览器工具。
responses_api: 一个兼容 Responses API 的服务器示例,实现了浏览器工具和其他 Responses 兼容的功能。
T1、使用 Transformers 进行推理
from transformers import pipeline
import torch
model_id = "openai/gpt-oss-120b"
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])
如果使用 Transformers 的 chat template,它会自动应用 harmony 响应格式。如果直接使用 model.generate,需要手动应用 harmony 格式,或者使用 openai-harmony 包。
T2、使用 vLLM 进行推理
vLLM 建议使用 uv 进行 Python 依赖管理。可以使用 vLLM 启动一个 OpenAI 兼容的 webserver。
uv 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 \
--index-strategy unsafe-best-match
vllm serve openai/gpt-oss-20b
T3、使用 Ollama 进行推理
如果想在消费级硬件上运行 gpt-oss,可以使用 Ollama:
# gpt-oss-20b
ollama pull gpt-oss:20b
ollama run gpt-oss:20b
# gpt-oss-120b
ollama pull gpt-oss:120b
ollama run gpt-oss:120b
T4、使用 LM Studio 进行推理
# gpt-oss-20b
lms get openai/gpt-oss-20b
# gpt-oss-120b
lms get openai/gpt-oss-120b
T5、参考 PyTorch 实现
项目包含一个效率较低的参考 PyTorch 实现 (gpt_oss/torch/model.py)。此代码使用基本的 PyTorch 运算符来展示确切的模型架构,并添加了对 MoE 中张量并行性的支持,以便更大的模型可以使用此代码运行(例如,在 4 个 H100 或 2 个 H200 上)。在此实现中,所有权重都转换为 BF16,并在 BF16 中运行模型。
pip install -e .[torch]
torchrun --nproc-per-node=4 -m gpt_oss.generate gpt-oss-120b/original/
T6、参考 Triton 实现 (单 GPU)
项目还包含一个优化的参考实现,该实现使用支持 MXFP4 的优化 triton MoE 内核。它还在 attention 代码上进行了一些优化,以降低内存成本。要运行此实现,需要安装 nightly 版本的 triton 和 torch。此版本可以在单个 80GB GPU 上运行 gpt-oss-120b。
# 需要从源代码安装 triton 才能使用 triton 实现
git clone https://github.com/triton-lang/triton
cd triton/
pip install -r python/requirements.txt
pip install -e . --verbose --no-build-isolation
# 安装 gpt-oss triton 实现
pip install -e .[triton]
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
python -m gpt_oss.generate --backend triton gpt-oss-120b/original/
T7、参考 Metal 实现
项目还提供了一个 Metal 参考实现,用于在 Apple Silicon 上运行。此实现尚未准备好用于生产环境,但与 PyTorch 实现一致。
pip install -e .[metal]
python gpt_oss/metal/scripts/create-local-model.py -s <model_dir> -d <output_file>
# 或者下载预转换的权重:
huggingface-cli download openai/gpt-oss-120b --include "metal/*" --local-dir gpt-oss-120b/metal/
huggingface-cli download openai/gpt-oss-20b --include "metal/*" --local-dir gpt-oss-20b/metal/
python gpt_oss/metal/examples/generate.py gpt-oss-20b/metal/model.bin -p "why did the chicken cross the road?"
3、终端聊天
终端聊天应用程序是一个基本的示例,展示了如何将 harmony 格式与 PyTorch、Triton 和 vLLM 实现一起使用。它还公开了 python 和 browser 工具作为可选工具。
python -m gpt_oss.chat [-h] [-r REASONING_EFFORT] [-a] [-b] [--show-browser-results] [-p] [--developer-message DEVELOPER_MESSAGE] [-c CONTEXT] [--raw] [--backend {triton,torch,vllm}] FILE
T1、Responses API
项目包含一个 Responses API 服务器示例。此服务器没有实现 Responses API 的所有特性和事件,但应与大多数基本使用场景兼容,并可以为构建自己的服务器提供灵感。
python -m gpt_oss.responses_api.serve [-h] [--checkpoint FILE] [--port PORT] [--inference-backend BACKEND]
Codex
支持 codex 作为 gpt-oss 的客户端。要运行 20b 版本,请将以下内容设置为 ~/.codex/config.toml:
disable_response_storage = true
show_reasoning_content = true
[model_providers.local]
name = "local"
base_url = "http://localhost:11434/v1"
[profiles.oss]
model = "gpt-oss:20b"
model_provider = "local"
4、工具 (Tools)
4.1、 Browser
browser 工具允许模型浏览网页。它暴露了三个方法:
search: 搜索关键词
open: 打开特定页面
find: 在页面上查找内容
使用方法
要启用 browser 工具,需要将定义放入 harmony 格式化提示的 system 消息中。
4.2、 Python
该模型经过训练,可以使用 python 工具来执行计算和其他操作。
使用方法
要启用 python 工具,需要将定义放入 harmony 格式化提示的 system 消息中。
5、其他细节
精度格式:MoE 层的线性投影权重使用原生量化支持 MXFP4。其他张量将采用 BF16 格式。
推荐的采样参数:temperature=1.0 和 top_p=1.0。
gpt-oss的案例应用
案例应用主要体现在上述的使用方法中,例如:
使用 Transformers 生成文本
使用 vLLM 搭建 OpenAI 兼容的 Webserver
使用 Ollama 在本地运行模型
使用 Browser 工具进行网页浏览
使用 Python 工具执行计算