GPT-OSS 是 OpenAI 推出的开源语言模型系列,包括 gpt-oss-120b
和 gpt-oss-20b
,分别拥有 1170 亿和 210 亿参数,采用 Apache 2.0 许可,允许开发者免费下载、修改和部署。gpt-oss-120b
适合数据中心或高端设备,单 Nvidia H100 GPU 即可运行;gpt-oss-20b
针对低延迟场景,可在 16GB 内存设备上运行。模型支持链式推理、工具调用和结构化输出,适用于智能体任务和本地化应用。OpenAI 通过安全训练和外部审核确保模型安全性,适合企业、研究和个人开发者使用。
功能列表
- 开源模型下载:提供
gpt-oss-120b
和gpt-oss-20b
模型权重,Hugging Face 平台免费获取。 - 高效推理:采用 MXFP4 量化,
gpt-oss-120b
单 GPU 运行,gpt-oss-20b
适配 16GB 内存设备。 - 链式推理:支持低、中、高三种推理强度,开发者可根据任务调整性能与延迟。
- 工具调用:集成网页搜索、Python 代码执行和文件操作工具,提升交互能力。
- Harmony 格式:使用专有 Harmony 响应格式,确保输出结构化,便于调试。
- 多平台支持:兼容 Transformers、vLLM、Ollama、LM Studio 等框架,适配多种硬件。
- 安全机制:通过审慎对齐和指令优先级体系,降低提示注入等风险。
- 可微调:支持全参数微调,适配特定任务场景。
- 长上下文支持:原生支持 128k 上下文长度,适合复杂任务处理。
使用帮助
安装流程
要使用 GPT-OSS 模型,需下载模型权重并配置环境。以下是详细步骤:
- 下载模型权重
从 Hugging Face 获取模型权重:huggingface-cli download openai/gpt-oss-120b --include "original/*" --local-dir gpt-oss-120b/ huggingface-cli download openai/gpt-oss-20b --include "original/*" --local-dir gpt-oss-20b/
确保安装
huggingface-cli
:pip install huggingface_hub
。 - 配置 Python 环境
使用 Python 3.12 创建虚拟环境:uv venv gpt-oss --python 3.12 source gpt-oss/bin/activate pip install --upgrade pip
安装依赖:
pip install transformers accelerate torch pip install gpt-oss
对于 Triton 实现,需额外安装:
git clone https://github.com/triton-lang/triton cd triton pip install -r python/requirements.txt pip install -e . pip install gpt-oss[triton]
- 运行模型
- Transformers 实现:加载并运行
gpt-oss-20b
: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": "量子力学是什么?"}] outputs = pipe(messages, max_new_tokens=256) print(outputs[0]["generated_text"][-1])
确保使用 Harmony 格式,否则模型无法正常工作。
- vLLM 实现:启动 OpenAI 兼容服务器:
uv pip install --pre vllm==0.10.1+gptoss --extra-index-url https://wheels.vllm.ai/gpt-oss/ vllm serve openai/gpt-oss-20b
- Ollama 实现(消费级硬件):
ollama pull gpt-oss:20b ollama run gpt-oss:20b
- LM Studio 实现:
lms get openai/gpt-oss-20b
- Apple Silicon 实现:转换权重为 Metal 格式:
pip install -e .[metal] python gpt_oss/metal/scripts/create-local-model.py -s gpt-oss-20b/metal/ -d model.bin python gpt_oss/metal/examples/generate.py gpt-oss-20b/metal/model.bin -p "为什么鸡过马路?"
- Transformers 实现:加载并运行
操作功能
- 链式推理:模型支持三种推理强度(低、中、高)。开发者可通过系统消息设置,例如:
system_message_content = SystemContent.new().with_reasoning_effort("high")
高强度适合复杂任务如数学推理,低强度适合快速回答。
- Harmony 格式:模型输出分为
analysis
(推理过程)和final
(最终答案)。使用 Harmony 库解析:from openai_harmony import load_harmony_encoding, HarmonyEncodingName, Conversation, Message, Role, SystemContent encoding = load_harmony_encoding(HarmonyEncodingName.HARMONY_GPT_OSS) messages = [Message.from_role_and_content(Role.USER, "旧金山天气如何?")] conversation = Conversation.from_messages(messages) token_ids = encoding.render_conversation_for_completion(conversation, Role.ASSISTANT)
仅向用户展示
final
通道内容。 - 工具调用:
- 网页搜索:通过
browser
工具搜索、打开或查找网页内容。启用工具:from gpt_oss.tools.simple_browser import SimpleBrowserTool, ExaBackend backend = ExaBackend(source="web") browser_tool = SimpleBrowserTool(backend=backend) system_message_content = SystemContent.new().with_tools(browser_tool.tool_config)
需设置
EXA_API_KEY
环境变量。 - Python 代码执行:运行计算任务,例如:
from gpt_oss.tools.python_docker.docker_tool import PythonTool python_tool = PythonTool() system_message_content = SystemContent.new().with_tools(python_tool.tool_config)
注意:Python 工具使用 Docker 容器,需谨慎处理提示注入风险。
- 文件操作:通过
apply_patch
工具创建、更新或删除文件。
- 网页搜索:通过
- 结构化输出:支持 Responses API 格式,确保输出一致性,适合智能体工作流。
注意事项
- 硬件要求:
gpt-oss-120b
需 80GB GPU(如 Nvidia H100),gpt-oss-20b
需 16GB 内存。Apple Silicon 需 Metal 格式权重。 - 上下文长度:支持 128k 上下文,需调整
max_context_length
参数。 - 安全使用:避免直接展示链式推理内容,防止有害信息泄露。
- 采样参数:推荐
temperature=1.0
和top_p=1.0
以获得最佳输出。
应用场景
- 企业本地化部署
企业可在本地服务器运行 GPT-OSS,处理敏感数据,适合客户服务、内部知识库或合规性要求高的场景。 - 开发者定制化开发
开发者可基于 Apache 2.0 许可微调模型,优化特定任务,如法律文档分析或代码生成。 - 学术研究
研究人员可利用模型进行 AI 算法实验,分析推理行为或开发安全监测系统。 - 消费级设备应用
gpt-oss-20b
适配笔记本电脑或边缘设备,适合开发个人助手或离线写作工具。
QA
- GPT-OSS 支持哪些硬件?
gpt-oss-120b
需 80GB GPU(如 Nvidia H100),gpt-oss-20b
可在 16GB 内存设备运行,如高端笔记本或 Apple Silicon。 - 如何确保模型安全?
模型经过审慎对齐和指令优先级训练,抵御提示注入。OpenAI 举办 $500,000 红队挑战,鼓励社区发现安全漏洞。 - 是否支持多模态?
仅支持文本输入和输出,不支持图像或其他模态。 - 如何微调模型?
使用 Transformers 或其他框架,加载模型权重后,在自定义数据集上进行全参数微调。 - Harmony 格式有何作用?
Harmony 格式确保结构化输出,便于调试和信任。必须使用,否则模型无法正常运行。