個別には正しい情報が、集合としては誤りになりうる。
検証を通過した。フィルタリングも通過した。
機械的検証がフォーマットエラーを除外した。 フィルタリングが関連性・信頼性・新鮮さに基づいて選別した。
30件の情報が残っている。 すべて有効で、すべて関連があり、すべて信頼でき、すべて最新である。
この30件をコンテキストに入れるか。
いや、まだである。 もう一つ確認すべきことがある。 この30件は互いに矛盾していないか。
矛盾は個別の情報の属性ではない
二つの記述を考えてほしい。
- 出典: サムスン電子IR開示、2024年10月。「サムスン電子代表取締役: 全永鉉。」
- 出典: サムスン電子IR開示、2024年3月。「サムスン電子代表取締役: 慶桂顕。」
個別には両方とも有効である。 フォーマットは正しく、出典があり、時間があり、信頼できる。 検証を通過する。フィルタリングも通過する。
しかし両方が同じコンテキストに入ると問題がある。 サムスン電子の代表取締役は全永鉉なのか慶桂顕なのか。
どちらの記述も間違っていない。 3月には慶桂顕が正しかった。10月には全永鉉が正しい。 個別にはどちらも正しい。 しかしコンテキスト内に共存すると、LLMは混乱する。
これが整合性の問題である。 個別の情報からではなく、情報の集合から生じる。 検証は個別の情報を調べる。フィルタリングは個別の情報を調べる。 整合性は情報と情報の間を調べる。
矛盾の種類
コンテキスト内の矛盾にはいくつかの種類がある。
時間的矛盾
最も一般的なものである。
同一個体の同一属性が時間とともに変化し、 異なる時点の値がコンテキスト内に共存する。
「Tesla CEO: イーロン・マスク」と 「Tesla株価: $194」が同一コンテキストにあるが、 CEOの情報は2024年時点、株価は2023年6月のものである。 LLMはそれらを同一時点の情報として扱う可能性がある。
より微妙なケースも生じる。 「韓国の基準金利: 3.50%」は2024年1月時点、 「韓国の消費者物価上昇率: 2.0%」は2024年10月時点である。 両方とも有効で、両方とも韓国経済に関連するが、 9ヶ月のずれがある。 このずれが推論に影響するかどうかはコンテキストに依存する。
出典間矛盾
異なる出典が同一の事実に対して異なる値を提示する。
- 出典A: 「2024年の世界AI市場規模: 1,840億ドル。」
- 出典B: 「2024年の世界AI市場規模: 2,140億ドル。」
どちらも断定的に「間違い」とは言えない。 市場の範囲の定義が異なるかもしれない。測定方法が異なるかもしれない。 しかし両方がコンテキストにあると、 LLMはどちらか一方を選ぶか、両方を混合するか、混乱する。
推論的矛盾
直接的に矛盾する値ではないが、 並べると論理的に両立しない。
「A社の市場シェア: 60%。」 「B社の市場シェア: 55%。」
個別には有効である。しかし合計すると115%になる。 残りの競合他社を加えると100%を超える。 どちらかが異なる時期のもの、異なる市場定義のもの、または誤りである。
この種の矛盾は個別の記述を見ても見つからない。 集合を調べなければならない。
LLMは矛盾をうまく処理できない
理論的には、LLMは矛盾を検出し解決できるはずである。 「この二つの情報は時期が異なるため、より新しい方に基づいて回答する。」
実際にはそうならない。
LLMはコンテキスト内の情報を信頼する傾向がある。 コンテキストに入れるという行為自体が「これを参照せよ」というシグナルである。 矛盾する二つの情報が存在するとき、 LLMは一方を無視するよりも両方を参照する傾向がある。 結果は混合か混乱である。
矛盾検出には推論が必要である。 「代表取締役: 全永鉉」と「代表取締役: 慶桂顕」が矛盾することを知るには、 ある時点で代表取締役は一人しかいないという背景知識が必要である。 市場シェアの合計が100%を超えるかの確認には算術が必要である。 これはLLMの推論能力に依存する。
解決はさらに難しい。 矛盾が検出されたとしても、どちらを選ぶかの判断が必要である。 より新しい方か。より信頼できる出典か。より多くの出典に支持されている方か。 この判断をLLMに委ねると、一貫性は保証されない。 同じ矛盾に対して、ある時はAを選び、別の時はBを選ぶ。
結論として、矛盾がコンテキストに入った後に処理するのは 高コストであり結果も不確実である。 矛盾はコンテキストに入る前に解決されなければならない。
なぜ自然言語では整合性チェックが困難なのか
30件の自然言語チャンクの整合性をチェックするとする。
まず、同一の対象についてかどうかを判定しなければならない。 「サムスン電子」と「サムスン電子」と「Samsung」が同一の個体を指すかどうか。 自然言語では、これは不確定である。 「Samsung」がサムスン電子なのか、サムスンC&Tなのか、サムスン生命なのかは、文脈を読まなければわからない。
次に、同一の属性を記述しているかどうかを判定しなければならない。 「売上高」と「売上高」と「総売上高」と「粗売上高」は同じものか。 「営業利益」と「営業利益」と「営業利益率」は同じか異なるか。
次に、時間的参照を抽出しなければならない。 「前四半期」はいつか。「最近」はいつか。「今年」はいつか。
これらすべてが終わって初めて、二つの記述が矛盾するかどうかを比較できる。
30件の記述があれば、435の比較ペアが存在する。 各ペアで上記のプロセスを経なければならない。 すべてLLM推論である。 すべて高コストである。 すべて確率的である。
構造化表現における整合性チェック
構造化表現では、状況が異なる。
個体の同定が決定的である。 「サムスン電子」という個体には固有の識別子がある。 「Samsung Electronics」は同じ識別子を指す。 同一性の判定に推論は不要である。
属性が明示的である。 「売上高」は型付きの属性である。 「営業利益率」は別の属性である。 二つの属性が同一か異なるかはフィールド比較で確認できる。
時間がフィールドである。 「2024-Q3」のような値がある。 「前四半期」を解釈する必要はない。 二つの記述が同一時間かどうかは値の比較一つで済む。
この三つが決定的であるとき、矛盾検出のパターンが機械化可能になる。
同一個体 + 同一属性 + 同一時間 + 異なる値 = 矛盾。 同一個体 + 同一属性 + 異なる時間 + 異なる値 = 変化。矛盾ではない。 異なる個体 + 同一属性 + 同一時間 + 値の合計 > 100% = 推論的矛盾。
これにLLMは不要である。 フィールド比較と算術である。
すべての矛盾が捕捉できるわけではない。 「AI市場は成長している」と「AI投資は減少している」が矛盾するかどうかは、 依然として意味的判断が必要である。 しかし機械的に検出可能な矛盾を先に捕捉すれば、 意味的判断が必要なケースだけが残る。 ここでもまた、安価なものが先に来る。
整合性チェックの解決戦略
矛盾を検出した後は、解決しなければならない。
解決戦略はコンテキストによって異なるが、構造化表現ではポリシーとして宣言できる。
最新優先。 同一個体の同一属性が衝突する場合、より新しいタイムスタンプの方を選ぶ。代表取締役、株価、人口のような変化する値に適している。
最高信頼優先。 確信度がより高い方を選ぶ。あるいは出典の階層が定義されていれば、より上位の出典を選ぶ。一次情報 > 二次情報 > 非公式情報。
両方を提示する。 矛盾を解決しない。両方をコンテキストに入れるが、矛盾を明示的にマークする。「出典Aは1,840億ドルと言い、出典Bは2,140億ドルと言う。定義の違いによる可能性が高い。」 LLMに矛盾を認識させた上で推論させる。
両方を除外する。 矛盾が解決できなければ、両方を除外する。情報がないことは、誤った情報があることより良い。
自然言語パイプラインでは、これらの戦略はプロンプト内に自然言語で書かれる。 「最新の情報を優先してください。」 LLMがこれを一貫して守るかどうかは、やはり確率の問題である。
構造化表現では、これらの戦略はポリシーとして宣言される。 「同一個体 + 同一属性の衝突時: 最新タイムスタンプ優先。タイムスタンプが同一なら: 最高確信度優先。確信度が同一なら: 両方を提示。」 機械が実行する。確率ではない。
パイプライン上の位置
整合性チェックはフィルタリングの後に来る。
検証 -> フィルタリング -> 整合性チェック。
なぜこの順序か。
検証がフォーマットエラーを除外する。 フィルタリングが不要な情報を除去する。 整合性チェックは検証とフィルタリングを通過したものだけを処理すればよい。
整合性チェックはペアを比較する。 n件の記述に対して、n(n-1)/2のペアが存在する。 1,000件なら約500,000ペア。30件なら435ペア。
検証とフィルタリングで1,000件が30件に減れば、 整合性チェックのコストは500,000から435へ – 千分の一に下がる。
順序は重要である。
まとめ
個別に有効で、関連があり、信頼できる情報が、 集合として集まると互いに矛盾しうる。
矛盾には三つの種類がある。 時間的矛盾 – 異なる時点の値が共存する。 出典間矛盾 – 異なる出典が異なる値を提示する。 推論的矛盾 – 個別には有効だが、組み合わせると論理的に両立しない。
LLMは矛盾をうまく処理できない。 コンテキスト内の情報を信頼する傾向があり、 矛盾検出には推論が必要であり、 解決の一貫性は保証されない。
自然言語では、整合性チェックは全過程がLLM推論である。 個体の同定、属性の同定、時間の抽出、値の比較 – すべて確率的で高コストである。
構造化表現では、個体識別子、属性型、時間フィールドが存在するため、 矛盾検出の多くがフィールド比較と算術に変換される。 解決戦略もポリシーとして宣言される。
整合性チェックはパイプラインにおいてフィルタリングの後に来る。 検証とフィルタリングが集合を縮小しなければ、比較ペア数は減らない。 安価なものが先に来て、個別のチェックが終わった後に集合のチェックが来る。