まず結論
ユーザー生成テキストをモデレーションしていて、fine-tuning を待つより速くポリシーを変えたいなら、Amazon Bedrock 上で Amazon Nova 2 Lite を試す価値がある。ここで扱うのはテキストキューであり、画像/動画モデレーションや自動コンプライアンス判断ではない。
AWS は 2026-05-18 の公式チュートリアルで、Amazon Nova 2 Lite を使う具体的なモデレーションパターンを示した。ポリシーを prompt に置き、固定レスポンス構造を求め、モデルを通常のチャットボットではなくポリシー解釈器として使う。カテゴリ、しきい値、エスカレーションルールを数週間単位で変えるチームは、ラベル付き分類器を作る前にこの方法を検証する。
2026-05-19 時点では、最初の版を次の順で作る。
- 範囲の狭いテキスト専用ポリシーから始める
- カテゴリと許可する出力を明示する
- Bedrock Converse API で Nova 2 Lite を呼び出す
- 後段システムで検証できる JSON または XML 出力を要求する
- 高リスクカテゴリと曖昧な一致には人間のレビューを入れる
- 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 をサポートすると説明している。したがって制御は重ねられる。
- Guardrails で広い baseline controls を置く
- Nova prompt moderation でアプリ固有のポリシーカテゴリを扱う
- 曖昧または高影響のものは人間レビューへ送る
本番前の評価方法
リリース前に 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 する reviewstate がなく、境界上の 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 に確認した。
- AWS Machine Learning Blog: Prompting Amazon Nova 2 for content moderation
- AWS Docs: Prompting Amazon Nova 2 for content moderation
- AWS Docs: Nova 2 Lite model card
- AWS Docs: What is Amazon Nova 2?
- AWS Docs: Inference using Converse API
- AWS Docs: Responsible use for Amazon Nova 2
- MLCommons: AILuminate