Core Concepts
LLMは、ユーザーの意図から逸脱したり、内部矛盾を含んだり、事実知識と齟齬のある出力を生成する可能性があり、これらのハルシネーションはLLMの広範な応用を危険にさらす可能性がある。本研究では、LLMによるコード生成におけるハルシネーションの種類と程度を明らかにし、ハルシネーション認識と軽減のための基準を提案する。
Abstract
本研究は、LLMによるコード生成におけるハルシネーションを包括的に分析し、その分類を行った。
まず、13,968個のLLM生成コードを収集し、3,084個のサンプルを抽出して分析した。その結果、ハルシネーションを5つの主要カテゴリーと19の具体的なタイプに分類した。
意図の矛盾: LLMが生成したコードが、ユーザーの意図から大きく逸脱している。
コンテキストの逸脱:
不整合: コードの表現、定数、ループ/条件/分岐などがコンテキストと整合していない。
繰り返し: コードの一部が過度に繰り返されている。
デッドコード: 実行されるが結果が使われていないコードが含まれている。
知識の矛盾: コードがAPIや識別子の知識と矛盾している。
さらに、これらのハルシネーションの分布と、コードの正解性との相関を分析した。その結果、ほとんどのハルシネーションはコード上の誤りを引き起こすことが分かった。
最後に、ハルシネーション認識と軽減を評価するためのベンチマーク「HALLUCODE」を開発した。HALLUCODEを用いた実験では、既存のLLMがハルシネーションの認識と軽減に大きな課題を抱えていることが明らかになった。
Stats
生成されたコードの約8割以上にハルシネーションが含まれている。
ハルシネーションのある誤りコードの約3割は、ハルシネーション以外の要因によるものである。
ハルシネーションのない誤りコードは全体の約18%を占める。
Quotes
"LLMは、ユーザーの意図から逸脱したり、内部矛盾を含んだり、事実知識と齟齬のある出力を生成する可能性がある。"
"ハルシネーションはLLMの広範な応用を危険にさらす可能性がある。"
"ハルシネーションの存在は、しばしば他の品質上の問題を示唆している。"