AI Tools
チュートリアル14 分2026年5月19日執筆:AIGCDev

Amazon Nova 2 Lite で Bedrock 上のコンテンツモデレーションを組む:Prompt、Guardrails、評価チェックリスト(2026)

まず結論

ユーザー生成テキストをモデレーションしていて、fine-tuning を待つより速くポリシーを変えたいなら、Amazon Bedrock 上で Amazon Nova 2 Lite を試す価値がある。ここで扱うのはテキストキューであり、画像/動画モデレーションや自動コンプライアンス判断ではない。

AWS は 2026-05-18 の公式チュートリアルで、Amazon Nova 2 Lite を使う具体的なモデレーションパターンを示した。ポリシーを prompt に置き、固定レスポンス構造を求め、モデルを通常のチャットボットではなくポリシー解釈器として使う。カテゴリ、しきい値、エスカレーションルールを数週間単位で変えるチームは、ラベル付き分類器を作る前にこの方法を検証する。

2026-05-19 時点では、最初の版を次の順で作る。

  1. 範囲の狭いテキスト専用ポリシーから始める
  2. カテゴリと許可する出力を明示する
  3. Bedrock Converse API で Nova 2 Lite を呼び出す
  4. 後段システムで検証できる JSON または XML 出力を要求する
  5. 高リスクカテゴリと曖昧な一致には人間のレビューを入れる
  6. prompt 指示を超えるプラットフォーム層が必要になったら Bedrock Guardrails を足す

この構成は marketplace listing、サポートメッセージ、コメント、コミュニティ投稿、社内トリアージキューに向く。法的判断、医療、児童安全、金融、ゼロ見逃しを求めるワークフローでは、唯一の意思決定者として使わない。

2026-05-18 に何が変わったか

AWS は 2026-05-18 に公式記事 Prompting Amazon Nova 2 for content moderation を公開し、Amazon Nova 2 Lite を構造化 prompt と自由形式 prompt でモデレーションに使う方法を示した。記事は MLCommons AILuminate taxonomy を土台にしており、データ収集、ラベリング、モデルカスタマイズを待たずに進めたい場合の速いポリシー反復手段として prompt ベースのモデレーションを位置づけている。

AWS のワークフローは、チームが個別にレビューできる 4 つの部品に分かれる。

  • モデレーションポリシーをモデル重みの外に置く
  • モデルが分類、説明、安定した構造の返却を行うようリクエストを整える
  • 混同しやすいカテゴリには few-shot 例を使う
  • 本番のホットパスに入れる前に、決定性、レイテンシ、reasoning 設定をテストする

AWS の Nova 2 文書では、Nova 2 Lite が Converse API と Bedrock Guardrails をサポートすると確認できる。既存の Bedrock pipeline に入れられるため、推論レイヤーを作り直す必要はない。参照:What is Amazon Nova 2?、Inference using Converse API。

Prompt ベースのモデレーションで足りる場面

次の多くが当てはまるなら、Nova 2 Lite の prompt ベースモデレーションを使える。

  • ポリシーが頻繁に変わる
  • カテゴリを言葉で明確に説明できる
  • allow、review、block のような結果構造が必要
  • チームが毎週エッジケースをサンプリングしてレビューできる
  • false positive は困るが、キューレビューで回復できる

次のどれかに当てはまるなら、この方法を避けるか、範囲をかなり狭める。

  • 1 回の誤判断が法務、医療、児童安全、金融のリスクになる
  • 固定された校正値と監査可能なしきい値を持つ独立分類器が必要
  • 不確実または multi-label の case に手動レビューを追加できない
  • ポリシーが曖昧で、アノテーターが自然言語で合意できない

高影響のモデレーションについて、AWS の responsible-use guidance は、モデル出力は確率的であり、顧客は自分のユースケースで出力を評価し、高影響ワークフローにはテストと人間の監督が必要だと説明している。参照:Amazon Nova 2 responsible use。

始める前に必要なもの

最初のモデレーション endpoint を作る前に、次を確認する。

項目 確認すること なぜ重要か
AWS account 使う region で Bedrock access が有効 Nova は Amazon Bedrock 経由で動く
Model access 選んだ region または cross-region 設定で Amazon Nova 2 Lite が使える モデルアクセスと region 対応はモデルごとに変わる
Policy document カテゴリ定義、例、エスカレーションルールを書いている prompt は、そこに埋め込むポリシー以上には賢くならない
Output contract action 前に JSON または tagged XML を検証できる 自由形式のモデレーション文は安全に自動化しにくい
Queue design 曖昧な case 用の review パスがある 二択の allow/block は不要なリスクを作る
Logging plan prompt、出力、最終判断を安全に保存できる ポリシー品質を問われたときに根拠が必要になる

Bedrock は Converse API を推奨している。対応モデルで同じ message-based request shape を使えるからだ。モデレーション実験、fallback model、後のツール変更を 1 つのインターフェースの後ろに置ける。参照:Inference using Converse API。

モデレーションリクエストの構造

モデルに「このテキストは悪いか」と聞かない。名前を付けたポリシーに違反しているかを、固定出力形式で聞く。

各リクエストには 5 つの部品を入れる。

部品 役割 効果
Role instruction モデルに、会話アシスタントではなくポリシー分類器だと伝える 余計な会話調の出力と脱線説明を減らす
Policy list カテゴリと境界を平易な言葉で定義する 一般的な安全挙動ではなく、自分たちのルールに判断を結びつける
Input text レビュー対象のユーザー生成テキストだけを入れる ログとデバッグが簡単になる
Output schema decision、categories、confidence note、explanation などの安定フィールドを強制する 後段システムが action 前に検証できる
Few-shot examples エッジケースと境界判断を見せる カテゴリが重なるときの一貫性を上げる

AWS の 2026-05-18 記事は XML と自由形式のパターンを示している。本番ワークフローでは JSON または XML から始める。後段サービスが、モデルの意図を推測せずに、不正な形式の出力を拒否できるからだ。

最初のポリシー設計

モデレーションレビューをまだ運用したことがないチームは、最初から 12 カテゴリで始めない。タスクを解ける最小ポリシーから始める。

たとえば、コミュニティ製品なら最初は次の範囲にできる。

  • 暴力的脅迫
  • ヘイトまたはハラスメント
  • 自傷の助長
  • 詐欺または scam 言語
  • 機微な個人データの露出
  • 安全または違反なしの内容

AWS のチュートリアルは MLCommons AILuminate taxonomy を出発点にしている。曖昧なラベルではなく、実在する 12 カテゴリの hazard 構造を使えるからだ。ただし、初日に taxonomy 全体をコピーする必要はない。キューが marketplace listing だけを扱うなら、カテゴリは listing リスクを反映すべきで、オンライン上のあらゆる危害を網羅する必要はない。参照:AILuminate と AWS content moderation チュートリアル。

より安全な JSON Prompt テンプレート

まずは、バックエンドが検証できる JSON object を要求する。

You are a text moderation system.

Task:
- Classify whether the input violates the policy.
- Use only the categories defined below.
- If the text is ambiguous, set decision to REVIEW.
- Do not invent categories.
- Return valid JSON only.

Policy categories:
- VIOLENCE: threats, glorification of violent harm, instructions for violent wrongdoing
- HATE: demeaning or dehumanizing content targeting protected groups
- SELF_HARM: encouragement or instructions for suicide or self-harm
- FRAUD: scams, deceptive payment requests, impersonation for theft, illegal transaction patterns
- PRIVACY: exposed credentials, account numbers, addresses, or other sensitive personal data
- OK: no policy violation

Return contract:
- Return one JSON object and no Markdown.
- decision must be one of: ALLOW, REVIEW, BLOCK.
- categories must use only the policy categories listed above.
- reason must be one short sentence.
- needs_human_review must be true or false.

Example valid response:
{
  "decision": "REVIEW",
  "categories": ["FRAUD"],
  "reason": "The text asks for bank login details in exchange for a prize payout.",
  "needs_human_review": true
}

Input text:
{{USER_TEXT}}

REVIEW を first-class action として残す。二択 prompt は、境界ケースを見えない false positive または false negative に変えてしまう。

Bedrock Converse API の例

AWS は、Bedrock 対応の message-based model には Converse API を推奨している。最小の Python 例は次の通り。

import boto3
import json

bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")

policy_prompt = """
You are a text moderation system.
Return one valid JSON object and no Markdown.
Classify the text using these categories:
- VIOLENCE
- HATE
- SELF_HARM
- FRAUD
- PRIVACY
- OK

If uncertain, choose REVIEW and set needs_human_review to true.
Contract:
- decision must be one of ALLOW, REVIEW, BLOCK.
- categories must use only the categories above.
- reason must be one short sentence.
- needs_human_review must be true or false.
""".strip()

user_text = "Send me your bank login and I will unlock the prize payout today."

response = bedrock.converse(
    modelId="us.amazon.nova-2-lite-v1:0",  # US geo profile; switch to eu.amazon... or global.amazon... if required.
    system=[{"text": policy_prompt}],
    messages=[
        {
            "role": "user",
            "content": [{"text": user_text}]
        }
    ],
    inferenceConfig={
        "maxTokens": 300,
        "temperature": 0.7,
        "topP": 0.9
    }
)

text = response["output"]["message"]["content"][0]["text"]
result = json.loads(text)

if result.get("decision") not in {"ALLOW", "REVIEW", "BLOCK"}:
    raise ValueError(f"Unexpected moderation decision: {result!r}")

print(result)

実装上の 2 点を確認しておく。

  • Bedrock docs は messages、system、inferenceConfig を Converse の first-class field としている。このため、対応モデル間で同じ pattern を保ちやすい。
  • AWS の Nova 2 content moderation guide は推奨デフォルトを temperature 0.7、top-p 0.9 としている。AWS 自身の評価でも、多様な content type でそのデフォルトがよく機能した。完全に決定的な出力が必要なら temperature 0 を試せるが、本番前に自分たちのコンテンツでモデレーション精度が許容範囲に残るか確認する。

参照:Nova 2 Lite model IDs、Inference using Converse API、Prompting Amazon Nova 2 for content moderation。

JSON ではなく XML を使う場面

既存のモデレーションスタックが tagged output をすでに解析している場合、または自由文より検証しやすく人も読める形式が欲しい場合は XML を使う。

AWS のチュートリアルには、ポリシー違反状態、カテゴリリスト、説明を明示 tag に入れる XML 構造がある。次の条件なら XML が合う。

  • 既存の moderation pipeline に rule-based XML parser がある
  • 説明を予測可能な envelope に残したい
  • 非 LLM システムが JSON より XML に合わせやすい

新しい app backend なら JSON を先に選ぶ。多くの app backend と analytics pipeline は JSON を自然に検証でき、malformed JSON も早く検出できる。

Prompt モデレーションと Bedrock Guardrails

選択肢 向く用途 主な制限
Nova 2 Lite の prompt ベースモデレーション カスタムポリシー解釈、アプリ固有カテゴリ、説明可能なキュー判断 出力品質が prompt 品質とレビュー運用に依存する
Bedrock Guardrails プラットフォームレベルの制御、モデル呼び出し全体で再利用する安全層、集中ガバナンス 製品固有 taxonomy にはカスタム prompt ほど柔軟ではない

AWS の Nova docs は、Nova 2 Lite が Bedrock Guardrails をサポートすると説明している。したがって制御は重ねられる。

  1. Guardrails で広い baseline controls を置く
  2. Nova prompt moderation でアプリ固有のポリシーカテゴリを扱う
  3. 曖昧または高影響のものは人間レビューへ送る

本番前の評価方法

リリース前に evaluation set を作る。3 つのサンプル prompt では足りない。

含めるもの:

  • 明確な違反
  • 明確に安全な内容
  • 境界上の joke や sarcasm
  • カテゴリが重なる case
  • 短文、長文、崩れたテキスト
  • 最近の moderator dispute から来たポリシー更新例

次の 4 点を確認する。

チェック 見ること
Schema reliability モデルが毎回有効な JSON または XML を返すか
Category quality 複数のリスクが同時に出るとき、正しいカテゴリを選ぶか
Review discipline 曖昧なものを、無理に確信した判断にせず escalation するか
Operational fit キュー量に対してレイテンシとコストが許容範囲か

AWS のチュートリアルは、自分の workload で reasoning settings をテストすべきだとも述べている。高スループット pipeline では、AWS はレイテンシとコストを下げるため reasoning mode off を検討し、そのうえで自分たちの content で精度が許容できるか検証するよう示している。

AWS は、default inference settings と structured XML prompts を使い、3 つの公開 dataset で Nova 2 Lite を benchmark した(評価日 2026-05-18)。

Dataset Nova 2 Lite F1 Content type
Aegis AI Content Safety 2.0 85.84% 明確な AI safety policy violations
WildGuardMix 84.73% AI safety policy violations
Jigsaw Toxic Comment 56.53% 曖昧で context-dependent な toxicity

低い Jigsaw score はリスク境界を示している。Aegis と WildGuard は、定義が明確な policy violations を扱う。Jigsaw はより主観的で文脈依存だ。自分たちのキューに slang、coded language、内輪ネタが多いなら、80% 超の F1 がそのまま移るとは考えず、REVIEW 判断と人間による sampling を多めに設計する。方法の詳細は Prompting Amazon Nova 2 for content moderation を参照。

よくある失敗

ロールアウト中は、モデルのせいにする前にポリシー設計と action 設計を確認する。

早い段階で見るべきミス:

  • カテゴリが広すぎて moderator が正しい label に合意できない
  • prompt がモデレーションと rewrite suggestion の両方を求め、タスクが濁る
  • backend が OK 以外をすべて自動 block する
  • review state がなく、境界上の item が隠れた false positive になる
  • prompt 内の例が 1 カテゴリに偏り、後続出力が引っ張られる
  • チームがモデル説明を compliance record と誤解する

Fine-tuning から始めるべき場面

次に当てはまるなら、model customization または専用 classifier へ向かう。

  • ポリシーが安定し、高い volume が追加セットアップを正当化する
  • 小さな label set でより強い一貫性が必要
  • reviewer がすでに高品質な labeled dataset を作っている
  • コスト構造上、汎用 prompt pipeline より狭いモデル挙動のほうが得になる

AWS の 2026-05-18 記事は 2 つの path を明確に対比している。prompting は速いポリシー反復の path であり、customization はポリシーと workload が十分に安定してからの重い path だ。

初回リリースチェックリスト

最初の本番リリース前に、すべて確認する。

  • ポリシーに名前付きカテゴリ、例、明確なエスカレーションルールがある
  • モデルが返す構造を backend が厳密に検証する
  • システムが二択ではなく ALLOW、REVIEW、BLOCK をサポートする
  • 曖昧または multi-category の case が人間レビューキューへ届く
  • prompt、出力、最終 action が安全なアクセス制御の下でログ保存される
  • moderator が false positives と false negatives を報告できる
  • アプリケーション全体を再デプロイせずに policy text を更新できる

ポリシーカテゴリ、schema validation、review queue、安全な logging のどれかが欠けているなら、モデレーションをユーザー向けの critical path に直接置かない。

FAQ

Amazon Nova 2 Lite は本番モデレーションに足りますか?

境界が明確なテキストワークフローなら足りる場合がある。条件は、チームが明確なポリシーを書き、構造化出力を検証し、曖昧または高リスクの case に人間レビューを残すこと。2026-05-19 時点で、AWS は Nova 2 Lite を評価対象のモデレーション選択肢として示しており、監督の代替とはしていない。

モデレーション出力は JSON と XML のどちらがよいですか?

新しい application pipeline なら JSON を使う。backend validation が簡単だからだ。既存の moderation workflow が tagged output を期待している場合、または downstream system が XML parsing を中心に作られている場合は XML を使う。

Bedrock Guardrails は prompt-based moderation を置き換えますか?

置き換えない。Guardrails は platform safety layer であり、prompt moderation は自分たちの business policy をエンコードする方法だ。baseline controls と product-specific categories の両方が必要なら併用し、不確実な case を人間レビューへ送る。

MLCommons AILuminate taxonomy をそのままコピーできますか?

出発点としては使える。ただし多くのチームは、実際の product risk に合うカテゴリまで絞るべきだ。広い taxonomy は benchmarking には役立つが、早期本番では小さい policy のほうがレビューと運用がしやすい。

検証メモ

公式ソースは 2026-05-19 に確認した。

amazoncontent-moderationai-safetyenterprise-aicloud