原文出处:gpt-oss Safeguard Guide 原作者:OpenAI · 许可证:MIT License 中文译本由诸葛AI学院整理,仅供学习参考,版权归原作者与 OpenAI 所有。
导读与概览
ROOST 和 OpenAI 联合编写了这份指南,讲三件事:怎么写策略提示词(policy prompt)才能把 gpt-oss-safeguard 的推理能力用到最大(模型名里的 safeguard,就是"安全护栏"的意思),做多深度分析时策略该写多长,以及怎么把这个模型的推理输出接进生产环境的信任与安全(Trust & Safety,下文简称 T&S)系统。
gpt-oss-safeguard 是什么?
gpt-oss-safeguard 是第一个专门为安全分类任务训练的开放权重推理模型,用来按可定制的策略对文本内容做分类。它是 gpt-oss 的一个微调版本,设计目标是执行你提供的、白纸黑字写出来的策略。这就让"自带策略"的信任与安全 AI 成为可能:分类决策由你自己的分类体系(taxonomy)、定义和阈值来主导。策略写得好,就能释放 gpt-oss-safeguard 的推理能力,让它处理微妙的内容、解释擦边的判定、跟上上下文的变化。
关于 OpenAI 内部如何使用 gpt-oss-safeguard 的内部版本,可以读这篇介绍。
大语言模型作为"安全模型",可以按两种方式来理解:
- 微调型安全模型:底子是一个通用推理模型(比如 gpt-oss),经过训练,学会在与用户的交互中给出安全的回应。
- 预制型安全模型(如 ShieldGemma、LlamaGuard、RoGuard 等):出厂就自带"什么算不安全"的定义和固定的策略分类体系。
gpt-oss-safeguard 是为信任与安全的工作流专门打造的。它是一个遵循策略的模型,能可靠地解读并执行你自己写的标准,还能告诉你它为什么做出这个判定。这种以推理为核心的设计,让它很适合接进一个强调可审计、可定制的大型安全系统。
怎么用 gpt-oss-safeguard
和 gpt-oss 模型家族的其他成员一样,这是一个开放源码、开放权重的模型,你可以跑在本地,也可以集成进自己的基础设施。它按 harmony 响应格式设计。Harmony 是一套结构化的提示词接口,让 gpt-oss-safeguard 能调用完整的推理栈,并保证输出一致、格式规范。
gpt-oss 家族(含 gpt-oss-safeguard)在服务器上的运行方式:
- vLLM(适合 NVIDIA H100 这类专用 GPU)
- HuggingFace Transformers(适合消费级 GPU)
- Google Colab
在本地跑的方式:
谁该用 gpt-oss-safeguard
gpt-oss-safeguard 面向需要实时上下文理解和规模化自动化的用户,包括:
- ML/AI 工程师:在做信任与安全系统,需要灵活的内容审核(content moderation)能力
- 信任与安全工程师:在建或改进审核、信任与安全、平台诚信方面的流水线
- 技术项目经理:负责推进内容安全项目
- 开发者:做的项目或应用需要基于策略、能看懂上下文的内容审核
- 策略起草者:负责界定组织接受哪些内容,想测试策略边界、生成示例、评估内容
安全调优过的模型,只要提示词给得清晰、有结构,审核任务就做得很好。本指南整理的是审核系统上生产后总结的关键经验,重点是提示词结构、输出格式和长度优化。
用 HuggingFace Transformers 跑 gpt-oss-safeguard
Hugging Face 的 Transformers 库提供了一套灵活的办法,在本地或服务器上加载和运行大语言模型。这份指南带你用 Transformers 跑 OpenAI gpt-oss 系列模型,可以用高层 pipeline,也可以用底层 generate 调用直接传原始令牌(token)ID。跟服务器交互最简单的方式是 transformers chat 命令行:
bash
transformers chat localhost:8000 --model-name-or-path openai/gpt-oss-safeguard-20b
或者用 cURL 发 HTTP 请求,比如:
```bash
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-oss-safeguard-20b",
"stream": true,
"messages": [
{ "role": "system", "content": "
```
更多用法,比如把 transformers serve 接到 Cursor 等工具里,都写在官方文档里。
用 Ollama 跑 gpt-oss-safeguard
Ollama 原生支持 gpt-oss-safeguard 的 20B 和 120B 两个模型。下面这些命令会自动下载模型并在你的设备上运行。
gpt-oss-safeguard:20b
bash
ollama run gpt-oss-safeguard:20b
gpt-oss-safeguard:120b
bash
ollama run gpt-oss-safeguard:120b
要用 gpt-oss-safeguard 模型做应用或工具时,Ollama 支持 OpenAI 兼容 API、Ollama 自己的 API,也有 Python 和 JavaScript 的 SDK。更多信息见 Ollama 文档。
用 LM Studio 跑 gpt-oss-safeguard
你也可以用 LM Studio 在本地跑这些模型,它提供兼容 OpenAI Chat Completions 和 Responses API 的接口。可以去 LM Studio 的 gpt-oss-safeguard 页面看看,或直接运行下面的命令下载对应模型:
gpt-oss-safeguard-20b
bash
lms get openai/gpt-oss-safeguard-20b
gpt-oss-safeguard-120b
bash
lms get openai/gpt-oss-safeguard-120b
用 vLLM 跑 gpt-oss-safeguard
vLLM 官方建议用 uv 管理 Python 依赖。下面的命令会自动下载模型并启动服务:
```shell uv pip install vllm==0.10.2 --torch-backend=auto
vllm serve openai/gpt-oss-safeguard-120b ```
理解 harmony 响应格式
gpt-oss-safeguard 使用 harmony 提示格式,输出既有结构又能给出推理过程。信任与安全的工作流必须能看懂并审计每一次判定、每一次分类是怎么来的,这一点就尤为关键。在 harmony 格式下,oss-safeguard 把回复拆成两部分:
- 推理通道(reasoning channel): 模型在这里过一遍策略,考虑边缘情况,讲清楚自己的逻辑
- 输出通道(output channel): 你指定的那种格式的分类判定结果
通过 harmony,你可以控制 oss-safeguard 推理的深度:在系统消息里把 reasoning_effort 参数设为 low、medium 或 high。不设置时,模型默认用 medium。推理力度越高,oss-safeguard 会考虑越多因素,会跨越多段策略去追查,能处理规则之间的复杂相互作用。力度越低,回复越快,适合直截了当的分类任务。
如果你用 vLLM(推荐给多数用户)或其他以聊天消息为输入方式的推理方案,把请求组织成聊天消息的格式时,harmony 会自动套用:
- 系统消息: 你的策略提示词(想控制推理深度,就在系统消息里写上 Reasoning: high 之类的话)。
- 用户消息: 要分类的内容。
oss-safeguard 怎么用策略提示词
oss-safeguard 的设计,就是把你写的策略当作裁决逻辑。多数模型基于训练时学到的特征给出一个置信分,策略一变就得重新训练;oss-safeguard 不同,它的判定由推理支撑,边界由你提供的分类体系划定。这让 T&S 团队可以把 oss-safeguard 作为一层对齐策略的推理层,放进现有的审核或合规系统里。这也意味着更新或测试新策略可以即刻生效,不用重训整个模型。
给 gpt-oss-safeguard 写有效的策略提示词
策略组织得像一本 T&S 政策手册而不是文章时,oss-safeguard 表现最好。如果你们已经有一套成文的策略,基础就很理想。用标题和清晰的分类,模型才能高效地找到各条定义。给团队写过政策的人,对这种做法应该不陌生。
理解策略提示
策略提示词划定的是模型行为的操作边界。它和写给人类审核员的内容政策、平台政策是一个道理:要写清楚什么构成违规、什么允许,以及怎么把这个区别变成一个判定,传进 T&S 系统的下游环节。
有效的策略提示词讲究结构,目的是区分相似的内容类型,抓得住微妙的、暗语式的、拐弯抹角的违规,又能在边缘样本上避免误报(false positive)。可以把它想象成政策文档加上训练样例的合体。
策略提示词的结构
策略提示词应当分成四个独立的部分。
- 指令(Instruction): 模型必须做什么,按什么方式回答。
- 定义(Definitions): 关键术语的简明解释。
- 判定标准(Criteria): 违规内容和不违规内容怎么区分。
- 示例(Examples): 贴近判定边界的简短具体实例。想分进来的内容和不想分进来的内容,两边都得有示例。
oss-safeguard 是按结构化审核任务调优的,它期待明确的回答指令。策略提示词如果遵循一致的套路,把期望的回答与输出格式写清楚,效果通常更好。harmony 格式的结构化通道,让 oss-safeguard 可以先把这几段内容推理完整,再只输出最终标签:
```markdown
策略名称
INSTRUCTIONS
描述你要求 oss-safeguard 做什么、应该怎么回答。
DEFINITIONS
讲清楚关键术语和上下文。
VIOLATES (1)
描述应当标记的行为或内容。
SAFE (0)
描述不应当标记的内容。
EXAMPLES
提供 4-6 条标了 0 或 1 的短示例。
Content: [INPUT] Answer (0 or 1): ```
想少出误报、少出混乱,就别用"一般来说""通常"这类词。确实存在模棱两可的情况,就加一条转人工审核的升级路径。对付地区差异和语言差异,这一招尤其管用。
优先级和先后关系要写明,模型才知道规则打架时听谁的。同一份内容触犯多条策略时,要定义哪一条说了算。
选对策略长度
策略长度是控制 gpt-oss-safeguard 对你的规则能推理多深的关键旋钮。更长的策略细节更多,能应对复杂情况,但也会影响输出和响应。用 harmony 响应格式时,模型处理长策略更可靠,因为推理发生在隐藏的分析通道里,不在可见的最终输出里。
用 https://platform.openai.com/tokenizer 可以查你的提示词有多长。gpt-oss-safeguard 在约 10,000 token 的策略长度上也能给出像样的输出,但早期测试表明最佳区间是 400-600 token。没有放之四海皆准的写法,重要的实验,找到适合你自己的长度。把策略长度当成一笔"上下文预算":太短,模型缺细节;太长,模型有混乱的风险。给人写政策要让人看得懂,也是同一个道理。同理,要给模型留够输出 token 来生成回复。模型是一边推理一边作答的,输出 token 要留足空间,最好别设输出上限,让它有足够余地推理完策略。如果你想限制推理耗时,更合适的办法是把推理力度(reasoning effort)调成 low。
如果策略较长、类别较多,可以考虑先把每一段策略压缩到 300-600 token(含定义、不允许的类别,违规与不违规各留 1-2 个示例)。
只要把多条策略全放进提示词里,oss-safeguard 也能同时评估它们。不过我们发现,策略加多了,准确率会有幅度小但有实际意义的下降。所以如果你用 oss-safeguard 覆盖多个危害领域,建议反复试验策略的增删。
设计可靠的输出指令
要让 gpt-oss-safeguard 的回答稳定一致,就得给出明确、字面的输出指令。每个策略提示词都该写清模型必须怎么回答,并示范正确的和错误的写法。输出指令定义了 gpt-oss-safeguard 怎么交代最终判定,决定了输出能不能被下游依赖。gpt-oss-safeguard 运行在 harmony 响应格式里,所有输出指令必须做到:
- 明确定义输出格式:模型要返回什么,逐字写清(例如
0/1、JSON 对象、类别标签列表)。 - 需要时带上策略引用:如果你的流程按类别或条款追踪执行,就要求模型返回对应字段;简单的二元输出可以省略。
- 在策略中反复强化:输出指令至少在靠前的位置(INSTRUCTIONS 段)写一次,再在靠后的位置(EXAMPLES 段之前)写一次,让模型在推理全程都保持服从。
二元响应
二元输出把 gpt-oss-safeguard 的推理压缩成一个简单的"是/否"决定。速度比"为什么这么判"重要时可以用它,但要清楚:这样就用不上 gpt-oss-safeguard 最核心的推理强项了。
```markdown Return exactly one character: 0 or 1. Do not include any explanation or punctuation.
0 = Content does NOT violate this policy. 1 = Content violates this policy. ```
带策略引用的输出
类别标签会推动 gpt-oss-safeguard 去推理你的策略里哪一节适用,但不要求详细解释原因。这种格式在保持输出简短的同时,留下了基本的推理透明度。
```
If the content violates this policy, return:
{"violation": 1, "policy_category": "
If the content does NOT violate this policy, return: {"violation": 0, "policy_category": null}
Example: {"violation": 1, "policy_category": "H2.f"} ```
附上判定理由
gpt-oss-safeguard 最厉害的能力之一就是会思考、会推理。模型不能只给内容分类,还得沿着你的策略把逻辑走一遍,指出适用的是哪些具体条款,并说清为什么。当你要求给出理由(rationale)时,gpt-oss-safeguard 会推理得更仔细:它得考虑多段策略,评估它们之间怎么相互作用,再组织出一套讲得通的解释。这种更深的推理,常能抓住简单输出格式会漏掉的细微之处。要最大化 gpt-oss-safeguard 的推理能力,就用这个输出格式。
让模型先做决定,再简短地给出依据。要一段短的、不用一步步展开的推理理由(2-4 个要点或 1-2 句话),并考虑要求它标出策略出处(条款 ID/小节名),让模型既交代怎么想的,也交代为什么这么判。
json
{
"violation": 1,
"policy_category": "H2.f",
"rule_ids": ["H2.d", "H2.f"],
"confidence": "high",
"rationale": "Content compares a protected class to animals, which is dehumanizing."
}
(下篇继续)