回答の数値も部署名も根拠と一致しているのに、自己負担が会社負担に変わっていた回答があります。
4通りの見つけ方をぶつけました。検出率はすべて0%でした。
見つけ方を4通り変えて測りました。字面が変わらない崩れ方は、どの方法でも拾えません。
ハルシネーション検出がどこまで届くのかを、実際に走らせて測りました。用意したのは社内規程の条文と、それに対する回答の組3000件です。
回答のうち一部は、わざと根拠から外しました。数値の書き換え・条件の追加・宛先の取り違え・意味の反転・根拠を使わない一般論の5種類です。
const WAYS = [
['文字の重なりだけで見る', (ans, ev) => overlap(ans, ev) < 0.6],
['数値の一致を見る', (ans, ev) => nums(ans).some((x) => !ev.includes(x))],
['数値と固有名詞を見る', (ans, ev) =>
nums(ans).some((x) => !ev.includes(x)) || depts(ans).some((d) => !ev.includes(d))],
['文ごとに支えを確かめる', (ans, ev) => unsupportedSentence(ans, ev)],
];
規程の条文と回答の組 3000件。根拠から外れたもの 1228件・外れていないもの 1772件 見つけ方 見つけた 取りこぼし 誤検出 検出率 正しさ 文字の重なりだけで見る 423件 805件 686件 34.4% 38.1% 数値の一致を見る 269件 959件 0件 21.9% 100.0% 数値と固有名詞を見る 498件 730件 0件 40.6% 100.0% 文ごとに支えを確かめる 987件 241件 666件 80.4% 59.7% ※ 検出率=外れたもののうち見つけた割合、正しさ=見つけたもののうち本当に外れていた割合
文ごとに支えを確かめる方法が検出率80.4%で最も高くなりました。それでも241件は取りこぼしています。
根拠: 宿泊費の上限は1泊7000円とする。超過分は自己負担とする。申請は出発の6営業日前までに営業課へ提出する。 回答: 上限は1泊7000円です。超過分は会社の負担です。申請は出発の6営業日前までに営業課へ出してください。
金額も日数も部署名も一致しています。字面の重なりも高いままです。変わったのは誰が払うかだけです。
この1文が実務では最も痛い誤りです。数えられる要素をいくら照合しても、この種類は拾えません。
出典も重要な情報は必ず検証すること、とりわけ判断の重みが大きい場面ではと述べています。検出は絞り込みであって、置き換えではありません。
最も高い方法でも、5件に1件は取りこぼす。
Always validate critical information, especially for high-stakes decisions.原文Anthropic「Reduce hallucinations」 この内容の有効期限2027-02-18
同じ検出でも、崩れ方によって当たり外れが極端に分かれます。1つの方法で全部を見ることはできません。
ハルシネーション検出を評価するときは、全体の検出率だけを見ても足りません。崩れ方を分けると、方法ごとの性格が見えます。
崩れ方 件数 文字の重なりだ 数値の一致を見 数値と固有名詞 文ごとに支えを 数値の書き換え 630件 0% 100% 100% 100% 条件の追加 602件 84% 0% 0% 100% 宛先の取り違え 446件 0% 0% 100% 100% 意味の反転 469件 0% 0% 0% 0% 根拠を使わない一般論 374件 100% 0% 0% 100%
数値の一致を見る方法は、数値の書き換えを100%見つけます。ところがそれ以外はすべて0%です。
見ている対象が数字だけなので、当然の結果です。検出の範囲は、何を照合しているかで決まります。
同じ計測で、崩れていない回答をどれだけ誤って疑ったかも測りました。
回答の書き方 件数 文字の重なりだ 数値の一致を見 数値と固有名詞 文ごとに支えを 崩れなし(写し) 2193件 0% 0% 0% 0% 崩れなし(言い換え) 848件 100% 0% 0% 100% 崩れなし(単位換算) 438件 100% 0% 0% 89%
根拠をそのまま写した回答は、どの方法も疑いません。ところが言い換えた回答は100%が疑われました。
中身は正しく、金額も部署も合っています。読みやすく書き直しただけで外れと判定されるわけです。
同じ出典は別の確かめ方として同じ指示で複数回動かし、出力どうしを比べる方法も挙げています。字面の照合とは別の角度で、揺れの大きい回答を拾えます。
崩れ方によって、当たる方法がまったく違う。
Run Claude through the same prompt multiple times and compare the outputs.原文Anthropic「Reduce hallucinations」 この内容の有効期限2027-02-18
引用付きで答えさせると照合が楽になります。ただし完全一致だけを通すと、正しい引用も落ちます。
ハルシネーション検出を運用に載せるとき、よく使われるのが回答に引用を付けさせるやり方です。出典もこの手を勧めています。
出典の言い方は回答を作らせたあとで、主張ごとに支えとなる引用を探させて確かめることもできるというものです。実際に照合してみました。
引用の状態 件数 割合 根拠にそのままある 1083件 54.1% 語尾だけ変わっている 509件 25.4% 別の条文から引いている 259件 13.0% 根拠のどこにもない 149件 7.4%
そのまま一致するのは54.1%です。半分近くは、どこかしら形が変わっています。
語尾だけ変わったものまで許すと79.6%が通ります。ここは許して構いません。中身は根拠と同じです。
問題は残りです。別の条文から引いた13.0%は、形の上では実在する文なので、存在確認だけでは通ってしまいます。
問いに対応する条文の中にあるかまで見ないと、この取り違えは残ります。存在するかではなく、どこにあるかを見ます。
検出だけでは、意味の反転が残る。
使ったのは式で作った条文と回答です。実際の回答はもっと長く、崩れ方も混ざります。ここで見せているのは、照合する対象を変えると何が拾えて何が残るかという関係です。根拠の取り方はRAGの記事で扱っています。
You can also have Claude verify each claim by finding a supporting quote after it generates a response.原文Anthropic「Reduce hallucinations」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る