Generated Knowledge Prompting — 生成知識プロンプティング

From Systems analysis Wiki
Jump to navigation Jump to search

Generated Knowledge Prompting (GKP, 生成知識プロンプティング) は、推論と事実に基づく知識を必要とする課題解決において、大規模言語モデル (LLM) の能力を向上させるために開発されたプロンプトエンジニアリングの手法です[1]。GKPの基本的な考え方は、モデルに2段階でタスクを実行させることです。まず、クエリのトピックに関連する一連の事実を生成させ、次に、その知識に基づいて最終的な回答を生成させます[2]。

このアプローチにより、LLMは内部に持つ「パラメータ化された」知識を活性化し、利用することができます。この知識は数十億のパラメータに暗黙的に符号化されていますが、標準的なクエリではアクセスできないことがよくあります。GKPは、モデルが「何を知っているかを知らない」という問題を解決し、断片的な事実を結びつけて正しい推論を構築するのを助けます[2]。

歴史と起源

Generated Knowledge Promptingの手法は、Jiacheng Liuが率いる研究者グループによって執筆された学術論文「Generated Knowledge Prompting for Commonsense Reasoning」で初めて発表されました。論文の初版は2021年10月15日にプレプリントサーバーのarXivで公開され、最終版は2022年に権威ある学会であるAssociation for Computational Linguistics (ACL)で発表されました[1]。

GKPは、LLMとの対話のパラダイムを変えることを提案した、最初期かつ最も重要な手法の一つとなりました。これにより、焦点は一度の回答生成から、2段階の認知的プロセスへと移行しました。

2段階の動作メカニズム

GKPのメカニズムは、複雑なタスクを、関連情報の抽出とその後の推論への利用という、2つのより単純なサブプロセスに分割します。

ステップ1:知識生成 (Knowledge Generation)

最初のステップでは、言語モデル(「知識ジェネレーター」)を使用して、元の質問に関連する複数(M個)の知識の断片を生成します。このプロセスは、モデルに「コンテキスト内学習」のためのいくつかの例が与えられる、フューショット・プロンプティング技術によって開始されます。

知識生成のためのプロンプトは、厳密に定義された構造を持っています:

  1. 指示: 「トピックに関するいくつかの事実を生成してください」といった一般的な指示。
  2. デモンストレーション例: 人間によって書かれた「質問と知識」のペア。これらの例は、どのような種類の情報が有用であるかをモデルに教えるため、非常に重要な役割を果たします。ここで生成される知識には、回答自体を直接含めてはなりません。
  3. 新しい質問: 知識を生成する必要がある、ユーザーの元のクエリ。

1つの質問に対してM個の知識のバリエーションが生成され(原著論文ではM=20)、第2ステップのために多様な事実のセットが得られます[1]。

ステップ2:知識の統合と回答生成 (Knowledge Integration)

第2ステップでは、別の言語モデル(「推論モデル」)が使用されます。このモデルは、ゼロショットモードで動作することも、特定のタスクに合わせてファインチューニングされていることもあります。

統合プロセスは次のように行われます:

  1. クエリの拡張: 元の質問(q)が、生成されたM個の知識の断片(km)のそれぞれと順次結合されます。その結果、M+1個の拡張クエリ(知識なしの元の質問を含む)が作成されます。
  2. 回答の評価と選択: 推論モデルは、各拡張クエリに対して、考えられる各回答候補(a)の条件付き確率を評価します。最終的な回答は、いずれかのクエリで最も高い確率評価を得た選択肢となります。

この2段階のメカニズムは、「回答する前に、このトピックについて何を知っているかを考え、整理しなさい」という、一種のメタ認知プロセスを導入します。

有効性とテスト結果

GKPの有効性は、常識的推論を評価するための一連の学術的ベンチマークで検証されました。この手法は、ベースラインのアプローチと比較して、パフォーマンスの大幅な向上を示しました。

主要ベンチマークにおけるGKPの結果概要(Liu et al., 2022のデータに基づく)[1]
ベンチマーク名 タスク ベースラインモデルの精度(%) GKP適用後の精度(%) 向上率(%)
NumerSense 数値に関する常識 64.05 72.47 +8.42
CommonsenseQA 一般的な常識 39.89 47.26 +7.37
CommonsenseQA 2.0 一般的な常識 70.20 73.03 +2.83
QASC 科学的な常識 76.74 80.33 +3.59

最大の向上はゼロショット設定で見られ、これはGKPが追加のファインチューニングなしにモデルの内部知識を効果的に活性化できることを証明しています。

他の技術との比較分析

GKP vs. Chain-of-Thought (CoT) - GKPと思考の連鎖(CoT)

GKPとChain-of-Thought(CoT)の主な違いは、生成される情報の種類にあります:

  • GKPは宣言的知識を生成します。これは事実、定義、世界に関する記述(「何を」)であり、モデルに追加のコンテキストを提供します。
  • CoTは手続き的知識を生成します。これは論理的なステップ、計算、一連の推論(「どのように」)であり、モデルに推論の道筋を提供します。

したがって、GKPは事実に基づいた基盤を提供し、CoTは推論の論理的構造を提供します[3]。

GKP vs. Retrieval-Augmented Generation (RAG) - GKPと検索拡張生成(RAG)

GKPとは異なり、Retrieval-Augmented Generation(RAG)の手法は、外部の非パラメトリックな知識源を利用します。

  • GKPは、モデルが訓練中に学習した内部知識を使用します。モデルに、すでに知っていることを「思い出す」よう促します。
  • RAGは、データベース、文書、インターネットからの外部知識を使用します。モデルに、外部の世界で情報を「検索する」よう促します。

GKPとRAGのどちらを選択するかはタスクに依存します。必要な知識が一般的で訓練データ内で十分に表現されている場合はGKPが効果的ですが、高度に専門的、最新、または独自のデータに対してはRAGが不可欠です。

制約とリスク

  • 「ハルシネーション」の問題: GKPの主なリスクは、誤った事実を生成してしまう可能性です。第1ステップでモデルが偽の記述を生成すると、第2ステップではそれが真実として扱われ、自信に満ちた、しかし完全に誤った回答につながります。
  • 計算コスト: この手法はLLMへの複数回の呼び出し(1つのクエリに対してM+1回)を必要とし、標準的なプロンプティングと比較して応答時間(レイテンシ)と利用コストが大幅に増加します。
  • プロンプト開発の複雑さ: GKPの有効性はフューショット例の品質に大きく依存しますが、これらの例を作成するのは自明ではなく、時間のかかる作業です。

発展とハイブリッドアプローチ

GKPに盛り込まれたアイデアは、以下のような、より複雑で信頼性の高いプロンプティング技術開発のきっかけとなりました:

  • Hint-before-Solving (HSP): GKPの直接的な思想的後継であり、「まず知識、次に行動」という2段階の原則を、単純な回答ではなく、CoTにおけるより複雑な推論プロセスに適用します[4]。
  • Verify-and-Edit (VE): GKPとCoTにおける「ハルシネーション」問題への対応策となるハイブリッドフレームワークです。VEはまず(CoTのように)一連の推論を生成し、次に(RAGのように)外部検索を用いて主要な事実を自動的に検証し、最終的な回答を生成する前に推論を編集します[5]。

外部リンク

参考文献

  • Liu, J. et al. (2021). Generated Knowledge Prompting for Commonsense Reasoning. arXiv:2110.08387
  • Liu, J. et al. (2022). Generated Knowledge Prompting for Commonsense Reasoning. In *Proc. ACL 2022*. ACL:2022
  • Wei, J. et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903
  • Wang, X. et al. (2022). Self-Consistency Improves Chain-of-Thought Reasoning in Language Models. arXiv:2203.11171
  • Fu, J. et al. (2024). Hint-before-Solving Prompting: Guiding LLMs to Effectively Utilize Encoded Knowledge. arXiv:2402.14310
  • Zhao, R. et al. (2023). Verify-and-Edit: A Knowledge-Enhanced Chain-of-Thought Framework. arXiv:2305.03268
  • Lin, B. et al. (2020). NumerSense: Probing Numerical Commonsense Knowledge of Pre-trained Language Models. Dataset page
  • Talmor, A. et al. (2019). CommonsenseQA: A Question-Answering Challenge Targeting Commonsense Knowledge. ACL paper
  • Khot, T. et al. (2019). QASC: A Dataset for Question Answering via Sentence Composition. arXiv:1910.11473
  • Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. arXiv:2304.08467

脚注

  1. ↑ 1.0 1.1 1.2 1.3 Liu, J., Liu, A., Lu, X., et al. (2022). “Generated Knowledge Prompting for Commonsense Reasoning”. Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics. [1]
  2. ↑ 2.0 2.1 Liu, J., Liu, A., Lu, X., et al. (2021). “Generated Knowledge Prompting for Commonsense Reasoning”. arXiv preprint arXiv:2110.08387. [2]
  3. ↑ Wei, J., Wang, X., Schuurmans, D., et al. (2022). “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models”. arXiv preprint arXiv:2201.11903. [3]
  4. ↑ Katz, O., Maman, Y., et al. (2024). “Hint-before-Solving Prompting: Guiding LLMs to Effectively Utilize Scaffolding”. arXiv preprint arXiv:2402.14310. [4]
  5. ↑ Zhao, R., Zhang, J., et al. (2023). “Verify-and-Edit: A Knowledge-Enhanced Chain-of-Thought Framework”. arXiv preprint arXiv:2305.03268. [5]