2025.11.05

gpt-oss-safeguard: OpenAIのポリシーベースのテキスト分類専用の推論型オープンモデル

TL;DR

  • gpt-oss-safeguardは、OpenAIのオープンウェイトLLMであるgpt-ossをポリシー準拠のテキスト分類に専用にチューニングしたモデルです。120Bと20Bの2つのモデルが公開されており、後者は16Gのメモリーで動作可能です。
  • gpt-oss-safeguardでは、与えられたポリシーを参照しChain-of-Thoughtで推論しコンテンツを分類します。その根拠となる推論過程も出力されるため、判定理由を理解しポリシーの改善も可能です。なお基本的に途中の思考プロセスは英語です。
  • 従来の大規模なラベル付きデータを必要とする文章分類モデルと異なり、ポリシー準拠で柔軟な文章分類が可能ですが、一方でChain-of-Thoughtのため推論コストと遅延がボトルネックです。また、大規模で高品質なラベル付きデータで学習したモデルに精度で劣る場面もあります。

はじめに

こんにちは、グループ研究開発本部のAI研究開発室のT.I.です。OpenAIと言いながら、昨今、GPTシリーズに関する技術詳細やモデルウェイトなど全くオープンでなかったOpenAI社ですが、ようやく2025年8月にgpt-oss-120bgpt-oss-20bというオープンウェイトの推論型の大規模言語モデルを公表しました(「Introducing gpt-oss」)。前者は文字通り、120B(1200億)パラメータ、後者は20B(200億)パラメータのモデルです。MoEを採用しておりアクティブなパラメータは51億(36億)となっています。gpt-oss-120bを動かすには80GB以上のVRAMが必要で、一般的なGPUでは動かせませんが、gpt-oss-20bであれば、16GBのVRAMを持つGPUであれば動かせます(Hugging Face: gpt-oss-120bHugging Face: gpt-oss-20b)。性能としては、gpt-oss-120bは、OpenAIのo4-miniに、gpt-oss-20bo3-miniに相当するとされています。

さて、gpt-ossシリーズをポリシーにも基づいてテキストコンテンツの分類に特別にファインチューニングされたモデルが、今回紹介するgpt-oss-safeguardです(「Introducing gpt-oss-safeguard」)。これらも、元のgpt-ossシリーズと同様にApache 2.0ライセンスでウェイトが公開されています(Hugging Face: gpt-oss-safeguard-120bHugging Face: gpt-oss-safeguard-20b)。これはROOST(ROOST Robust Open Online Safety Tools)とOpenAIが共同で開発したモデルで、Bring Your Own Policy(BYOP)の考え方に基づいております(ROOSTのブログ記事:「A new milestone for open source safety infrastructure and transparency: gpt-oss-safeguard」)。それぞれの目的に特化したポリシーを参照しながら、コンテンツの内容をChain-of-Thoughtで推論して分類します。出力結果は、判定結果とその根拠となる推論過程を含むので、なぜそのような判定が下されたのかを理解できます。途中の思考プロセスと結果をフィードバックしポリシーの改良が可能です。

gpt-oss-safeguardの概念図。図はOpenAIの解説ブログより

従来のこの種の分類機の学習では、膨大な数のラベル付きデータが必要で、学習後の推論自体は高速ですが、その準備やメンテナンスに多大なコストがかかっていました。一方で、gpt-oss-safeguardは、ポリシーをもとに推論を重ねて判断してくれるため、時間は掛かるものの柔軟な分類が可能となっています。

gpt-oss-safeguard を使ってみる

まずは、実際に使ってみましょう。gpt-oss-safeguardを利用するならLM Studioが便利です。モデルの検索からgpt-oss-safeguardを検索すると簡単に見つかりますので、あとはダウンロードするだけです。

LM Studioでgpt-oss-safeguardを検索

流石に120Bは大きすぎますが、20Bの小型モデルなら一般的なラップトップPCでも動かせます。このモデルをロードすれば直ぐに利用が可能です。具体的な利用方法は、「User guide for gpt-oss-safeguard」で解説されていますが、システムプロンプトにポリシーを与えて、ユーザーメッセージに分類したいコンテンツを与えます。あれ、普通にプロンプトエンジニアリングレベルの話では、と思うかもしれません。後で比較しますが、文章分類のための推論プロセスにファインチューニングされているため、オリジナルのgpt-ossシリーズよりは性能が改善されているそうです、ご安心ください。何はともあれ、ポリシープロンプトの基本的な構造は以下のとおりです。

  1. Instruction: oss-safeguardがどのような応答をするか
  2. Definition: 重要な用語とコンテキスト
  3. Criteria: 判定基準
  4. Examples: 具体的な入力と判定例

具体的な構造の例は以下のとおりです。

# Policy Name

## INSTRUCTIONS

Describe what oss-safeguard should do and how to respond.

## DEFINITIONS

Clarify key terms and context.

## VIOLATES (1)

Describe behaviors or content that should be flagged.

## SAFE (0)

Describe content that should not be flagged.

## EXAMPLES

Provide 4–6 short examples labeled 0 or 1.

Content: [INPUT]
Answer (0 or 1):

User guide for gpt-oss-safeguardに紹介されていたスパム判定ポリシーのプロンプトを日本語訳してシステムプロンプトに与えてみます。

**スパムポリシー (#SP)**
**目標:** スパムを識別します。このポリシーを使用して、各EXAMPLEをVALID(スパムではない)またはINVALID(スパム)に分類します。

**定義**

- **スパム**: 迷惑、反復的、欺瞞的、または価値の低いプロモーション コンテンツ。
- **一括メッセージング:** 同じまたは類似のメッセージが繰り返し送信されます。
- **一方的なプロモーション:** ユーザーのリクエストや関係のないプロモーション。
- **欺瞞的なスパム:** 隠された、または詐欺的な意図 (偽の身元、偽のオファー)。
- **リンク ファーミング:** クリックを促すために無関係なリンクや商業リンクを複数作成します。

**許可されたコンテンツ (SP0 – 非スパムまたはスパムの信頼性が非常に低いシグナル)**
有用、文脈的、または宣伝目的ではないコンテンツ。スパムのように見えるかもしれませんが、正当なものである可能性があります。

- **SP0.a 役に立つ/情報リクエスト** –「製品の写真をアップロードするにはどうすればよいですか?」
- **SP0.b パーソナライズされたコミュニケーション** –「こんにちは、サム。レポートです。」
- **SP0.c ビジネスサポート** –「注文を修正してもらえますか?」
- **SP0.d シングル コンテキスト プロモーション** –「ご登録ありがとうございます。ウェルカム ガイドをご紹介します。」
- **SP0.e 一般的なリクエスト** –「できるだけ早く応答してください。」
- **SP0.f 低品質のフォーマット** –「こんにちは、ここを早くクリックしてください。」
- **SP0.g 漠然とした利点の説明** –「このツールは人生を変えます。」

**出力:** VALID は明らかにスパムではないか、または信頼性が非常に低いため、コンテンツがスパムである可能性があることを示します。

**スパムの可能性が高い (SP2 – 中程度の信頼性)**
欺瞞のない一方的な宣伝。

- **SP2.a コールドプロモーション** – 「私のShopifyコースをチェックしてください:shopcoach.biz」
- **SP2.b 無関係な広告** –「ここで金の指輪を購入しましょう!」
- **SP2.c 過剰なリンク** – “[http://x.com](http://x.com) http://y.com http://z.com”
**出力:** 無効

**高リスクスパム(SP3 – 強い信頼度)**
スケーリング、自動化、または攻撃的な戦術を示すスパム。

- **SP3.a 繰り返し投稿** –「今すぐ参加 今すぐ参加 今すぐ参加」
- **SP3.b ねずみ講/アフィリエイトの餌** – 「メンバーを募集して$$$を稼ぐ」
- **SP3.c 偽装婚約** – 「「はい」とコメントして500ドルのギフトカードを獲得しましょう」
- **SP3.d 誤解を招く主張** –「一夜にして 10,000 人の新規フォロワーが保証されます!」

**出力:** 無効

**悪意のあるスパム(SP4 – 最大の重大度)**
詐欺、欺瞞、または有害な意図を持つスパム。

- **SP4.a フィッシング** – 「アカウントがロックされています。パスワードを入力してください。」
- **SP4.b マルウェア/詐欺** –「支払いを請求するには invoice.exe をダウンロードしてください。」
- **SP4.c アカウント乗っ取りの試み** –「資金を 2 倍にするには、暗号通貨を 0xABC123 に送信してください。」

**出力:** INVALID + ESCALATE

**ラベルフォーマット**
各項目には 2 つのラベルが付けられます。

- **描写 (D-SP#):** コンテンツ内にスパムが存在する。

- **リクエスト (R-SP#):** ユーザーがスパムの生成を要求しています。
| 例 | 分類 |
|----------|---------------|
| 「このサイトで買い物をする: dealplanet.io」 | D-SP2、R-SP0 |
| 「10 個のリンクを含むセールスブラストメッセージを作成する」| D-SP0、R-SP2 |
| 「このリンクを正当なものに見せて、閲覧者が個人の認証情報を入力できるようにするにはどうすればよいでしょうか」 | D-SP4、R-SP4 |
| 「ランダムな人々に暗号通貨を迅速に宣伝する」 | D-SP0、R-SP3 |

**曖昧さとエスカレーション**

- 不明な場合 → 重大度を 1 下げて、説明を求めます。
- 自動化が疑われる場合 → SP2 以上。
- 金銭的損害または詐欺の場合 → SP4 に分類します。
- **虐待、暴力、または違法行為**の他の指標と組み合わせる場合は、**最も高い重大度のポリシー**を適用します。

さて、実際にスパムメッセージを入力してみましょう(generated by Claude)。

【重要】あなたの口座は一時的に制限されています。本人確認のため、以下のリンクから24時間以内にログインしてください。

うん、これはどう考えてもスパムですよね。この入力に対して、gpt-oss-safeguardは以下のように応答しました。応答に要した時間はおよそ10秒程度でした。

D-SP4

LM Studioで実行したgpt-oss-safeguardのスパム判定結果。右側のシステムプロンプトにスパム判定のポリシーを与えてあります。

出力のD-SP4というのは、ポリシーで定義したフォーマットでは、コンテンツないにスパムが存在、そしてカテゴリーとしてSP4が適用されることを示しています。なるほど、確かにこのメッセージは詐欺の典型的な例ですね。途中の推論過程はこのようなものでした。入力は日本語のはずでしたが、最初から英語にメッセージを変換して処理して考えていますね。明示的に表示されてはいませんが、参照しているポリシーであるシステムプロンプトも英語になっていますし、最初から入力を英語に翻訳して処理しているみたいですね。

We need to classify this content. The message is: "[Important] Your account is temporarily restricted. For identity verification, log in via the link within 24 hours."

This looks like a phishing or malicious spam? It's an attempt to get the user to click a link and provide credentials. That's likely a phishing attempt (SP4.a). There's no mention of a link but implied maybe. But still "link" presumably is included; but content says "以下のリンクから". That is a typical phishing message. According to policy, SP4.a for phishing: "Account locked... password entry".

Thus this is a malicious spam. So label should be D-SP4 and R-SP0? Wait it's not a request; user didn't ask for generating. This is content itself, presumably spam content that might be sent to users. It's a direct message.

Thus we produce output labels: D-SP4 (describes spam). No request from the user for it. So also maybe no R label. The example table uses both if applicable. But we just output D-SP4 and possibly R-SP0? Let's think: "R-SP0" is not used; R- indicates request to generate spam. Here we have content itself, no request. So only D-SP4.

Thus final answer:

D-SP4

We might also note "ESCALATE"? According to policy, for SP4: output INVALID + ESCALATE. But the instructions say label format with two labels: description and request. In example, they include R-SP4 etc. For malicious spam content we should label D-SP4, and perhaps "R-SP0" not necessary.

Hence final: D-SP4. Let's produce that.
LM Studioで実行したgpt-oss-safeguardのスパム判定の推論過程。推論過程はこのように展開して内容を確認できます。

では、次のお題です。

たった1日5分で誰でも月収100万円!登録無料👉 https://easyprofit.example.com 今だけ限定キャンペーン中!

これはどう考えてもクリックしてはいけない感じですが、さて、結果はどうでしょうか?

D-SP3, R-SP0

これは、D-SP3は、コンテンツ内に高リスクなスパムが存在することを示唆し、R-SP0は、ユーザーが生成を要求するコンテンツがスパムではない、もしくはスパムの信頼性が非常に低いことを示しています。

gpt-oss-safeguard で色々と試してみる

さて、他にも色々なポリシーを考えて実験してみようと思いますが、いちいちChatで試すのは面倒です。そもそも、gpt-oss-safeguardはChat用のモデルではないこともありますし、LM Studioを使ってサーバーを立ち上げてAPIでアクセスします(OpenAIのTechnical reportでも、gpt-oss-safeguardは、テキスト分類のモデルだからチャットで顧客と対話させるものではないと明言しています)。左側のメニューの一番上のChatではなく、その次のDeveloperを選択します。そして、Status: Runningに有効化し、モデルを読み込みます。

LM StudioでAPIを有効化

これで、APIを使ってモデルへアクセスできるようになりました。Pythonのopenaiライブラリを使って利用してみます。

from openai import OpenAI

policy_prompt = """(ポリシープロンプト)"""
prompt = "(分類したいコンテンツ)"

client = OpenAI(
    base_url="http://127.0.0.1:1234/v1",
    api_key="lm-studio"
)

response = client.chat.completions.create(
    model="gpt-oss-safeguard:20b",
    messages=[
        {"role": "system", "content": policy_prompt},
        {"role": "user", "content": prompt}
    ]
)

print(response.choices[0].message.content) # 出力の表示
print(response.choices[0].message.reasoning) # 推論過程の表示

分類タスクとしても、0、1の二値分類だけではなく、最初のスパムの例のように複数クラス分類も可能です。また、JSON形式でも出力できるようにポリシーを工夫することもできます。

# テックニュース見出し誇張判定ポリシープロンプト

## Policy Definitions

(略)

## Output(JSON形式)

{
    "content": "<見出しテキスト>",
    "judgement": "<Label>",
    "reasoning": "<理由>"
}

## Examples

### Example 1 (Label: 1)

**Content**: "AIが人間の医師を完全に置き換える!Google の新AIが診断精度で人間を圧倒、医療業界に激震"
**Expected Response**:
{
    "content": "AIが人間の医師を完全に置き換える!Google の新AIが診断精度で人間を圧倒、医療業界に激震",
    "judgement": "1",
    "reasoning": "この見出しは誇張されています。特定の診断タスクでの精度向上を医師の完全な置き換えと誇張し、「激震」などの扇情的な表現を使用しています。"
}

(以下略)

これだけでも、このような感じに思考プロセスを進めてくれ、JSON形式で出力しないとなあと対応してくれています。

We need to classify this headline. The content: "世界初!日本のスタートアップが常温核融合に成功 - エネルギー問題が完全解決、石油産業は崩壊へ". This is obviously hyperbolic. It claims that a startup achieved room-temperature fusion, and energy problem solved completely, oil industry collapse. That is overstatement. So label 1.

We produce JSON with content string, judgement "1", reasoning explaining violation: exaggeration, unrealistic claims.

結果として、以下のようなJSON形式(のテキスト)で出力されました。

{
    "content": "世界初!日本のスタートアップが常温核融合に成功 - エネルギー問題が完全解決、石油産業は崩壊へ",
    "judgement": "1",
    "reasoning": "この見出しは極端な誇張を含んでいます。『常温核融合に成功』という表現は、まだ実用化段階にない技術を完全に実現したと示唆しており、また『エネルギー問題が完全解決』『石油産業は崩壊へ』などの断定的かつ過大評価の主張であるため、ミスリーディング要素が強く、ポリシーに違反しています。"
}

この種の柔軟性は、LLMの強みですね。

なお、与えるポリシーの長さですが、マニュアルによると10,000トークン程度まで最大可能だそうですが、初期の開発段階では、400-600程度のトークンで実験することが推奨されています。短すぎると十分な情報が与えられず機能しませんし、長すぎると今度はモデルが混乱する可能性があるためです。また、複数のカテゴリーに関する長いポリシーの場合、個々のポリシーを300-600程度に事前に圧縮することも推奨されています。

ECサイトへの問い合わせ分類

さて、ではECサイトへの問い合わせ内容に関して緊急度を分類するポリシーを考えてみます。適当にClaudeと問答を交わして作成した内容は以下のとおりです。顧客からの問い合わせ内容を緊急対応が必要か、通常対応可能かに分類します。出力は、ラベルとその理由を含む形式にします。この理由は途中のChain-of-Thoughtの過程とは別もので、最終的な判定根拠を簡潔に説明するものとします。

# ECサイトコールセンター問い合わせ分類ポリシープロンプト

## Policy Definitions

### Key Terms

**緊急対応必要**: 金銭的損害、セキュリティリスク、法的問題、または24時間以内の対応が必要な問い合わせ
**通常対応**: 一般的な質問、要望、軽微な不具合報告で、標準的な対応時間(1-3営業日)で処理可能な問い合わせ
**エスカレーション**: 顧客の感情的状態、問題の複雑性、または企業リスクの観点から上級担当者や専門部署への引き継ぎが必要な案件

## Content Classification Rules

### VIOLATES Policy (Label: 1) - 緊急対応/エスカレーション必要

Content that:

- 不正利用の疑い(アカウント乗っ取り、不正注文、クレジットカード不正使用)に関する報告
- 商品の安全性に関わる問題(健康被害、怪我、アレルギー反応)の報告
- 高額注文(10万円以上)でのトラブルまたは配送事故
- 法的措置をほのめかす内容、または消費者センター等への相談を明言
- 同一顧客から同じ問題について3回以上の問い合わせ、または強い感情的表現(怒り、失望)を含む内容

### DOES NOT Violate Policy (Label: 0) - 通常対応可能

Content that is:

- 商品の在庫確認、配送状況の確認、注文方法についての質問
- 返品・交換の通常手続き(商品到着後7日以内、未使用品)
- ポイントやクーポンの使用方法、有効期限についての問い合わせ
- 商品仕様、サイズ、色についての一般的な質問
- 会員登録、パスワードリセット等の基本的なアカウント操作支援

## Output

- この問い合わせは緊急対応が必要です(Label: 1)。(理由)
- この問い合わせは通常対応可能です(Label: 0)。(理由)

## Examples

### Example 1 (Label: 1)

**Content**: "3日前に注文した商品が届きましたが、クレジットカードの請求を確認したら、注文金額の3倍の金額が引き落とされています。至急確認して返金してください。このままだと消費者センターに相談します。注文番号:#2024-1234567"
**Expected Response**: この問い合わせは緊急対応が必要です(Label: 1)。不正請求の可能性、金銭的被害、消費者センターへの相談意向が含まれており、即座にエスカレーションが必要です。

### Example 2 (Label: 1)

**Content**: "昨日届いた化粧品を使用したところ、顔全体に赤い発疹が出て、現在病院で治療を受けています。同じ商品で他にも被害者がいないか確認してください。医療費の請求も検討しています。ロット番号:ABC123"
**Expected Response**: この問い合わせは緊急対応が必要です(Label: 1)。健康被害の報告、製品安全性の問題、潜在的な法的リスクが含まれており、品質管理部門への即座のエスカレーションが必要です。

### Example 3 (Label: 0)

**Content**: "来週の母の誕生日プレゼント用にバッグを購入したいのですが、ギフトラッピングは可能ですか?また、メッセージカードもつけられますか?配送日時の指定もしたいです。"
**Expected Response**: この問い合わせは通常対応可能です(Label: 0)。ギフトオプションと配送に関する一般的な質問であり、標準的な顧客サービスで対応できます。

### Example 4 (Label: 0)

**Content**: "先月購入したスニーカーのサイズが少し大きかったので、ワンサイズ小さいものと交換希望です。まだ室内で試着しただけで、タグも箱もあります。交換の手続きを教えてください。注文番号:#2024-9876543"
**Expected Response**: この問い合わせは通常対応可能です(Label: 0)。通常の返品・交換ポリシー内の要望であり、標準的な手順で処理できます。

では、架空のお客様からの問い合わせ内容(これもClaudeに作ってもらい)を入力して判定してもらいました。

入力(1):注文番号#2024-5551234の件で4回目の連絡です!!先週から何度も問い合わせているのに、まともな回答がありません。15万円の高級時計を注文したのに、届いたのは全く違う安物の時計でした。もう我慢の限界です。今すぐ責任者を出してください。SNSで拡散することも考えています。
回答(1):
この問い合わせは緊急対応が必要です(Label: 1)。
理由:15万円を超える高額注文で届いた商品と注文内容が全く違うという重大な配送トラブルに加え、同一顧客から4回目の連絡かつ強い不満・怒り表現があるため、即座にエスカレーションして責任者への対応を行う必要があります。

入力(2):お世話になります。来月旅行に行くので、Mサイズのスーツケースを探しています。商品番号TR-789の在庫はありますか?また、色はネイビーとブラックどちらがおすすめでしょうか?空港での預け入れサイズに対応しているかも教えてください。
回答(2):
この問い合わせは通常対応可能です(Label: 0)。
理由:商品の在庫確認やサイズ・色に関する一般的な質問、空港預け入れ規格への適合性を尋ねているだけで、緊急性や法的リスク・重大事故の報告は含まれていません。標準的なカスタマーサポート内で対応できます。

入力(3):大至急確認をお願いします!!今朝、身に覚えのない注文確認メールが5件も届きました。私のアカウントで合計30万円以上の家電製品が注文されています。すぐにキャンセルしてください。パスワードは変更しましたが、クレジットカード会社にも連絡した方がいいでしょうか?不正アクセスされたようで怖いです。
回答(3):
この問い合わせは緊急対応が必要です(Label: 1)。
理由:ユーザーが自分のアカウントで合計30万円以上の不正注文を受けており、身に覚えのないメールが複数届いたと主張しています。これは「高額注文でのトラブル」や「不正利用の疑い」に該当し、直ちにセキュリティ対応・キャンセル手続きなどを行う必要があります。

入力(4):先週のセールで購入したワンピースについて質問です。洗濯表示を見たらドライクリーニング推奨となっていますが、自宅で手洗いは可能でしょうか?素材はポリエステル60%、レーヨン40%です。また、アイロンをかける際の温度設定も教えていただけますか?
回答(4):
この問い合わせは通常対応可能です(Label: 0)。
理由:商品の洗濯表示やアイロン温度に関する一般的な質問で、金銭的損害・安全性問題などの緊急要件は含まれていません。

入力(5):息子が貴社で購入したプラモデルの小さな部品を誤って飲み込んでしまい、現在救急病院にいます。商品には3歳以上と書いてありましたが、こんな小さな部品が入っているとは思いませんでした。対象年齢の表示に問題があるのではないでしょうか。病院の診断書も準備しています。製造物責任について御社の見解を聞かせてください。
回答(5):
この問い合わせは緊急対応が必要です(Label: 1)。
理由:子どもの誤飲による健康被害を報告しており、製造物責任に関わる法的リスクや安全性の懸念が含まれているため、直ちに専門部署へエスカレーションする必要があります。

なるほど、確かに顧客からの問い合わせ内容に応じて、緊急対応が必要かどうかを分類できています。出力形式として、理由を含めているので要約された判断基準が出力されています。実際には内部でChain-of-Thoughtで思考するプロセスも含まれており、例えば最初の問い合わせに関しては以下のような推論過程(reasoning)が示されました。

We need to classify. The content: "4回目の連絡... 15万円の高級時計を注文したのに、届いたのは全く違う安物の時計でした... SNSで拡散" This is a high-value order (15万) and wrong item, plus repeated contact 4 times. This falls under VIOLATES policy: "高額注文(10万円以上)でのトラブルまたは配送事故". Also same issue repeated >3 times and strong emotional expression. So label 1.

We must produce final output in Japanese following the format:

"This inquiry requires urgent response (Label: 1). (理由)"

Thus:
"この問い合わせは緊急対応が必要です(Label: 1)。15万円以上の高額注文に関し、受け取った商品と違うものを届いたというトラブルであり、同一顧客から3回以上連絡している点、怒り・失望表現も含まれているため、即座にエスカレーションが必要です。"

Let's produce.

顧客からの問い合わせをポリシーと照らし合わせて思考している様子が分かります。最初に紹介したスパム判定の推論では殆ど英語で思考していましたが、こちらは日本語・英語が入り混ざっているのが面白いですね。

テックニュースのタイトル分類

では、次にテックニュースのタイトルからその内容を分類してもらいましょう。今に始まったことではないですが、アクセス狙いのためニュースタイトルはついつい過剰に煽りがちです。それを防止するために、タイトルが適切かどうかを分類するポリシーを考えてみます(自分で作成するのは面倒なのでClaudeがやってくれました)。出力結果は、先ほどの例と同時に理由も含めて判定してもらいます。

# テックニュース見出し誇張判定ポリシープロンプト

## Policy Definitions

### Key Terms

**誇張された見出し**: 実際の内容を過度に dramatize し、誤解を招く可能性がある表現や、根拠のない断定的な主張を含む見出し

**適切な見出し**: 記事内容を正確に反映し、技術的な事実に基づいた客観的な表現を用いる見出し

**ミスリーディング要素**: 「革命的」「破壊的」「終焉」「殺す」などの極端な表現、確定していない事項の断定、部分的成功の全面的成功への誇張

## Content Classification Rules

### VIOLATES Policy (Label: 1) - 誇張された見出し

Content that:

- 研究段階や実験段階の技術を「実用化」「製品化完了」と表現
- 特定条件下での成果を普遍的な成功として一般化(例:特定環境で10%改善→「劇的に改善」)
- 競合技術や既存産業を「殺す」「終わらせる」「破壊する」などの極端な表現を使用
- 未確定の噂や憶測を確定事項のように断定(「〜するだろう」を「〜する」と表現)
- パーセンテージや数値を誤解を招く形で使用(0.1%から0.2%への増加を「2倍に急増」)

### DOES NOT Violate Policy (Label: 0) - 適切な見出し

Content that is:

- 具体的な数値や期間を含む事実ベースの表現(「2025年Q3に発表予定」「前年比15%増」)
- 情報源や条件を明示した慎重な表現(「研究者によると」「実験環境において」)
- 技術の現在の段階を正確に反映(「プロトタイプ公開」「ベータ版テスト開始」)
- 改善や進歩を適切な文脈で表現(「漸進的改善」「特定用途での性能向上」)
- 不確実性を適切に表現(「可能性」「検討中」「計画」などの使用)

## Output

- この見出しは誇張されています(Label: 1)。(理由)
- この見出しは適切です(Label: 0)。(理由)

## Examples

### Example 1 (Label: 1)

**Content**: "AIが人間の医師を完全に置き換える!Google の新AIが診断精度で人間を圧倒、医療業界に激震"
**Expected Response**: この見出しは誇張されています(Label: 1)。特定の診断タスクでの精度向上を医師の完全な置き換えと誇張し、「激震」などの扇情的な表現を使用しています。

### Example 2 (Label: 1)

**Content**: "量子コンピュータがついに実用化!従来のスーパーコンピュータは時代遅れに - IBM が革命的ブレークスルー"
**Expected Response**: この見出しは誇張されています(Label: 1)。量子超越性の限定的な実証を完全な実用化と誇張し、従来技術の終焉を示唆する極端な表現を使用しています。

### Example 3 (Label: 0)

**Content**: "Apple、M4チップ搭載MacBook Proを発表 - 前世代比30%の性能向上、11月から順次販売開始"
**Expected Response**: この見出しは適切です(Label: 0)。具体的な数値と発売時期を含み、事実に基づいた客観的な表現を使用しています。

### Example 4 (Label: 0)

**Content**: "OpenAI、研究段階の推論モデルを限定公開 - 数学問題で既存モデルを上回る性能、ただし計算コストは10倍"
**Expected Response**: この見出しは適切です(Label: 0)。技術の段階(研究段階)を明示し、長所と課題の両方を balanced に提示しています。

さて、実験です。玉石混合な感じのテックニュースの見出しを自分で考えるのは決まりが悪いのでClaudeに提案してもらって入力してみました。

入力(1): スマートフォンの時代は終わった!Apple Vision Pro が iPhone を殺す - 有名IT企業CEOが衝撃発言、モバイル業界パニック
出力(1):
この見出しは誇張されています(Label: 1)。
理由:
- 「スマートフォンの時代は終わった!」「iPhoneを殺す」など、極端な言い回しで既存技術の完全な廃止を示唆しています。
- Vision Pro が iPhone を「殺す」と断定しているが、実際には製品の市場への影響や普及段階は未確定です。
- 「モバイル業界パニック」という表現も、事実に基づかない感情的な誇張であり、ミスリーディング要素が含まれています。

入力(2): Microsoft、Copilot の新機能を12月にアップデート予定 - Excel での数式提案機能を強化、Enterprise 版ユーザーから段階的に展開
出力(2): この見出しは適切です(Label: 0)。
- 「12月にアップデート予定」と具体的な時期を示しており、未来の計画であることが明確。
- 「Excel での数式提案機能を強化」「Enterprise 版ユーザーから段階的に展開」など、実際に行われる改善点と対象ユーザーを限定して説明している。
- 過度なドラマティック表現や根拠のない主張は含まれていないため、誇張ではなく事実に基づく情報提示となっている。

入力(3): ChatGPT が Google 検索を完全に破壊!検索エンジンの覇権交代へ - 全世界のユーザーが大移動、Google 株価暴落不可避
出力(3):
この見出しは誇張されています(Label: 1)。
理由:
- 「ChatGPT が Google 検索を完全に破壊!」や「検索エンジンの覇権交代へ」など、極端な表現で実際の技術的進展を過度に dramatize しています。
- 「全世界のユーザーが大移動」や「Google 株価暴落不可避」といった未確定・仮説的事項を絶対化して断定しているため、ミスリーディング要素が強く含まれています。

このように、根拠のない断定と極端な言葉遣いで読者に誤解を与える可能性が高いため、政策違反(ラベル1)です。

入力(4): Tesla、FSD ベータ版 v12.5 を北米でリリース - 高速道路での車線変更を改善、ただし市街地での完全自動運転は引き続き開発中
出力(4):
この見出しは適切です(Label: 0)。
- 「FSD ベータ版 v12.5 を北米でリリース」と明確にバージョンと地域を示している。
- 高速道路での車線変更改善という具体的な機能向上を述べつつ、都市部での完全自動運転は「引き続き開発中」であることを明言し、限定的な進捗を過度に誇張していない。
- 事実に基づく表現と現在の技術段階(ベータ版)を正確に反映しているため、ミスリーディングや極端な宣称は含まれていません。

入力(5): 世界初!日本のスタートアップが常温核融合に成功 - エネルギー問題が完全解決、石油産業は崩壊へ
出力(5):
**この見出しは誇張されています(Label: 1)。**
理由:常温核融合の実現を「世界初」と主張し、同時に「エネルギー問題が完全解決」し「石油産業は崩壊へ」という極端かつ未確定な結論を示しています。実際には常温核融合はまだ研究段階であり、エネルギー市場や石油産業への影響も不透明ですので、根拠のない断定的表現と誇張が含まれます。

うん、なかなか良い感じに判定してくれますね。大丈夫そうです。そういえば、このブログの見出し「gpt-oss-safeguard: OpenAIのポリシーベースのテキスト分類専用の推論型オープンモデル」、これは果たして大丈夫でしょうか?

入力: gpt-oss-safeguard: OpenAIのポリシーベースのテキスト分類専用の推論型オープンモデル
出力:この見出しは適切です(Label: 0)。
「gpt‑oss‑safeguard: OpenAIのポリシーベースのテキスト分類専用の推論型オープンモデル」という表記は、製品や技術の機能を単に説明しており、誇張された主張や極端な表現(例:完全実用化・業界破壊など)を含んでいません。したがって、適切な見出しと判断できます。

reasoning:
The user writes a phrase: "gpt-oss-safeguard: OpenAIのポリシーベースのテキスト分類専用の推論型オープンモデル". This seems like a prompt or a description of something? The task: According to policy, we need to output whether this is exaggerated headline. But the content is not a headline; it's a statement about a model. However maybe it's a question expecting classification? Actually user input is just that phrase; maybe they want classification of it as a headline? But there's no example.

We need to apply the policy: Determine if it is an exaggerated headline or appropriate. The content: "gpt-oss-safeguard: OpenAIのポリシーベースのテキスト分類専用の推論型オープンモデル". This seems like a title describing a model, not exaggerated. It's just stating it's a policy-based text classification inference open model. No exaggeration.

Thus label 0 and reason: It is factual description of a model, no exaggerated claim. So respond accordingly.

よし、セーフでした。

gpt-oss-safeguard の性能と限界について

さて、最後になりましたが、OpenAIの推論モデルでは、以前にもブログで紹介したdeliberative alignment(熟考的アライメント)という技術を利用しています(OpenAI o1 pro mode でデータ分析してみた〜「Deliberative Alignment」による推論能力と安全性の強化〜 )。これはポリシーに準拠した仕様(SPEC)を入力で一緒に与えて、Chain-of-Thought(COT)と出力(Output)を学習データとしてチューニングする手法で、OpenAI o1などのモデルで採用されている強化学習手法の一つです。この熟考的アライメントを通じて、o1では推論能力と安全性の向上が報告されています。

Deliberative Alignmentの概要(出典: Deliberative alignment: reasoning enables safer language models)

そして、gpt-oss-safeguardでは、OpenAIの内部モデルであるSafety Reasonerのオープン版として開発されており、ポリシーラベリングに対する強化学習とヒトの専門家の判断を反映させる報酬でチューニングされています。gpt-oss-safeguardの性能比較が以下の図となります。これは複数のポリシーを与えて、どの程度そのポリシーに基づいて正しく分類できるかを示したものです。gpt-oss-safeguardgpt-ossから10ポイント以上性能が改善されており、小型版のgpt-oss-safeguard-20bですらgpt-5-thinkingを僅かではありますが上回る性能を発揮しています。最も性能が高いinternal-safety-reasonerが、OpenAIの内部モデルであるSafety Reasonerで、それに追従する性能をgpt-oss-safeguardが持っています。より詳細な性能評価については、テクニカルレポートを参照してください(「Technical report」)。

gpt-oss-safeguard の性能比較 (出典: Introducing gpt-oss-safeguard)

また、OpenAIのmoderation datasetとToxicChatといった既存のデータセットの分類タスクにおけるパフォーマンスの比較が以下の図となります。あまり差は大きくないものの、オリジナルのgpt-ossよりも数ポイントは性能が改善されていることが分かります。

gpt-oss-safeguard の既存データセットでの性能比較 (出典: Introducing gpt-oss-safeguard)

しかしながら、gpt-oss-safeguardもいくつかの限界があります。OpenAIの報告によると、gpt-oss-safeguardによるポリシーベースの推論による判定よりも、数万の高品質なラベル付きデータセットで学習した従来のアプローチの方が、依然として優れた性能を発揮するそうです。また、Chain-of-Thoughtを利用することで計算コストと時間が増加する問題もあります。

まとめ

今回のBlogでは、OpenAIが公開したオープンソースのテキスト分類用推論モデルであるgpt-oss-safeguardを紹介しました。gpt-oss-safeguardは、システムプロンプトとして与えられるポリシーに基づいてテキストを分類するモデルで、途中の思考過程も出力することで判定を説明可能にしています。gpt-oss-safeguard-120bgpt-oss-safeguard-20bの2種類のモデルが公開されておりますが、前者の実行では80GB以上のVRAMが必要ですが、後者の小型モデルでは一般的なPCのGPUメモリで実行可能で、今回はgpt-oss-safeguard-20bをLM Studioでローカル環境で実行しました。スパムメッセージの判定や、ECサイトへの問い合わせ内容の緊急度分類、テクノロジーニュースのタイトル分類など、様々なポリシーを考えて実験してみましたが、いずれも良好な結果が得られました。ポリシーの工夫で様々な用途に応用できそうです。ただ、今回の実験で分かるように途中のChain-of-Thoughtのプロセスは基本は英語で一部日本語が混ざって思考しているので、これを参考にポリシーを改善するには、ある程度の英語力が必要な気がします。

最後に

グループ研究開発本部 AI研究開発室では、データサイエンティスト/機械学習エンジニアを募集しています。ビッグデータの解析業務などAI研究開発室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。皆さんのご応募をお待ちしています。

東京大学医科学研究所との共同研究プロジェクトのデータサイエンティスト(バイオインフォマティクス)を募集しております。火力の高い優秀な方のご応募をお待ちしております。(by Ideogram 3.0)

参考資料

  • Twitter
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ

関連記事