《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.pswp.cn/bicheng/93948.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【力扣热题100】双指针—— 接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 注意:答案中不可以包含重复的三元组。输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由…

51单片机拼接板(开发板积木)

一、前言 1.1 背景 读书那会儿(2013年左右)网上接了很多51单片机的设计。 当时有个痛点: 每张板子都是定制的,画板子,打样,写代码需要花费很多时间。 希望有一张板子,能够实现绝大多数单片机的功能&#xf…

使用segment-anything将目标检测label转换为语义分割label

使用segment-anything将目标检测label转换为语义分割label一、segment-anything简介二、segment-anything安装2.1安装方法2.2预训练模型下载三、将目标检测label转换为语义分割label3.1示例代码3.2代码说明一、segment-anything简介 segment-anything是facebookresearch团队开…

【unitrix数间混合计算】3.3 无符号整数标记trait(bin_unsigned.rs)

一、源码 这段代码是用 Rust 语言实现的一个类型级无符号二进制整数系统,通过类型系统在编译时表示和操作二进制数字。这是一种典型的"类型级编程"(type-level programming)技术。 use crate::number::{U0, Bin, Bit, BinInt};/// …

Python基本语法总结

1.类(Class)在Python中类(Class)是面向对象编程(OOP)的核心概念。1.1.类的基本定义最简单的类class Cat:"""这是一个最简单的类"""pass #创建实例 obj Cat()包含方法的类cl…

数据结构05(Java)-- ( 归并排序实质,归并排序扩展问题:小和问题)

前言 本文为本小白🤯学习数据结构的笔记,将以算法题为导向,向大家更清晰的介绍数据结构相关知识(算法题都出自🙌B站马士兵教育——左老师的课程,讲的很好,对于想入门刷题的人很有帮助&#x1f4…

税务专业人员能力构建与发展路径指南

CDA数据分析师证书含金量高,适应了未来数字化经济和AI发展趋势,难度不高,行业认可度高,对于找工作很有帮助。一、税务专业人员的核心能力框架能力维度关键技能要素专业工具与方法论实践输出成果税务法规应用税种政策解读、法规更新…

Linux中rsync使用与inotify实时同步配置指南

Linux中rsync使用与inotify实时同步配置指南 一、rsync 简介 rsync(Remote Sync)是 Linux 系统下的一款高效数据镜像和备份工具,用于在本地或远程同步文件和目录。 支持本地复制、基于 SSH 的远程同步,以及使用自有 rsync 协议的同…

Unicode 字符串转 UTF-8 编码算法剖析

📊 Unicode 字符串转 UTF-8 编码算法剖析 ——从 C# char 到 C wchar_t 的编码转换原理 引用:UTF-8 编解码可视化分析 🔍 1. 算法功能概述 该函数将 Unicode 字符串(C# string)转换为 UTF-8 编码的字节数组&#xf…

php的安全性到底怎么样

PHP作为一种流行的服务器端脚本语言,被广泛应用于Web开发。然而,由于PHP是一种较为灵活的语言,其安全性议题一直备受争议。在这篇文章中,我将从多个方面来讨论PHP的安全性,包括常见的安全漏洞、防范措施以及最佳实践。…

mapbox高阶,结合threejs(threebox)添加建筑glb模型,添加阴影效果,设置阴影颜色和透明度

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言 1.1 ☘️mapboxgl.Map 地图对象 1.2 ☘️mapboxgl.Map style属性 1.3 ☘️threebox loadObj加载模型 二、🍀…

SSM从入门到实战:1.6 Spring数据访问与JDBC模板

👋 大家好,我是 阿问学长!专注于分享优质开源项目解析、毕业设计项目指导支持、幼小初高的教辅资料推荐等,欢迎关注交流!🚀 06-Spring数据访问与JDBC模板 📖 本文概述 本文是SSM框架系列Spri…

下一代IT服务管理:ITIL5会是什么样?

ITIL4发布到现在也就5年多时间,按照以往的更新节奏,ITIL5最早也得2027年之后。但现在IT发展的速度,跟以前完全不是一个量级。AI都快把我们的饭碗抢了(开个玩笑),ITIL要是还按部就班,估计真要被时…

最新研究进展:2023-2025年神经机器翻译突破性成果

文章目录 一、模型架构创新 1.1 混合架构的崛起 1.2 多模态翻译的突破 1.3 大语言模型与NMT的深度融合(2023-2024) 1.4 非自回归翻译(NAT)的效率革命(2024) 二、数据与训练策略优化 2.1 低资源语言翻译的飞跃 2.2 动态数据增强技术 三、效率与部署 3.1 模型压缩与加速 3.…

OpenTelemetry WebSocket 监控终极方案:打通最后一公里

概述 OpenTelemetry,以下简称 OTEL,是由 CNCF 托管的“一站式可观测性标准”,把指标、链路、日志三大信号统一为单一 SDK/API,零侵入地采集从浏览器、移动端到后端、容器、云服务的全栈遥测数据,并支持 40 后端一键导…

VS Code 出现的 Web 视图加载错误和服务工作者注册失败问题解决方案

针对 VS Code 或 Cursor (vscode系)中出现的 Web 视图加载错误和服务工作者注册失败问题,以下是永久性解决方案的完整操作指南:解决方案步骤打开命令面板 使用快捷键 CtrlShiftP(Windows/Linux)或 CmdShift…

【qml-4】qml与c++交互(类型多例)

背景: 【qml-1】qml与c交互第一次尝试(实例注入) 【qml-2】尝试一个有模式的qml弹窗 【qml-3】qml与c交互第二次尝试(类型注册) 【qml-4】qml与c交互(类型多例) 【qml-5】qml与c交互&#…

图数据库如何构筑 Web3 风控防线 聚焦批量注册与链上盗转 悦数图数据库

随着 Web3 生态的不断演进,链上风险呈现出团伙化、隐蔽化和动态化的趋势,传统的单点风控手段已难以应对复杂多变的攻击模式。尤其在批量注册薅羊毛与链上交易盗转洗钱等高频风险场景中,攻击者往往通过伪造身份、跨链操作、多层嵌套转账等方式…

恒流源电路学习

恒流源的设计原理: 如图所示你可以看到右边的的推到公式得到红点处的电压是一个和左边相关的定值,所以呢右边的电流就是电压除以那个4Ω,所以得到右边的电路的电流大体是一个定值,不管你再加什么东西都可以保持这个电流&#xff…

基于生成对抗网络的模糊图像恢复原理与技术实现

1. 引言图像模糊是数字图像处理中的常见问题,其成因包括相机抖动、物体运动、聚焦不良等。传统方法如维纳滤波、Lucy-Richardson 算法等依赖于模糊核估计和逆滤波,在复杂场景下性能有限。生成对抗网络(Generative Adversarial Networks, GAN&…