📌 项目地址openai/gpt-oss | ⭐ 20,121 颗星 | 🔧 Python | 📜 Apache-2.0

开源地址:openai/gpt-oss | Apache-2.0 | 20,121 Stars | Python

OpenAI 上个月在 GitHub 上放出了两个 MoE 模型:gpt-oss-120b(117B 总参数,激活 5.1B)和 gpt-oss-20b(21B 总参数,激活 3.6B)。Apache 2.0 许可,没有专利条款,商用、改代码、二次发布都行。仓库两万颗星,热度很高。

我仔细读了一遍 README,以下是关键信息,直接决定你能不能跑起来。

硬约束:Harmony 格式,不用就别想跑

两个模型的训练数据全部用了 Harmony 响应格式。README 原话:“both models were trained using our harmony response format and should only be used with this format; otherwise, they will not work correctly.” 没有例外。

用法分两种情况:

  • 如果你用 Transformers 的 pipelinechat template,框架会自动帮你套上 Harmony 格式。你只需要正常传对话列表。
  • 如果你直接调用 model.generate,必须手动应用 Harmony 格式。可以用 Transformers 的 chat template 做转换,或者装官方 openai-harmony Python 包。

我建议第一次跑先用 Transformers pipeline。等验证模型能正常输出了,再折腾别的。如果非要用 generate,去 openai-harmony 仓库 readme 里查清楚格式规范——它包含特定的 system prompt 和 user/assistant 标记,漏一个或者写错,输出就废掉。

核心能力:CoT 完整暴露 + 原生 Agent + 可调推理努力

这部分值钱:

  • 可调推理努力:低/中/高三档。低档延迟低,适合快速问答;高档质量高,适合复杂逻辑推理。没有档位上限以外的额外参数。
  • 完整思维链暴露:模型生成的所有中间推理步骤都返回给开发者。你拿到每一步的思考过程,方便调试和验证。但 OpenAI 明确说:这些信息不应该展示给最终用户。产品层需要自己把 CoT 剥离掉。
  • 原生 Agent 能力:函数调用、网页浏览、Python 代码执行、结构化输出都是内置的。README 里提到了 browserpython 示例,但没有贴完整代码,需要去仓库的 examples 目录翻。
  • 支持微调:参数微调,可以针对特定场景定制。

硬件需求:120b 吃 80GB GPU,20b 吃 16GB 内存

能做到单卡运行是因为 MXFP4 量化——把 MoE 专家的权重压到 4-bit。所有评测结果都是基于量化后的权重,准确度没有缩水。所以具体需求:

  • gpt-oss-120b 需要一块 80GB 显存的 GPU(NVIDIA H100 或 AMD MI300X)。
  • gpt-oss-20b 只需要 16GB 内存。README 没有写是 GPU 还是 CPU,我推测 CPU 也能跑,但速度会慢。

注意:120b 必须要有 80GB,40GB A100 装不下。20b 的 16GB 条件很宽松,很多消费级 GPU 也能运行。

四种部署方式,怎么选

README 里给出了四个参考实现,每个都包含完整代码和命令行用法:

  1. Transformers 方案(快速试用)
    README 示例代码片段(只展示了开头):

    model_id = "openai/gpt-oss-120b"
    pipe = pipeline("text-generation", model=model_id, ...)

    实际使用时,需要指定 torch_dtype=torch.bfloat16device_map="auto"。具体参数看仓库下的 inference_examples 目录。

  2. PyTorch 参考实现gpt_oss Python 包)
    适合需要深度定制推理或训练逻辑的人,代码完全暴露。

  3. Triton 实现(单 GPU)
    针对高性能推理优化,适合生产部署,能压榨出更多吞吐。

  4. Metal 实现
    苹果 M 系列芯片上也能跑,适合 Mac 用户本地测试。

我个人的选择:实验阶段用 Transformers 最快;上生产用 PyTorch 或 Triton 更可控;手头只有 Mac 的话,Metal 是唯一选项。

两个容易翻车的地方

  1. Harmony 格式的细节
    如果你绕过 chat template 自己写生成代码,必须去 openai-harmony 的文档里逐条对照。我试了下,格式包含特殊的 system prompt 和标记,缺失会导致输出异常。建议第一次跑先用 Transformers pipeline 验证模型能正常工作,再逐步深入。

  2. CoT 的展示边界
    OpenAI 明确说“chain-of-thought 信息不应展示给终端用户”。如果你做的是聊天机器人或客服助手,得在中间层把 CoT 剥离掉。这不是技术难点,但容易在产品设计时忽略——一旦忘了过滤,就会把模型内部思考过程暴露给用户,既不符合安全规范,用户体验也糟糕。

总结

这个项目的核心价值是:把千亿级别的高推理能力模型压缩到单卡 80GB,并给了商用许可。MoE 加 MXFP4 量化让 117B 模型在单块 H100 或 MI300X 上运行,同时保留完整的 CoT 和 Agent 能力。如果你需要私有化部署一个能够进行复杂推理、支持函数调用和结构化输出的模型,gpt-oss 是目前最直接的选项之一。但必须接受 Harmony 格式的约束,并且准备处理 CoT 的产品化问题。

这篇文章对你有帮助吗?

发表回复