0Pricing
AI Prompt Engineering · レッスン

Self-Critiqueによる検証

モデルが検証した出力を扱います。

「Self-Critiqueによる検証」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全4レッスンが含まれています。

モデルを自身の批評役にする

自己批評では、LLMを使って、評価基準やポリシーに照らして別のLLMの出力を評価します。決定論的なバリデーターでは定義できない、事実の不整合、トーン、役立ちやすさ、微妙なポリシー違反などの複雑な失敗を検出できます。

これは、スキーマバリデーターやルールバリデーターをモデルで補完するものです。

批評役と作成役を分離する

批評は生成処理の末尾に指示として追加するのではなく、独自のプロンプトを持つ別の呼び出しとして実行します。判定だけを求められた、クリーンなコンテキストの批評役のほうが、生成途中に自分の回答を採点させるよりもはるかに信頼できます。後者では、自分の回答を支持する方向に偏るためです。

draft = author_model(task_prompt)
verdict = critic_model(
  'You are a strict reviewer. Judge ONLY the answer below against the rubric.\n'
  'Rubric: ' + rubric + '\nAnswer: ' + draft
)

構造化された批評の出力

パイプラインがプログラムから処理できるよう、批評役には構造化された判定を出力させます。自由記述の批評は、機械的に処理できません。

CRITIC_SCHEMA = {
  'type': 'object',
  'properties': {
    'pass': {'type': 'boolean'},
    'violations': {'type': 'array', 'items': {'type': 'string'}},
    'severity': {'type': 'string', 'enum': ['none','minor','major','critical']},
    'fix_hint': {'type': 'string'}
  },
  'required': ['pass','violations','severity','fix_hint'],
  'additionalProperties': False
}

批評してから修正するループ

批評役と修正役を組み合わせます。批評役が問題を見つけ、作成役が批評を使って修正し、合格するか予算を使い切るまで繰り返します。これは、モデルを使った修正ループに相当します。

draft = author_model(task)
for _ in range(2):
    c = critic_model(draft)
    if c['pass']:
        break
    draft = author_model(task + '\nRevise to fix: ' + c['fix_hint'])
final = draft

評価基準で批評の信頼性を高める

「これは良いですか?」のような曖昧な指示では、判定にばらつきが生じます。明確で評価可能な基準を備えた具体的な評価基準を使うと、判定が一貫します。批評役が個別に回答できるよう、はい・いいえで答えられる質問に分解します。

RUBRIC = [
  'Does the answer directly address the user question?',
  'Are all factual claims supported by the provided context?',
  'Is any disallowed content present?',
  'Is the response within the requested length?'
]

事実性のためのグラウンディングされた批評

ハルシネーションを検出するには、批評役にソースコンテキストを渡し、そこから導き出せない主張をすべて指摘するよう求めます。これにより、根拠なしに「これは本当ですか?」と尋ねるよりもはるかに強力な、含意関係のチェックとして自己批評を実行できます。

verdict = critic_model(
  'For each claim in the ANSWER, state whether the CONTEXT entails it. '
  'Flag any unsupported claim.\nCONTEXT:\n' + ctx + '\nANSWER:\n' + draft
)

批評役の失敗モード

批評役自体もLLMであるため、失敗する可能性があります。

  • 迎合 — 作成者の回答を無批判に承認します。
  • 過剰な批評 — 正しい出力まで問題として指摘します。
  • 共有された盲点 — 同じモデルが同じエラーを見逃します。

批評役に異なるモデルファミリーを使うこと、厳格なレビュアーの人格を設定すること、しきい値を調整することで緩和できます。

より安価または異なる批評役を使う

批評役に最も高価なモデルを使う必要はありません。多くの場合、厳密な評価基準を備えた小規模モデルが費用対効果の高いゲートになります。また、異なるモデルファミリーを使うと、相関した盲点を減らせます。最も強力なモデルは作成に使用します。

信頼する場合と検証する場合

自己批評によってエラーは減りますが、証明にはなりません。影響の小さいコンテンツでは、批評を1回行えば十分です。影響の大きい出力では、自己批評を決定論的なバリデーターや人によるレビューと組み合わせます。安全性が重要な意思決定を、モデルだけに委ねてはいけません。

コスト、レイテンシ、キャッシュ

自己批評を行うと、リクエストあたりの呼び出し回数はおよそ2倍になります。決定論的なチェックを通過したものだけを批評するようにし、同一の下書きに対する批評をキャッシュし、修正ラウンド数に上限を設けて制御します。可能な場合は、ブロックしない処理と並列に批評を実行します。

if deterministic_ok(draft):
    verdict = critic_model(draft)   # only spend critique on viable drafts

人間のラベルに照らして調整する

批評役を信頼する前に検証します。人間がラベル付けした出力のデータセットを作成して批評役を実行し、人間の判定に対する適合率と再現率を測定します。批評役の判定が人間の判定と相関するまで、評価基準と人格を調整します。モデルをアップグレードした後も再確認します。

agreement = mean(critic(d)['pass'] == human_label[d] for d in eval_set)
assert agreement > 0.9

クイックチェック

RAGの回答に含まれるハルシネーションを、批評役に確実に検出させたいと考えています。信頼性を最も高める方法は何ですか。

まとめ

自己批評検証:

  • クリーンなコンテキストを持つ別の批評役が、作成役の出力を判定します。
  • 構造化された判定を出力し、批評してから修正するループを駆動します。
  • 具体的な評価基準と、根拠に基づく含意関係のチェックによって信頼性が高まります。
  • 迎合や共有された盲点に注意し、異なる批評モデルを使用します。
  • コストで実行を制御し、決定論的なチェックと組み合わせ、人間の判定に照らして調整します。

これでガードレールをすべて学び終えました。次のコースは、レッドチーミングと敵対的評価です。

よくある質問

「Self-Critiqueによる検証」レッスンは無料ですか?

はい。「Self-Critiqueによる検証」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全4レッスンが含まれています。

「Self-Critiqueによる検証」で何を学びますか?

モデルが検証した出力を扱います。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Prompt Engineeringを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Self-Critiqueによる検証」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Prompt Engineeringレッスンでコードを書いて実行できますか?

はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ガードレールとは
  2. 入力と出力のフィルタリング
  3. スキーマとルールのバリデーター
  4. Self-Critiqueによる検証
← AI Prompt Engineeringに戻る