回答そのものへのチェック
回答が送られる前に通る検査——それぞれが何を捕まえ、どのくらいの頻度で作動し、なぜ「よく作動する検査」は丁寧さではなくバグなのか。
検索は、モデルが何を見てよいかを決めます。このページが扱うのは、モデルが書き終えたあとのことです。最後のトークンが生成されてから、答えが誰かの画面に現れるまでの、その一瞬。
この段階が存在する理由は、ひとつの居心地の悪い観察にあります。プロンプトに書いた規則は、お願いにすぎません。 「資料にない数値を述べてはならない」と毎ターンの冒頭に書くことはできて、ほとんどのターンはそれに従います。そして従わなかったターンこそ、注意深い読者なら気づいたはずのものです。だから本当に効く規則は、お願いとしてではなく、出来上がった文章に対する検査として書かれます。コードの中で走り、その一文が資料にあるか、ないか、それだけです。
検査のかたち
ここにある検査はすべて同じ三つの部分からできていて、順序は固定です。そしてその順序こそが、これを安く保っています。
- 決定的な前段。 今書かれた回答に対する文字列とパターンの照合——モデル呼び出しなし、往復なし。ほとんどの場合は「この形はない」と言って、そこで検査は終わります。
- 前段が当たったときだけ払う、一度の抽出呼び出し。 モデルには資料から文を逐語的に書き写すことだけを頼みます。判断させず、結論も出させません。「これが許されるかどうかを述べている文をすべて書き写せ」は照合できる問いですが、「この回答は正しいか」はそうではありません。
- 判定はコード側に戻す。 書き写された文は、資料に一字一句そのまま現れる場合にのみ有効です。この照合がないと、判定役が一文をでっち上げ、それで正しい回答を覆せてしまいます——仮定の話ではなく、この照合が存在する理由そのものです。
よく作動する検査はバグです。 ここにあるひとつは、かつて「大文字の語のあとにコードが続く」形で回答が分類に言及したかを判定していました。規制文書では、この形は条文の引用・通貨コード・化学登録番号・月名に当たります——そして within、たとえば「30 営業日以内に申請しなければならない」にも。 100 回のうち 57 回作動し、そのたびに抽出呼び出しと完全な再回答を費やしました。しかも対象はすでに正しかった回答です。本物の分類語に紐づけ直すと、作動は 4 回になりました。命中率の高い検査は丁寧なのではなく、測る対象を間違えているのです。しかもあなたの応答時間を使って。
それぞれが捕まえるもの
どれも、送るべきでなかった回答が送られてしまったから存在します。作動率は保存された実際の回答に対して測っており、意図的に低く抑えてあります。
| 回答がしていること | なぜ問題か | 作動率 |
|---|---|---|
| 資料が何かを明示的に許可/禁止していると述べるが、資料にそのような文がない | 「資料には X と書いてある」は原文についての主張であり、逐語で照合できる | 279 件中 2 件 |
| 「はい、受理されます」と答えるが、資料はまさに受理されないと書いている | この製品で最悪の失敗です。顧客はそれを信じて申請を用意し、差し戻されます | 300 件中 1 件 |
| どの取得断片にも存在しない数値を挙げる | 引用マーカーを伴った数値は、エージェントが間違えうるもののうち最も説得力があります | — |
| 資料がすべて一つの法域から来ているのに、どの法域の話かを言わずに数値を出す | 手数料も期限も市場ごとに違い、帰属のない数値は誤って使われます | — |
| 質問が名指した文書ではなく、唯一よその文書から来た断片を引用する | 二つの文書はほぼ同じことを述べがちで、文言がよく一致するのはたいてい間違ったほうです | 399 件中 2 件 |
| 資料中の例外条項を引用し、そのうえで一般的な慣行で覆す | 資料は正しく読まれ、そのあと論じて消されました | 109 件中 1 件 |
| 回答全体が答えではなく、ツール呼び出しそのもの | 生の呼び出し構文が読者に届いてはなりません——オープンモデルでの運用を参照 | — |
表のダッシュは省略ではありません。それらの検査はここで述べた測定の作法より前からあり、作動率を同じやり方で数えていません。数字を引けるからではなく、実際に走っているから載せています。
当たったときに起きること
同じ資料をモデルの前に置いたまま、もう一度書かせます。 そこに、最初の試みの何が問題だったかを述べる一文を添えて。削除でも、謝罪への差し替えでもありません。
これは意図した選択です。質問に答える資料はたいていまだそこにあります——最初の試みが、それを通り越したか、隣の行を読んだか、言葉を濁したかです。同じ断片で書き直せばそれを取り戻せます。拒否すれば取り戻せません。
その訂正文には、代償を払って学んだ規則がひとつあります。何を出すべきかだけを言い、何をするなとは決して言わない。 以前の版は、まずい形式を三つの実例で示したうえで、その形式を出さないようモデルに頼んでいました。モデルはもう一度それを出し、読者は答えの代わりに謝罪を受け取りました——答えは取得済みの資料の中に、一字一句そのまま座っていたのに。
「間違っている」とだけ告げる訂正は、しばしば何も変えません。 よその文書の断片を引用した回答を捕まえる検査があります。それだけを告げたところ、モデルは三回中三回とも同じように答え直しました—— 自分は正しい文書を使っていると信じていたからです。結果を変えたのは、モデルが自力では導けない対応関係を渡したことでした。これらの断片番号が、あなたが尋ねられた文書のものです。あなたが引用したものは違います。 それでも正しくなるのは三回に一回ほどです。この検査は、自らが「解決」ではなく「改善」であることを正直に述べています。
この段階がしないこと
- 回答が真実かどうかは検査しません。 検査するのは、回答の資料についての主張が真かどうかです。これは別のことであり、ここで決められるのは後者だけです。
- ほとんどのターンでは作動しません。 設計どおりです。上の低い作動率は設計の要点であって、限界ではありません。
- 資料が正しいことの代わりにはなりません。 問いを決める断片がそもそも取得されていなければ、出力へのどんな検査もそれを生み出せません。それは検索側の問題であり、そこで解かれるか、まったく解かれないかです。
- どの検査も、判断できなければ通します。 抽出呼び出しが失敗したり解釈できない返答をしたら、回答はそのまま送られます。バックエンドが遅いときに回答を止めうる検証層は、防ごうとしたものより悪い失敗です。
関連
- 根拠のある回答 —— そもそもモデルが何を見てよかったのか
- オープンモデルでの運用 —— この段階が出口で受け止めるモデル層の破綻
- ライティングパイプライン —— 同じ作法を長文書に適用したもの