仕組み

回答そのものへのチェック

回答が送られる前に通る検査——それぞれが何を捕まえ、どのくらいの頻度で作動し、なぜ「よく作動する検査」は丁寧さではなくバグなのか。

検索は、モデルが何を見てよいかを決めます。このページが扱うのは、モデルが書き終えたあとのことです。最後のトークンが生成されてから、答えが誰かの画面に現れるまでの、その一瞬。

この段階が存在する理由は、ひとつの居心地の悪い観察にあります。プロンプトに書いた規則は、お願いにすぎません。 「資料にない数値を述べてはならない」と毎ターンの冒頭に書くことはできて、ほとんどのターンはそれに従います。そして従わなかったターンこそ、注意深い読者なら気づいたはずのものです。だから本当に効く規則は、お願いとしてではなく、出来上がった文章に対する検査として書かれます。コードの中で走り、その一文が資料にあるか、ないか、それだけです。

検査のかたち

ここにある検査はすべて同じ三つの部分からできていて、順序は固定です。そしてその順序こそが、これを安く保っています。

  1. 決定的な前段。 今書かれた回答に対する文字列とパターンの照合——モデル呼び出しなし、往復なし。ほとんどの場合は「この形はない」と言って、そこで検査は終わります。
  2. 前段が当たったときだけ払う、一度の抽出呼び出し。 モデルには資料から文を逐語的に書き写すことだけを頼みます。判断させず、結論も出させません。「これが許されるかどうかを述べている文をすべて書き写せ」は照合できる問いですが、「この回答は正しいか」はそうではありません。
  3. 判定はコード側に戻す。 書き写された文は、資料に一字一句そのまま現れる場合にのみ有効です。この照合がないと、判定役が一文をでっち上げ、それで正しい回答を覆せてしまいます——仮定の話ではなく、この照合が存在する理由そのものです。

よく作動する検査はバグです。 ここにあるひとつは、かつて「大文字の語のあとにコードが続く」形で回答が分類に言及したかを判定していました。規制文書では、この形は条文の引用・通貨コード・化学登録番号・月名に当たります——そして within、たとえば「30 営業日以内に申請しなければならない」にも。 100 回のうち 57 回作動し、そのたびに抽出呼び出しと完全な再回答を費やしました。しかも対象はすでに正しかった回答です。本物の分類語に紐づけ直すと、作動は 4 回になりました。命中率の高い検査は丁寧なのではなく、測る対象を間違えているのです。しかもあなたの応答時間を使って。

それぞれが捕まえるもの

どれも、送るべきでなかった回答が送られてしまったから存在します。作動率は保存された実際の回答に対して測っており、意図的に低く抑えてあります。

回答がしていることなぜ問題か作動率
資料が何かを明示的に許可/禁止していると述べるが、資料にそのような文がない「資料には X と書いてある」は原文についての主張であり、逐語で照合できる279 件中 2 件
「はい、受理されます」と答えるが、資料はまさに受理されないと書いているこの製品で最悪の失敗です。顧客はそれを信じて申請を用意し、差し戻されます300 件中 1 件
どの取得断片にも存在しない数値を挙げる引用マーカーを伴った数値は、エージェントが間違えうるもののうち最も説得力があります
資料がすべて一つの法域から来ているのに、どの法域の話かを言わずに数値を出す手数料も期限も市場ごとに違い、帰属のない数値は誤って使われます
質問が名指した文書ではなく、唯一よその文書から来た断片を引用する二つの文書はほぼ同じことを述べがちで、文言がよく一致するのはたいてい間違ったほうです399 件中 2 件
資料中の例外条項を引用し、そのうえで一般的な慣行で覆す資料は正しく読まれ、そのあと論じて消されました109 件中 1 件
回答全体が答えではなく、ツール呼び出しそのもの生の呼び出し構文が読者に届いてはなりません——オープンモデルでの運用を参照

表のダッシュは省略ではありません。それらの検査はここで述べた測定の作法より前からあり、作動率を同じやり方で数えていません。数字を引けるからではなく、実際に走っているから載せています。

当たったときに起きること

同じ資料をモデルの前に置いたまま、もう一度書かせます。 そこに、最初の試みの何が問題だったかを述べる一文を添えて。削除でも、謝罪への差し替えでもありません。

これは意図した選択です。質問に答える資料はたいていまだそこにあります——最初の試みが、それを通り越したか、隣の行を読んだか、言葉を濁したかです。同じ断片で書き直せばそれを取り戻せます。拒否すれば取り戻せません。

その訂正文には、代償を払って学んだ規則がひとつあります。何を出すべきかだけを言い、何をするなとは決して言わない。 以前の版は、まずい形式を三つの実例で示したうえで、その形式を出さないようモデルに頼んでいました。モデルはもう一度それを出し、読者は答えの代わりに謝罪を受け取りました——答えは取得済みの資料の中に、一字一句そのまま座っていたのに。

「間違っている」とだけ告げる訂正は、しばしば何も変えません。 よその文書の断片を引用した回答を捕まえる検査があります。それだけを告げたところ、モデルは三回中三回とも同じように答え直しました—— 自分は正しい文書を使っていると信じていたからです。結果を変えたのは、モデルが自力では導けない対応関係を渡したことでした。これらの断片番号が、あなたが尋ねられた文書のものです。あなたが引用したものは違います。 それでも正しくなるのは三回に一回ほどです。この検査は、自らが「解決」ではなく「改善」であることを正直に述べています。

この段階がしないこと

  • 回答が真実かどうかは検査しません。 検査するのは、回答の資料についての主張が真かどうかです。これは別のことであり、ここで決められるのは後者だけです。
  • ほとんどのターンでは作動しません。 設計どおりです。上の低い作動率は設計の要点であって、限界ではありません。
  • 資料が正しいことの代わりにはなりません。 問いを決める断片がそもそも取得されていなければ、出力へのどんな検査もそれを生み出せません。それは検索側の問題であり、そこで解かれるか、まったく解かれないかです。
  • どの検査も、判断できなければ通します。 抽出呼び出しが失敗したり解釈できない返答をしたら、回答はそのまま送られます。バックエンドが遅いときに回答を止めうる検証層は、防ごうとしたものより悪い失敗です。

関連