gpt-oss-recipes
是由 Hugging Face 维护的一个 GitHub 仓库,专注于提供使用 OpenAI GPT OSS 模型的脚本和 Jupyter Notebook 教程。仓库包含了针对 OpenAI 最新开源模型 gpt-oss-120b
和 gpt-oss-20b
的配置和使用示例。这些模型以强大的推理能力和高效的资源占用著称,适合开发者在生产环境或个人设备上运行。仓库中的代码和文档帮助用户快速上手模型推理、微调和部署,覆盖从环境设置到复杂任务的实现。所有内容基于 Apache 2.0 许可证,允许自由使用和修改。
功能列表
- 提供
gpt-oss-120b
和gpt-oss-20b
模型的配置脚本,支持快速切换模型大小。 - 包含环境设置代码,支持 Python 虚拟环境和依赖安装。
- 提供推理示例,展示如何使用模型生成文本或执行工具调用。
- 支持模型微调,包含多语言推理数据集的处理示例。
- 提供与 Transformers、vLLM 和 Ollama 等框架的集成教程。
- 支持在不同硬件(H100 GPU、消费级设备)上运行模型的优化配置。
使用帮助
安装流程
要使用 gpt-oss-recipes
仓库中的脚本,首先需要克隆仓库并设置 Python 环境。以下是详细步骤:
- 克隆仓库
打开终端,运行以下命令克隆仓库到本地:git clone https://github.com/huggingface/gpt-oss-recipes.git cd gpt-oss-recipes
- 创建虚拟环境
建议使用 Python 3.11 创建虚拟环境以确保兼容性。推荐使用uv
工具:uv venv gpt-oss --python 3.11 source gpt-oss/bin/activate
- 安装依赖
安装必要的 Python 包,包括 PyTorch 和 Transformers。运行以下命令:uv pip install --upgrade pip uv pip install torch==2.8.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/test/cu128 uv pip install -U transformers accelerate
- 安装 Triton 内核(可选)
如果硬件支持 MXFP4 量化(如 H100 或 RTX 50xx),可安装 Triton 内核以优化性能:uv pip install git+https://github.com/triton-lang/triton.git@main#subdirectory=python/triton_kernels
配置模型
仓库提供两个模型:gpt-oss-120b
(117B 参数,适合高性能 GPU)和 gpt-oss-20b
(21B 参数,适合消费级硬件)。在脚本中修改 model_path
变量选择模型。例如:
model_path = "openai/gpt-oss-20b" # 选择 20B 模型
# model_path = "openai/gpt-oss-120b" # 选择 120B 模型
脚本会根据模型大小自动配置设备映射和优化设置。
运行推理
仓库包含简单的推理示例,用于生成文本或执行特定任务。以下是一个使用 gpt-oss-20b
模型生成文本的示例:
- 打开
inference.py
文件(或类似脚本)。 - 确保已加载模型和分词器:
from transformers import AutoModelForCausalLM, AutoTokenizer model_id = "openai/gpt-oss-20b" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", torch_dtype="auto")
- 输入提示并生成结果:
messages = [{"role": "user", "content": "如何用 Python 写一个排序算法?"}] inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device) generated = model.generate(**inputs, max_new_tokens=200) print(tokenizer.decode(generated[0]))
- 运行脚本,模型会返回排序算法的 Python 代码示例。
调整推理参数
可以通过系统提示调整推理的详细程度。例如,设置高推理级别:
messages = [
{"role": "system", "content": "Reasoning: high"},
{"role": "user", "content": "解释量子计算的基本原理"}
]
高推理级别会生成更详细的推理过程,适合复杂问题。
微调模型
仓库提供微调示例,基于 Hugging Face 的 TRL 库和 LoRA 技术。以下是微调 gpt-oss-20b
的步骤:
- 下载多语言推理数据集:
from datasets import load_dataset dataset = load_dataset("HuggingFaceH4/Multilingual-Thinking", split="train")
- 配置 LoRA 参数并加载模型:
from transformers import AutoModelForCausalLM from peft import PeftModel, LoraConfig model_name = "openai/gpt-oss-20b" lora_config = LoraConfig(r=8, lora_alpha=32, target_modules=["q_proj", "v_proj"]) model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto") model = PeftModel(model, lora_config)
- 使用 TRL 库进行微调(参考仓库中的
finetune.ipynb
)。 - 保存微调后的模型,用于特定任务如多语言推理。
使用 vLLM 或 Ollama
如果需要快速部署,仓库支持 vLLM 和 Ollama:
- vLLM:启动 OpenAI 兼容的服务器:
uv pip install --pre vllm==0.10.1+gptoss --extra-index-url https://wheels.vllm.ai/gpt-oss/ vllm serve openai/gpt-oss-20b
- Ollama:在消费级硬件上运行:
ollama pull gpt-oss:20b ollama run gpt-oss:20b
特色功能操作
- 工具调用:模型支持函数调用和 Web 搜索。例如,调用天气函数:
tools = [{"type": "function", "function": {"name": "get_current_weather", "description": "获取指定地点的天气", "parameters": {"type": "object", "properties": {"location": {"type": "string"}}}}}] messages = [{"role": "user", "content": "巴黎的天气如何?"}] response = client.chat.completions.create(model="openai/gpt-oss-120b:cerebras", messages=messages, tools=tools)
- 多语言推理:通过微调,模型可生成英语、西班牙语、法语等语言的推理过程。用户可指定推理语言,例如:
messages = [{"role": "system", "content": "Reasoning language: Spanish"}, {"role": "user", "content": "¿Cuál es la capital de Australia?"}]
应用场景
- AI 开发实验
开发者可使用仓库中的脚本测试 GPT OSS 模型在不同任务中的表现,如文本生成、代码生成或问答系统。适合快速原型开发。 - 本地模型部署
企业或个人可在本地设备上部署gpt-oss-20b
,用于隐私敏感的场景,如内部文档处理或客户支持。 - 教育与研究
研究人员可利用微调教程,基于特定数据集(如多语言推理)优化模型,探索大模型在学术领域的应用。 - 生产环境集成
仓库支持通过 vLLM 部署 API 服务器,适合将模型集成到生产环境中,如聊天机器人或自动化工作流。
QA
- 仓库支持哪些模型?
仓库支持gpt-oss-120b
(117B 参数)和gpt-oss-20b
(21B 参数),分别适合高性能 GPU 和消费级硬件。 - 如何选择适合的模型?
如果有 H100 GPU,推荐使用gpt-oss-120b
;如果使用普通设备(16GB 内存),选择gpt-oss-20b
。 - 需要哪些硬件?
gpt-oss-20b
需要 16GB 内存,gpt-oss-120b
需要 80GB GPU(如 H100)。MXFP4 量化可降低资源需求。 - 如何处理模型推理中的错误?
确保使用 harmony 格式处理输入输出。检查硬件兼容性并更新依赖项,如 PyTorch 和 Triton 内核。