当前位置: 首页 > ds >正文

《GPT-OSS 模型全解析:OpenAI 回归开源的 Mixture-of-Experts 之路》

目录

一、引言

二、GPT-OSS 模型简介

1. 版本与定位

2. 架构设计与技术亮点

2.1 Mixture-of-Experts(MoE)架构

2.2 高效推理机制与优化技术

2.3 模型对比

三、模型部署

1. 安装相关依赖

1.1 uv 安装

1.2 conda 安装

1.3 Transformers 运行 gpt-oss

四、模型调用示例

五、Debug

总结


一、引言

2025 年 8 月,OpenAI 推出了自 GPT-2(2019 年) 以来首个开源权重的大型语言模型系列——GPT-OSS(Generative Pre-trained Transformer – Open-Source Series)。此次发布包含两款模型:gpt-oss-120b(117B 参数)和 gpt-oss-20b(21B 参数),均采用开放的 Apache 2.0 许可协议,标志着 OpenAI 向开源社区迈出了重要一步。

二、GPT-OSS 模型简介

1. 版本与定位

  • gpt-oss-120b:约 117B 总参数,适用于强推理需求,能在一张 80 GB GPU 上运行。

  • gpt-oss-20b:约 21B 参数,适用于边缘设备与轻量级部署,仅需 16 GB 显存。

两者都支持强链式思维(Chain-of-Thought)、工具调用与结构化输出格式,专为复杂推理和开发者定制场景设计。

2. 架构设计与技术亮点

2.1 Mixture-of-Experts(MoE)架构

GPT-OSS 延续 Transformer 模型框架,但每层引入 MoE 设计:

  • gpt-oss-120b:每层包含 128 个专家网络;每个 token 激活 4 个专家,活跃参数约为 5.1 B 。

  • gpt-oss-20b:每层 32 个专家,激活 4 个专家,活跃参数约为 3.6 B 。

这样能在保持模型表达能力的同时,大幅降低每次推理的计算与内存成本。

2.2 高效推理机制与优化技术

  • MXFP4 量化:MoE 权重采用4位量化,显存占用显著下降,使 gpt-oss-120b 能在 80GB GPU 上运行,gpt-oss-20b 可在 16 GB 内存设备上本地运行。

  • 长上下文支持:通过 Rotary Position Embeddings 与 YaRN 技术,将上下文长度扩展至 131,072 tokens,适合长文档理解与复杂推理。

  • Attention 机制优化:混合局部稠密和带稀疏带的 Attention,组查询 Attention(Grouped Query Attention)减少延迟与内存占用。

  • Harmony 响应格式:采用统一响应格式并开源 o200k_harmony tokenizer,方便开发者统一接入 behavior 和规范。

gpt-oss系列不仅在标准任务中表现出色,其推理能力的优化也让它在多个实际应用中成为首选。两个模型的参数调整可以根据具体需求灵活设置,支持低、中、高三种推理力度,满足不同延迟需求的应用场景。开发者还可以根据具体需求,进行模型微调,以进一步优化其在特定任务中的表现。

2.3 模型对比

在多个标准化测试中,gpt-oss系列的表现相当突出,尤其是在MMLU、GPQA、以及竞赛数学等领域。以下是gpt-oss-120b和gpt-oss-20b与gpt-o3和o4-mini的对比数据:

三、模型部署

参考文档:How to run gpt-oss with vLLM

1. 安装相关依赖

1.1 uv 安装

# 安装vllm
uv venv --python 3.12 --seed
source .venv/bin/activate
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# 启动服务器并下载模型
# For 20B
vllm serve openai/gpt-oss-20b# For 120B
vllm serve openai/gpt-oss-120b

1.2 conda 安装

# 创建虚拟环境
conda create -n gpt_oss_vllm python=3.12
conda activate gpt_oss_vllm# 安装vllm
# 安装 PyTorch-nightly 和 vLLM
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
# 安装 evalscope(评测工具,可选)
pip install evalscope[perf] -U

启动服务并下载模型

使用ModelScope下载模型(推荐):

VLLM_ATTENTION_BACKEND=TRITON_ATTN_VLLM_V1 VLLM_USE_MODELSCOPE=true vllm serve openai-mirror/gpt-oss-20b --served-model-name gpt-oss-20b --trust_remote_code --port 8801

使用HuggingFace下载模型:

VLLM_ATTENTION_BACKEND=TRITON_ATTN_VLLM_V1 vllm serve openai/gpt-oss-20b --served-model-name gpt-oss-20b --trust_remote_code --port 8801

1.3 Transformers 运行 gpt-oss

官方文档: https://cookbook.openai.com/articles/gpt-oss/run-transformers 

四、模型调用示例

vLLM 公开了与聊天完成兼容的 API和与响应兼容的 API,因此无需进行太多更改即可使用 OpenAI SDK。这是一个 Python 示例:

from openai import OpenAIclient = OpenAI(base_url="http://localhost:8000/v1",api_key="EMPTY"
)result = client.chat.completions.create(model="openai/gpt-oss-20b",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Explain what MXFP4 quantization is."}]
)print(result.choices[0].message.content)response = client.responses.create(model="openai/gpt-oss-120b",instructions="You are a helfpul assistant.",input="Explain what MXFP4 quantization is."
)print(response.output_text)

五、Debug

如果使用vllm部署模型时出现错误:AssertionError: Sinks are only supported in FlashAttention 3

解决方法:部署服务时添加:VLLM_ATTENTION_BACKEND=TRITON_ATTN_VLLM_V1


总结

OpenAI的gpt-oss系列模型凭借其强大的推理能力和广泛的应用场景,成为了开发者手中的有力工具。其开源特性、强大的定制能力和优化的推理性能,使其在AI开发和应用中具有巨大的潜力。随着AI技术的不断发展,gpt-oss系列无疑为更多的开发者提供了探索、创新和实现突破的可能。

http://www.xdnf.cn/news/18477.html

相关文章:

  • 深入理解MySQL Ⅳ -- SQL性能分析工具
  • 文件操作NIO Files的简单使用
  • InfluxDB 查询性能优化实战(一)
  • SCAU学习笔记 - 自科三面前端方向实战演示
  • Disruptor核心接口EventHandler解析
  • 【Techlog】01入门-井筒数据整合软件的基本认识
  • C5.6:双电源发射极偏置、特殊类偏置、PNP型偏置电路
  • ODPS 十五周年实录 | 为 AI 而生的数据平台
  • 机器学习(Machine Learning, ML)
  • 项目1其二(验证码、jwt)
  • 《算法导论》第 33 章 - 计算几何学
  • 关于uniappx注意点1 - 鸿蒙app
  • 3ds Max 流体模拟终极指南:从创建到渲染,打造真实液体效果
  • 模拟tomcat接收GET、POST请求
  • 元宇宙的硬件设备:从 VR 头显到脑机接口
  • 【数据库】Oracle学习笔记整理之六:ORACLE体系结构 - 重做日志文件与归档日志文件(Redo Log Files Archive Logs)
  • Navicat Premium v17.2.3
  • Advanced Math Math Analysis |01 Limits, Continuous
  • 力扣hot100:最大子数组和的两种高效方法:前缀和与Kadane算法(53)
  • 学习设计模式《二十三》——桥接模式
  • uniapp:h5链接拉起支付宝支付
  • 有向图(Directed Graph)和有向无环图(Directed Acyclic Graph,DAG)代码实践
  • pcl求平面点云的边界凸包点
  • 池化技术分析
  • GISBox工具:FBX到3DTiles文件转换指南
  • Eclipse 里Mybatis的xml的头部报错
  • 仿真驱动的AI自动驾驶汽车安全设计与测试
  • JVM基础知识总结
  • 深入解析FTP核心术语03
  • PWA》》以京东为例安装到PC端