【要約】LLMに公的データの欠損を埋めさせたら、原文にない金額を作られた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
補助金サイトの運営者が、APIの欠損データをLLMで補完しようとした際、深刻な誤情報が生成された。
- ・計算ミス:月額を年額に誤って計算する。
- ・合算ミス:条件付きの加算額を総額として扱う。
- ・区分混同:異なる申請枠の数値を組み合わせて出力する。
// Approach
開発者はLLMの出力を鵜呑みにせず、プログラムによる機械的な検証プロセスを導入した。
- ・引用の照合:LLMに根拠となる原文を引用させ、NFKC正規化を用いて原文との一致を確認する。
- ・金額の抽出:引用文内に、抽出した金額が実際に含まれているかを正規表現で検証する。
- ・複数区分の排除:申請枠が複数ある制度は、誤情報の混入リスクが高いため採用対象から外す。
// Result
177件の検証対象のうち、採用できたのは54件に留まった。
- ・高い棄却率:約7割が複数区分によるリスクで不採用となった。
- ・精度の優先:誤情報を防ぐため、正しい値であっても検証を通過できない場合は「表示しない」判断を下した。
- ・品質指標の転換:掲載件数ではなく「載せなかった件数」を品質指標として公開している。
Senior Engineer Insight
> 公的データのような「誤りが許されない」領域でのLLM活用は、極めて高いハードルがある。本件の肝は、LLMを「生成器」ではなく「抽出器」として扱い、その出力を「検証可能な形式(引用)」で強制させた点にある。しかし、検証ロジック自体が正規表現に依存するため、偽陰性(正しい値の棄却)が発生する。実戦では、検証コストと誤情報の社会的損失を天秤にかけ、不確実な場合は「出さない」という設計判断が極めて重要である。