ノート整理:劉軼、天津大学修士、研究分野は知識グラフと大規模モデル
論文リンク:https://doi.org/10.1162/coli_a_00548
発表会議:Computational Linguistics (2025) 51 (2): 467–504.
1. 動機
因果推論は人間の思考の核心的能力ですが、大規模言語モデル(LLMs)は複雑な因果推論タスク(例:溯因推論および反事実推論)を処理する際に依然として課題を抱えています。その核心的な難点は、テキスト中の複雑な因果構造(例:多イベント分岐関係)が通常時系列記述に暗黙的に含まれており、LLMsが明示的に学習しにくい点にあります。一方、プログラミングコードの条件文は因果関係をより直接的かつ頻繁に表現できるため、コード言語モデル(Code-LLMs)はより強い因果推論能力を有する可能性があります。そこで、Code-LLMsが汎用LLMsより因果推論に優れているか、またコードプロンプトがテキストプロンプトより因果構造を明確に記述できるかを探求する必要があります。
2. 貢献
本論文の主な貢献は以下の通りです:
(1) 因果推論タスクを処理するためのコードプロンプトを設計し、コード内の条件文を利用して因果構造を表現。
(2) ゼロショットおよびワンショット設定下で、複数の汎用LLMs(例:LLAMA-2、GPT-3)とCode-LLMs(例:CODELLAMA、CODEX)を溯因推論および反事実推論タスクで包括的に評価し、コード大規模言語モデルが汎用大規模言語モデルより因果推論に優れ、大半のモデルでコードプロンプトがテキストプロンプトより有効であることを検証。
(3) プロンプトの情報、構造、フォーマット、プログラミング言語を変更する介入実験により、プログラミング構造(特に条件文)がコードプロンプトの有効性の鍵であることを明らかに。
(4) 条件文のみのコードコーパスで大規模言語モデルをファインチューニングするだけで因果推論能力を向上させられることを証明。
3. 方法
主に2つの挑戦的な因果推論タスクを考慮:溯因推論と反事実推論。溯因推論は前提と一致する結果に対して合理的な原因を生成するものを要求。反事実推論は反事実分岐で何が起こるかを問う。タスクと研究質問の概要は図1に示され、タスク中のイベント間の因果関係は図1左図、本研究で議論される研究質問(大規模言語モデルの因果推論能力の活性化と向上方法)は図1右図に示す。これらの研究質問は以下の通り:
• コード言語モデルは因果推論で汎用言語モデルより優れているか?
• コードプロンプトは因果構造記述でテキストプロンプトより優れているか?
• コードプロンプトのどの側面が有効性を生むか?
• コードデータで大規模言語モデルの因果推論能力をどう向上させるか?
図1 タスクと研究質問の概要
溯因推論のコードプロンプト構築は図2に示され、因果構造はメイン関数内の実行フローを通じて表現:前提を実行、仮説が満たされれば結論を実行。イベント内容は関数内のコメントとして埋め込み、目標関数は末尾にモデル生成用に配置。
図2 溯因推論コードプロンプト構築
反事実推論のコードプロンプト構築は図3に示され、if-elif構造でオリジナル分岐と反事実分岐を区別し因果論理を明確にし、コメントでタスク要求を明示、例:オリジナル結論の最小変更。
図3 反事実推論コードプロンプト構築
テキストプロンプト設計では同一因果構造を自然言語で記述。モデル比較では<LLAMA-2, CODELLAMA>や<GPT-3, CODEX>のようなペアを選択、同じアーキテクチャだがテキスト/コード訓練コーパスの比率が異なる。
コードプロンプト構築要因の探求では情報、構造、フォーマット、言語の4側面で介入。
4. 実験
結果評価実験では、溯因推論にARTデータセット、反事実推論にTimeTravelデータセットを使用、評価指標はBLEU-4、ROUGE-L、CIDEr、BERTScore。ゼロショット下で溯因推論自動評価結果は表1、反事実推論は表2;ワンショット下は表3;人間評価は表4。
プロンプト介入実験では、情報面でタスク指示と関数名の2種先驗情報を研究。「無指示」ではプロンプトからタスク指示削除、「関数名撹乱」ではオリジナル関数名を匿名関数Xに置換;構造面で条件構造を順次構造に変換、または条件構造内関数位置をランダムシャッフル;フォーマット面でオリジナル以外にクラスとプリントの2種テスト;言語面でオリジナルPythonをJavaとCに変換しプログラミング言語影響を評価。結果は表5。
ファインチューニング実験では、既存コードコーパスCodeAlpaca-20k(Chaudhary, 2023)を使用し、20,000の指示追従データを用いてLLAMA-2をCode Alpacaモデルにファインチューニング。3つの7BモデルLLAMA-2、QWEN1.5、DEEPSEEK-LLMをバッチサイズ128で1エポック訓練、AdamW最適化器、学習率2e-5、ウォームアップ率0.03。最大長512でCodeAlpaca大部分をカバー。ハイパーパラメータはARTとTimeTravel検証集でグリッドサーチ選択。条件文ファインチューニングモデルの自動評価は表6。性能向上の訓練データ量依存を調べ、訓練データ割合0%~100%で評価、結果は図4。
表1 溯因推論自動評価結果表
表2 反事実推論自動評価結果表
表3 ワンショット設定下評価結果表
表4 人間評価結果表
表5 介入プロンプト実験結果表
表6 条件文ファインチューニングモデルの自動評価結果表
図4 異なる割合の訓練データを使用したファインチューニング後モデル性能図
実験により、複雑な因果構造をコードで記述することは大半のモデルでより明確で理解しやすく、すべてのモデルでワンショット設定がゼロショットより優れ、コード言語モデルはほとんどの設定で対応汎用言語モデルを上回り、大半のモデルでコードプロンプトがテキストプロンプトを上回る;コード言語モデルとコードプロンプトの優位性は各種設定で堅牢。イベント間関係を合理的に記述する条件構造は推論時に重要で、モデルはフォーマットと言語介入に頑健で、細かなプロンプトエンジニアリングで性能向上可能;また大半の場合、訓練データ0%から20%で最大性能向上が見られ、少量(1000未満)の条件文コードで因果推論能力を大幅向上可能で、条件文が因果推論強化の鍵。
5. まとめ
本論文はコード言語モデル(Code-LLMs)の因果推論能力、および因果推論タスクでのコードプロンプト有効性を研究。複雑因果推論タスクでコード言語モデルが同一構造の汎用言語モデルを上回ることを証明。テキストプロンプト比でコードプロンプトは因果構造記述で有効で広範言語モデル性能向上。本論文はさらにコードプロンプト各側面の重要性を分析、コード中合理因果構造提供が合理出力生成に寄与することを発見。これら観察基に条件文コードコーパスでのファインチューニングで因果推論向上を仮定し実験検証。これら発見は、コード、特に条件文がプロンプトとファインチューニングで言語モデルの因果推論活性化・向上に重要役割を果たすことを示す。