GPT-OSS 模型评测最佳实践#
2025年8月6日,OpenAI 发布了两个开源模型:
gpt-oss-120b—— 适用于生产环境、通用目的和高推理需求的场景,可以在单个 H100 GPU 上运行(117B 参数,其中 5.1B 激活参数)gpt-oss-20b—— 适用于低延迟和本地或特定用途的场景(21B 参数,其中 3.6B 激活参数)
下面让我们使用EvalScope模型评测框架,来快速测一下模型的推理性能和基准测试能力吧。
环境准备#
为了更方便的使用模型,并提升推理速度,我们使用 vLLM 启动一个与 OpenAI 格式兼容的 Web 服务。
⚠️ 注意:由于支持gpt-oss模型的vLLM 0.10.1版本还未正式发布(2025.8.6),需要从源码安装vLLM和gpt-oss的依赖。推荐启动一个新的python 3.12环境,避免对现有环境造成影响。
创建并激活新的conda环境:
conda create -n gpt_oss_vllm python=3.12
conda activate gpt_oss_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
启动模型服务
我们在 H20 GPU上成功启动gpt-oss-20b模型服务:
使用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
推理速度测试#
我们使用EvalScope的推理速度测试功能,来评测模型的推理速度。
测试环境:
显卡: H20-96GB * 1
vLLM版本: 0.10.1+gptoss
prompt 长度: 1024 tokens
输出长度: 1024 tokens
运行测试脚本:
evalscope perf \
--parallel 1 10 50 100 \
--number 5 20 100 200 \
--model gpt-oss-20b \
--url http://127.0.0.1:8801/v1/completions \
--api openai \
--dataset random \
--max-tokens 1024 \
--min-tokens 1024 \
--prefix-length 0 \
--min-prompt-length 1024 \
--max-prompt-length 1024 \
--log-every-n-query 20 \
--tokenizer-path openai-mirror/gpt-oss-20b \
--extra-args '{"ignore_eos": true}'
输出如下:
╭──────────────────────────────────────────────────────────╮
│ Performance Test Summary Report │
╰──────────────────────────────────────────────────────────╯
Basic Information:
┌───────────────────────┬──────────────────────────────────┐
│ Model │ gpt-oss-20b │
│ Total Generated │ 332,800.0 tokens │
│ Total Test Time │ 154.57 seconds │
│ Avg Output Rate │ 2153.10 tokens/sec │
└───────────────────────┴──────────────────────────────────┘
Performance Overview
┏━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━┳━━━━━━━━━┳━━━━━━━━━┓
┃Conc. ┃ Rate ┃ Num ┃ RPS ┃ Gen/s ┃ Success ┃
┡━━━━━━╇━━━━━━╇━━━━━━╇━━━━━━╇━━━━━━━━━╇━━━━━━━━━┩
│ 1 │ - │ ... │ 0.15 │ 150.34 │ 100.0% │
│ 10 │ - │ ... │ 0.96 │ 986.63 │ 100.0% │
│ 50 │ - │ ... │ 2.47 │ 2529.14 │ 100.0% │
│ 100 │ - │ ... │ 3.37 │ 3455.61 │ 100.0% │
└──────┴──────┴──────┴──────┴─────────┴─────────┘
基准测试#
我们使用 EvalScope 的基准测试功能,来评测模型的能力。这里我们以 AIME2025 这个数学推理基准测试为例,测试模型的能力。
运行测试脚本:
from evalscope import TaskConfig, run_task
task_cfg = TaskConfig(
model='gpt-oss-20b', # 模型名称
api_url='http://127.0.0.1:8801/v1', # 模型服务地址
eval_type='openai_api', # 评测类型,这里使用openai_api评测
datasets=['aime25'], # 测试的数据集
generation_config={
'extra_body': {"reasoning_effort": "high"} # 模型生成参数,这里设置为高推理水平
},
eval_batch_size=10, # 并发测试的batch size
timeout=60000, # 超时时间,单位为秒
)
run_task(task_cfg=task_cfg)
输出如下:
这里测试结果为0.8,大家可以尝试不同的模型生成参数,多次测试,查看结果。
+-------------+-----------+---------------+-------------+-------+---------+---------+
| Model | Dataset | Metric | Subset | Num | Score | Cat.0 |
+=============+===========+===============+=============+=======+=========+=========+
| gpt-oss-20b | aime25 | AveragePass@1 | AIME2025-I | 15 | 0.8 | default |
+-------------+-----------+---------------+-------------+-------+---------+---------+
| gpt-oss-20b | aime25 | AveragePass@1 | AIME2025-II | 15 | 0.8 | default |
+-------------+-----------+---------------+-------------+-------+---------+---------+
| gpt-oss-20b | aime25 | AveragePass@1 | OVERALL | 30 | 0.8 | - |
+-------------+-----------+---------------+-------------+-------+---------+---------+
更多支持的基准测试可以参考EvalScope文档。
结果可视化#
EvalScope 支持结果可视化,您可以查看模型的具体输出。
pip install 'evalscope[service]'
evalscope service
总结#
通过以上步骤,我们成功地使用 EvalScope 测试了 GPT-OSS 模型的推理速度和基准测试能力。GPT-OSS 模型在推理速度和基准测试上表现出色,适合用于生产环境和高性能需求的场景。