「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
PE(Prompt Engineering)
- プロンプトとは利用者によるLLMへの入力の事。
- PEは、LLM出力を最適化するよう入力(プロンプト)を最適化するプロセス
振り返り †
基礎 †
- LLMは論理的に思考しているのではなく、次単語を確率的に予測し文書構築をしているに過ぎない。
- プロンプトとはコマンド(命令)を意味するが、実際は次単語予測のコンテキスト(文脈)を与えているに過ぎない。
- LLMが適切な回答が出来るのは「事実」や「論理的な思考の過程や産物」を、適切なコーパスによって学習しているに過ぎない。
In-context Learning †
- 重み(パラメタ)更新を伴わない学習
- 与えられたコンテキストから学習する。
- 処理的に言うと、コンテキストとして与えたプロンプトのAttentionによって、
恰も、学習の結果、重み(パラメタ)更新された様に後のベクトル処理が変化する。
- ファイン・チューニングなどと対比して用いられる。
- Few-shot Learning → Few-shot prompting
- Zero-shot Learning → Zero-shot Prompting
Prompt Engineering †
CoT (Chain-of-Thought Prompting) †
- LLMに問題に回答する際の「思考過程」を学習させた。
- 結果、プロンプトに思考過程を含めることで品質が向上した。
- 特に「数学の文章問題を解く」ようなタスクの際に品質が向上した。
- 規模言語モデル(パラメタが60Bくらい)でないと、CoTの効果は実感できない。
Few-shot prompting †
- Few-shot Learning → Few-shot prompting
- 少しの事例を足すCoT。
Zero-shot Prompting †
- Zero-shot Learning → Zero-shot Prompting
- 1つも事例を足さない。
Zero-shot CoT †
一文を付け足し、段階的に推論を進めるよう指示する。
- 「ステップに分けて考えてください」
- 「ステップバイステップで考えてみましょう」
Self-Consistency †
- CoTと同様に思考ステップをPromptの中に例として含める。
- Few-shot promptingで複数の思考プロセスと解のペアをLLMに生成させる。
- 最も一貫性のある回答を選択することで、より高い精度を実現する。
- 一貫性をチェックすることで、ハルシネーションの確認に使用できる。
GKP (Generated Knowledge Prompting) †
- LLMに事前知識を生成させ、その知識をプロンプトに追加する。これが何故、効果的なのか?
- コレは、生成過程の文字が入力プロンプトに含まれる文字と比べて生成結果に与える影響が小さいため。
- 生成過程で生成された文字は、モデルの内部コンテキストとして機能するが、入力プロンプトほど強い影響を与えない(パラメタ的、Attention的でないため)。
- 入力プロンプトに与えた文字は、モデルの生成プロセス・生成結果に直接的かつ強力な影響を与える(パラメタ的、Attention的であるため)。
ToT (Tree of Thoughts) †
AoT (Algorithm of Thoughts) †
Meta Prompting †
Dynamic Prompting †
ReAct? †
- 思考
- 入力を解析し、問題の本質を理解する。
- 問題解決のためのステップを計画する。
- 行動
- 計画されたステップに従ってタスクを実行する。
- 必要な情報を内部知識ベースや外部データベースから収集する。
- 観察
- 生成された結果を評価し、必要に応じて修正や改善を行う。
ReActの行動部分がVDBからのチャンク検索になったもの。
敵対的Prompting †
Prompt-Injection †
Prompt-Leaking †
Jailbreak †
詳細 †
参考 †
Qiita †