01.前言
时隔N年,OpenAI开放模型权重啦!欢迎使用gpt-oss 系列,专为强大的推理、代理任务和多用途开发场景设计。
OpenAI本次发布了两种开放模型:
gpt-oss-120b
—— 适用于生产环境、通用目的和高推理需求的场景,可以装入单个 H100 GPU(117B 参数,其中 5.1B 激活参数)gpt-oss-20b
—— 适用于低延迟以及本地或特定用途的场景(21B 参数,其中 3.6B 激活参数)
模型链接
- gpt-oss-120b:
https://modelscope.cn/models/openai-mirror/gpt-oss-120b
- gpt-oss-20b:
https://modelscope.cn/models/openai-mirror/gpt-oss-20b
02.亮点
宽松的 Apache 2.0 许可证:
自由构建,无 copyleft 限制或专利风险——非常适合实验、定制和商业部署。
可配置的推理努力:
根据您的具体使用场景和延迟需求轻松调整推理努力(低、中、高)。
完整的思维链:
完全访问模型的推理过程,便于调试并增加对输出的信任。它不打算向最终用户展示。
可微调:
通过参数微调完全自定义模型以适应您的特定使用场景。
代理能力:
使用模型的原生功能进行函数调用、网页浏览(https://github.com/openai/gpt-oss/tree/main?tab=readme-ov-file#browser)、Python 代码执行(https://github.com/openai/gpt-oss/tree/main?tab=readme-ov-file#python) 和结构化输出。
原生 MXFP4 量化:
模型使用原生 MXFP4 精度训练 MoE 层,使得 gpt-oss-120b
可以在单个 H100 GPU 上运行,而 gpt-oss-20b
模型可以在 16GB 内存内运行。
03.推理示例
Transformers
您可以使用 gpt-oss-120b
和 gpt-oss-20b
与 Transformers。
要开始,请安装必要的依赖项以设置您的环境:
pip install -U transformers kernels torch
设置完成后,您可以通过运行以下代码片段来运行模型:
from modelscope import pipeline import torch model_id = "openai-mirror/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])
vLLM
vLLM推荐使用uv进行Python依赖管理。您可以使用vLLM来启动一个与OpenAI兼容的web服务器。以下命令将自动下载模型并启动服务器。
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_USE_MODELSCOPE=true vllm serve openai-mirror/gpt-oss-120b
Ollama
如果您想在消费级硬件上运行gpt-oss,可以在安装Ollama后通过运行以下命令来使用Ollama。
# gpt-oss-120b ollama run gpt-oss:120b
或者你也可以直接使用ModelScope社区上的众多GGUF版本的模型,例如
# gpt-oss-20b ollama run modelscope.cn/ggml-org/gpt-oss-20b-GGUF
LM Studio
如果您正在使用LM Studio(https://lmstudio.ai/),可以使用以下命令下载模型。
# gpt-oss-120b lms get openai/gpt-oss-120
04.下载模型
您可以直接从ModelScope SDK在ModelScope上下载模型权重:
modelscope download openai-mirror/gpt-oss-120b --local_dir gpt-oss-120b/ pip install gpt-oss python -m gpt_oss.chat model/
05.推理级别
您可以根据任务需求调整三个级别的推理水平:
- 低: 适用于一般对话的快速响应。
- 中: 平衡速度与细节。
- 高: 深入且详细的分析。
推理级别可以在系统提示中设置,例如,“Reasoning: high”。
06.工具使用
gpt-oss模型非常适合于:
- 网页浏览(使用内置浏览工具)
- 带有定义模式的功能调用
- 如浏览器任务等代理操作
07.微调
我们介绍使用ms-swift对gpt-oss-20b进行自我认知训练。ms-swift是魔搭社区官方提供的大模型与多模态大模型训练部署框架。
ms-swift开源地址:
https://github.com/modelscope/ms-swift
我们将展示可运行的微调demo,并给出自定义数据集的格式。
在开始微调之前,请确保您的环境已准备妥当。
# pip install git+https://github.com/modelscope/ms-swift.git git clone https://github.com/modelscope/ms-swift.git cd ms-swift pip install -e . pip install "transformers>=4.55"
自定义数据格式
如果您需要自定义数据集微调模型,我们建议将数据准备成以下格式。
快思考:
{"messages": [{"role": "user", "content": "浙江的省会在哪?"}, {"role": "assistant", "content": "浙江的省会在杭州。"}]}
慢思考:
{"messages": [{"role": "user", "content": "浙江的省会在哪?"}, {"role": "assistant", "content": "<|channel|>analysis<|message|>thinking content...<|end|><|start|>assistant<|channel|>final<|message|>浙江的省会在杭州。"}]}
使用ms-swift推理原始模型自我认知:
CUDA_VISIBLE_DEVICES=0 \ swift infer \ --model openai-mirror/gpt-oss-20b \ --stream true
编辑
自我认知微调训练脚本:
# 42GB CUDA_VISIBLE_DEVICES=0 \ swift sft \ --model openai-mirror/gpt-oss-20b \ --train_type lora \ --dataset 'AI-ModelScope/alpaca-gpt4-data-zh#500' \ 'AI-ModelScope/alpaca-gpt4-data-en#500' \ 'swift/self-cognition#500' \ --torch_dtype bfloat16 \ --num_train_epochs 1 \ --per_device_train_batch_size 1 \ --per_device_eval_batch_size 1 \ --router_aux_loss_coef 1e-3 \ --learning_rate 1e-4 \ --lora_rank 8 \ --lora_alpha 32 \ --target_modules all-linear \ --gradient_accumulation_steps 16 \ --eval_steps 50 \ --save_steps 50 \ --save_total_limit 2 \ --logging_steps 5 \ --max_length 2048 \ --output_dir output \ --warmup_ratio 0.05 \ --dataloader_num_workers 4 \ --model_author swift \ --model_name swift-robot
显存占用:
编辑
训练完成后,使用以下命令进行推理:
CUDA_VISIBLE_DEVICES=0 \ swift infer \ --model output/vx-xxx/checkpoint-xxx \ --stream true \ --max_new_tokens 2048
编辑
推送模型到ModelScope:
swift export \ --model output/vx-xxx/checkpoint-xxx \ --push_to_hub true \ --hub_model_id '<your-model-id>' \ --hub_token '<your-sdk-token>'
点击链接, 即可跳转模型链接