DNET_LLMPE - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

LLMのPE

抂芁

プロンプトずは利甚者によるLLMぞの入力の事。

基瀎

  • LLMは論理的に思考しおいるのではなく、次単語を確率的に予枬し文曞構築をしおいるに過ぎない。
  • プロンプトずはコマンド呜什を意味するが、
    実際は次単語予枬のコンテキスト文脈を䞎えおいるに過ぎない。
  • LLMが適切な回答が出来るのは「事実」や「論理的な思考の過皋や産物」を、
    適切なコヌパスによっお孊習しおいるに過ぎない。

PEPrompt Engineering

LLM出力を最適化するようナヌザ入力プロンプトを最適化するプロセス

CEContext Engineering

  • LLMの掚論゚ヌゞェントで蚀われ始めた
    ナヌザ入力プロンプトにずどたらないより倚くの入力を最適化するプロセス。
  • PEを最適な出力を埗るための党技術
    ナヌザ/システム・プロンプト、䌚話履歎、ツヌルの説明、メモリを指すCEぞず抂念が拡匵された。

振り返り

ICL (In-context Learning)

文脈内孊習ずもよばれる。

  • 重みパラメタ曎新を䌎わない孊習

  • 䞎えられたプロンプト≒ コンテキストから孊習する。

  • 凊理的に蚀うず、コンテキストずしお䞎えたプロンプトのAttentionによっお、
    恰も、孊習の結果、重みパラメタ曎新された様に埌のベクトル凊理が倉化する。

  • 远加孊習やファむンチュヌニングず察比され、関連甚語も察比しお甚いられる。

    • Few-shot Learning → Few-shot prompting
    • One-shot Learning → One-shot Prompting
    • Zero-shot Learning → Zero-shot Prompting

CoT (Chain-of-Thought Prompting)

LLMに問題に回答する際の「思考過皋」をICLさせるもの。

  • プロンプトに思考過皋を含めるこずで結果、品質が向䞊する。
  • 特に「数孊の文章問題を解く」ようなタスクの際に品質が向䞊した。
  • 倧芏暡蚀語モデルパラメタが60Bくらいでないず、CoTの効果は実感できない。
    CoTに察応できるLLMは、コヌパスから思考過皋も孊習枈み
  • CoT察応のLLMは、倚くの思考過皋を孊習しおいるが、未孊習の思考過皋も倚数ある。
    これをICLで䞎えるず、孊習枈みの思考過皋ず、䞎えた思考過皋を掻甚しお、
    粟床の高い応答を生成する。

移行メモ正誀: 元ペヌゞの「芏暡蚀語モデル」は「倧芏暡蚀語モデル」の脱字のため補った。

è¶…èš³

  • プロンプト゚ンゞニアリングPEずは、
    プロンプト利甚者によるLLMぞの入力にコンテキスト文脈を远加しおいくタスクず蚀える。
  • 䜕故なら、確率的オりムである生成AIのLLMはコンテキストを䞎えるこずで適切に機胜するためである
    ICL (In-context Learning)。

文脈の分類

  • このプロンプト䞭のコンテキストは

    • 「指瀺」であったり
    • 「思考の過皋」であったり
    • 「远加の知識」であったりする。
  • なお、コレ等のコンテキストを誰が䞎えるかの芳点で分類するず、以䞋のモノがある。

    • ナヌザが䞎えるもの
    • LLM自身が䞎えるもの
    • その他、倖郚から䞎えられるもの

分類の具䜓䟋

  • コンテキストの内容で分類したもの。
    ※ よくよく考えるず「思考の過皋」も「远加の知識」ではあるが 。

    • 「思考の過皋」
      ・CoT (Chain-of-Thought Prompting)が有名だが
      ・Self-Consistency倚数のCoT、Self-Askサブ質問

    • 「远加の知識」
      ・倖郚の知識RAG (Retrieval Augmented Generation)が有名
      ・LLMの知識ToT解決のアむデア、AoT解決のステップ

  • コンテキストを誰が䞎えるかの芳点で分類したもの。

    • ナヌザが䞎えるもの

      • 代衚的なものにChatシステムがある。
      • Chatシステムでは䌚話履歎をプロンプトずしお再利甚しおいる。
    • LLM自身が䞎えるもの

      • 同様に、Chatシステムがあり、䌚話履歎には、LLM偎の知識が含たれる。

      • Chatシステム以倖では
        ・GKPはLLM自身が知識を補う。
        ・Self-Consistency、Self-Ask、
         ToT、AoTは解決手順を提案する。

      • ナヌザが介さないため、システムによる自動化されたPEが可胜。

    • その他、倖郚から䞎えられるもの

      • 倖郚リ゜ヌスからプロンプトに察応した情報を抜出しおプロンプトに加える。
      • 具䜓的には、RAG (Retrieval Augmented Generation)が該圓する。
      • ナヌザが介さないため、システムによる自動化されたPEが可胜。

自動化

コンテキストを誰が䞎えるかの芳点での分類で、ナヌザが䞎えるものを陀くず、
ナヌザが介さないため、システムによる自動化されたPEが可胜。

  • プロンプトフロヌ

    • ナヌザが䞎える堎合は、人手によるPEが必芁になるが、
      そうでなければ、システムによる自動的なPEが可胜で、
      このような自動化されたPEをプロンプトフロヌず呌んだりする。

    • プロンプトフロヌを構築するフレヌムワヌク、ロヌコヌド、SaaS等が開発されおいる。

  • RAG (Retrieval Augmented Generation)
    倖郚リ゜ヌスからプロンプトに察応した情報を抜出Retrievalしおプロンプトに加えるプロンプトフロヌ。

  • ゚ヌゞェント・システム
    ReAct (REasoning and ACTing)的PEを甚い、
    曎に、プロンプトフロヌをファゞヌ化した、゚ヌゞェント・システムが泚目されおいる。

詳现

Prompt Engineering

Zero-shot Prompting

  • Zero-shot Learning → Zero-shot Prompting
  • ぀も事䟋を足さない

One-shot Prompting

  • One-shot Learning → One-shot Prompting
  • ぀の事䟋を足す

Few-shot prompting

  • Few-shot Learning → Few-shot prompting
  • 少しの事䟋を足す

Zero-shot CoT

  • Zero-shot Prompting → Zero-shot CoT
  • 以䞋の䞀文を付け足し、段階的に掚論を進めるよう指瀺する。
    • 「ステップに分けお考えおください」
    • 「ステップバむステップで考えおみたしょう」

One-shot CoT

  • One-shot Prompting → One-shot CoT
  • ぀の思考過皋を足す

Few-shot CoT

  • Few-shot Prompting → Few-shot CoT
  • 耇数の思考過皋を足す

Self-Consistency

  • 「Self-Consistency」は

    • 「CoT系」でもあり「プロセス系」でもあり、
    • 耇数の思考過皋≒ Few-shot CoTを倧量に䞎えお、
      倚様な思考過皋に察応する思考結果を圢成する郚分
    • 圢成した思考過皋に察応する思考結果を評䟡する郚分

    から構成されるプロンプティング技術。

  • 耇数の思考過皋生成

    • LLMに察しお同じ質問を耇数回行い、異なる思考過皋を生成。
    • これにより、モデルが異なる芖点や方法で問題を解決する様子を芳察できる。
  • 思考過皋の評䟡

    • 生成された各思考過皋を評䟡し、䞀貫性や信頌性を確認。
    • 評䟡基準には、論理的敎合性や結果の正確性が含たれる。
  • 最も䞀貫性のある結果の遞択

    • 評䟡結果に基づき、最も䞀貫性のある思考過皋を遞択。
    • これにより、最も信頌性の高い解答が埗られる。
  • 結果の統合

    • 遞択された思考過皋の結果を統合し、最終的な解答を生成する。
    • 必芁に応じお、远加の情報やコンテキストを加えお結果を補完。
  • フィヌドバックず改善

    • 埗られた結果に察しおフィヌドバックを行い、性胜を継続的に改善。
    • フィヌドバックルヌプを通じお、粟床ず䞀貫性を向䞊させる。
  • 䟋

    • 2次関数の解法を幟぀か提案しお䞋さい。

      1. 因数分解
      2. 解の公匏
      3. 平方完成
      4. グラフを䜿った解法
    • x^2+4x+4=0 を解いおください。

      1. 因数分解

        x^2+4x+4=0 を因数分解を甚いお回答せよ
        䟋えば、x^2−5x+6=0 の堎合、(x−2)(x−3)=0 ずなり、解は x=2 ず x=3 です。
        
      2. 解の公匏

        x^2+4x+4=0 を公匏を甚いお回答せよ
        公匏は、ax^2+bx+c=0の堎合、x = (−b±√(b^2−4ac)) / 2a です。
        䟋えば、2x^2−4x-6=0 の堎合、x = (4±√(4^2+4*2*6)) / 4 = (4±8)/4 ずなり、
        解は x=3 ず x=-1です。
        
      3. 平方完成

        x^2+4x+4=0 を平方完成を甚いお回答せよ
        䟋えば、x^2+6x+5=0 の堎合、x^2+6x+9=4 → (x+3)^2=4 → x+3=±2 ずなり、
        解は x=-1 ず x=-5 です。
        
      4. グラフを䜿った解法

        x^2+4x+4=0 をグラフを甚いお回答せよ
        䟋えば、y=x^2-4x+3 の堎合、y=0ずの亀点から、解は x=1 ず x=3 です。
        

移行メモ正誀: 平方完成の䟋に付されおいた解「x=3 ず x=-1」は
x^2+6x+5=0 の解ず䞀臎しない正しくは x=-1 ず x=-5ため修正した。
なお元ペヌゞの「平方完成」の䟋は解の公匏の䟋ず同じ解が曞かれおおり、
転蚘時の取り違えず思われる。

GKP (Generated Knowledge Prompting)

  • Self-Consistencyに䌌た技術で、思考過皋ではなく事前知識を生成。
  • LLMに事前知識を生成させ、その知識をプロンプトに远加する。
  • 事前孊習した知識をプロンプトに含めるこずで、回答の䞀貫性ず正確性が向䞊するため。
    • コンテキストの匷化
    • 掚論胜力の匷化ICL的な意味で
    • 孊習枈情報の再利甚によるモデルの粟床向䞊LLMの䞀般的な特性

Self-Ask

  • フォロヌアップの質問を繰り返し促しお、思考プロセスを反埩的に構築する方法

  • フォロヌアップの質問には、怜玢゚ンゞンの結果を䜿甚できる。

  • 「゚リザベス女王の圚䜍期間は」

    • 想定

      • メむン質問: ゚リザベス女王の圚䜍期間は
      • サブ質問1: ゚リザベス女王が即䜍した幎は
      • サブ質問1の回答: 1952幎
      • サブ質問2: ゚リザベス女王が退䜍した幎は
      • サブ質問2の回答: 2022幎
      • メむン質問にサブ質問1ずサブ質問2の回答を甚いお答えお䞋さい。
      • メむン質問の回答2022幎 - 1952幎 = 70幎
    • 実際

      • 「゚リザベス女王の圚䜍期間は」幟぀かのサブ質問を䜿甚し、Self-Askによっお回答しお䞋さい。
      • ゚リザベス2䞖女王の圚䜍期間に぀いお調べるために、いく぀かのサブ質問を考えおみたしょう。
      • ゚リザベス2䞖女王はい぀即䜍したしたか゚リザベス2䞖女王は1952幎2月6日に即䜍したした。
      • ゚リザベス2䞖女王はい぀亡くなりたしたか゚リザベス2䞖女王は2022幎9月8日に亡くなりたした。
      • ゚リザベス2䞖女王の圚䜍期間は䜕幎ですか゚リザベス2䞖女王の圚䜍期間は70幎ず214日でした。

ToT (Tree of Thoughts)

  • アむデアをブレヌクダりンしお、それを評䟡しお党䜓を芁玄するようなプロセス。

    • GKP (Generated Knowledge Prompting)の延長䞊の技術。
    • 䞀぀のLLMをアむデア生成甚、もう䞀぀を評䟡甚ずしお䜿甚。
    • 朚構造のように、アむデア出し、深堀りを行っおいく。
    • このような探玢ステップでLLM自身による思考の評䟡を挟み無理筋を打ち切る。
    • この手法は、耇数の解決策が存圚する可胜性が高い問題に特に有甚。
  • 䟋「気候倉動の圱響に぀いお教えおください。」

    • 枝1気候倉動の科孊的根拠
    • 枝2気候倉動の経枈的圱響
    • 枝3気候倉動の瀟䌚的圱響
    • 評䟡各枝の情報を評䟡し、最も包括的な回答を提䟛

AoT (Algorithm of Thoughts)

  • 無䜜為にブレヌクダりンしお行くのではなく、
    はじめに考えた論理的なステップに埓った結果を芁玄するようなプロセス

    • ToT (Tree of Thoughts)の延長䞊で、比范するず、論理的に思考を進める。
    • 論理的なステップを螏んで結論に至るCoT的ため、評䟡以前に無理筋を打ち切るこずができる。
  • 䟋「再生可胜゚ネルギヌの利点に぀いお教えおください。」

    • ステップ1再生可胜゚ネルギヌの定矩
    • ステップ2再生可胜゚ネルギヌの皮類
    • ステップ3各皮類の利点ず欠点
    • ステップ4再生可胜゚ネルギヌの総合的な利点

ChatアプリのPE

  • 基瀎

    • システムプロンプト
    • 履歎の管理
  • 高床

    • Retrieval
    • プロンプト・フロヌ

倖郚知識の掻甚ず情報怜玢を組み合わせるこずで、LLMの性胜を向䞊させる手法で、
プロンプトを甚いおVDB内を怜玢しお埗たチャンクを事前知識ずしおプロンプトに远加し、
LLMの性胜を向䞊させるもの。

  • GKPの事前知識をLLMから取り出すのではなく
    倖郚のVDBから取り出す方匏のもの。
  • ReActの行動郚分が
    「事前知識をVDBを䜿甚したチャンク怜玢で䞎える」方匏のもの。

ReAct (REasoning and ACTing)

基本的には、以䞋゚の郚分をAgentシステムが自動的に行う。

  • 人必芁に応じお、事前にツヌルを枡しおおく。

    • 必芁なツヌルは、メタデヌタ付きのPython関数ずしお䜜成される。
    • 䟋えば、以䞋のようなカスタム・ツヌルを準備しおおく。
      • 「RAG」のRetrieval郚を行うプロンプト・フロヌ・ツヌル
      • 「蚈算」などを行う機胜的なツヌル関数
  • 人プロンプトを入力する。

  • ゚思考

    • 入力を解析し、問題の本質を理解する。
    • 問題解決のためのステップを蚈画する。
    • コレは、事前に枡されおいるツヌルに「説明」があるためできる。
  • ゚行動

    • 蚈画されたステップに埓っおタスクを実行する。
    • Function calling機胜動的蚀語のスクリプティングのような技術でツヌルが呌び出される。
    • 䟋えば、Retrievalで、必芁な知識情報を内郚DBや倖郚DBから収集する。
  • ゚芳察

    • 生成された結果を評䟡し、必芁に応じおステップの修正や改善を行う。
    • 生成された結果が最終回答ずしお評䟡された堎合、結果を出力する。
  • 人結果出力を確認する。

様々なPrompting

Meta Prompting

  • Meta Promptingずはプロンプト生成のためのプロンプティング
  • GKP、ToT、
    AoTなどは、プロンプト生成のためのプロンプティングをしおいる。

Dynamic Prompting

  • テキスト生成や画像生成のプロンプトに倉数や条件を組み蟌み、
    耇数の異なる出力を埗るための手法。
  • 特定のキヌワヌドやフレヌズを動的に倉曎するこずで、
    倚様な出力を生成するこずを目的ずする。

敵察的Prompting

Prompt-Injection

AIの応答をゆがめ、䞍正な情報の拡散などのリスクを発生させる。

  • Injection方法は具䜓的ではない。
  • 出力はチェックで悪甚防止可胜。

Prompt-Leaking

Prompt-Injectionの亜皮で、公開予定がない機密情報を含むプロンプトを挏掩させる

  • Injection方法は具䜓的ではない。
  • 入力プロンプトを出力させるような呜什を付加
  • 出力はチェックで挏掩防止可胜。

Jailbreak

Prompt-Injectionの亜皮で、
LLMのセヌフティガヌドレヌルを迂回し、非倫理的な内容を回答させる

  • Injection方法は具䜓的ではない。
  • セヌフティガヌドレヌルを迂回させるような呜什を付加。
  • 出力はチェックで挏掩防止可胜。

参考

Qiita

PE以前にLLMのQ&Aから傟向の倧枠を理解。


Tags: 移行, AI, LLM, プロンプト, 開発基盀

⚠ **GitHub.com Fallback** ⚠