1章 プロンプトエンジニアリングの世界
#LLMのプロンプトエンジニアリング
LLMはテキストの次の単語を予測するモデルにすぎない
LLMと対話するには、完成させるべきテキストの塊である「プロンプト」を作り上げること
→ プロンプトエンジニアリング
code:rust
// ゴール: 関数に与えられた任意の数値を英語の文字列として出力する関数を作成してください
// 1 -> "one"
// 2034 -> "two thousand thirty four"
// 11 -> "eleven"
fn
言語モデル
iPhoneの単語予測 → マルコフモデル
seq2seq
情報のボトルネック
プロンプトエンジニアリング
モデルへの入力
→プロンプト
モデルが補完することを期待するドキュメントやテキストのブロック
目の前の問題に対応するために必要な情報を含むようにプロンプトを作り上げるプラクティス
→プロンプトエンジニアリング
プロンプトエンジニアリングの洗練度レベル
最も基本的な形式
非常に薄いアプリケーション層のみを使用
最初のGithub Copilotも現在のファイルをモデルに渡して補完するだけ
次の線練度レベル
モデルへのユーザー入力を修正および拡張
ユーザーの音声をテキストに変換など
過去のサポートの記録や関連ドキュメントから得られた情報なども
(Github Copilot)隣接タブから関連するコードスニペットを取り込み→補完の品質が向上
ステートフル
会話や履歴が長くなるにつれて、プロンプトの超過やアテンションを奪う不要なコンテンツが入り込むので、それをいい感じに対処する必要がある
本書で扱う最後の洗練レベル→エージェント機能