Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ちょっと分かりづらい「プロンプトの精度を向上させる26の方法」を再整理して体系化した
Search
ため
January 17, 2024
Technology
0
540
ちょっと分かりづらい「プロンプトの精度を向上させる26の方法」を再整理して体系化した
「プロンプトの精度を向上させる26の方法」が発表されました。
有用なのですが、もう少し使いやすくしたい!と思い、再整理しつつ体系化してみました。
ため
January 17, 2024
Tweet
Share
More Decks by ため
See All by ため
人間知能を目指す第4世代AIとは
tame
0
14
かんたん振り返りフレームワーク
tame
0
72
企業内コミュニティの価値
tame
0
60
十二国記に学ぶ自分の心づくり
tame
0
39
良いチームを作るためのふりかえり(アジャイル レトロスペクティブズ)
tame
0
70
コミュニティマネージャーが組織の知性を上げる
tame
1
76
AIエンジニアとして楽しくスキルアップを続けるには
tame
0
68
Other Decks in Technology
See All in Technology
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
120
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
150
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
550
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
150
非機能品質を作り込むための実践アーキテクチャ
knih
5
1.4k
なぜCodeceptJSを選んだか
goataka
0
160
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
160
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
200
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
The Invisible Side of Design
smashingmag
298
50k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Documentation Writing (for coders)
carmenintech
66
4.5k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Optimizing for Happiness
mojombo
376
70k
Side Projects
sachag
452
42k
Transcript
ちょっと分かりづらい 「プロンプトの精度を向上させる26の方法」 を再整理して体系化した
2 為安 圭介 https://linktr.ee/keisuketameyasu 経歴 札幌在住。 普段の仕事はシステム開発やチームマネジメントなど。 AIコミュニティ”CDLE”の運営にも携わる。 好きなこと 心地よい場で過ごすこと。あるいはそんな場を作ること。
友情とか努力とかチームワーク。 大事にしていること 楽(楽しいこと) 技(得意なスキルを発揮できること) 価(まわりに価値を提供できること) 益(利益を生むこと)
大規模言語モデルの返答が向上する 「プロンプト26の原則」が公開
大規模言語モデルの返答が向上する「プロンプト26の原則」 1. 礼儀を省く:「お願いします」などの礼儀用語は不要。 2. 対象者を明示:「専門家向け」など、返答を受け取る対象者をプロンプトに明示。 3. 複雑なタスクの分割:複雑なタスクを簡単なプロンプトに分ける。 4. 肯定的指示の使用:否定的な言葉ではなく肯定的な言葉を使用。 5.
明確化のための指示:「簡単な言葉で説明して」「中学生にも分かるように説明して」など。 6. 報酬の提示:「良い解答には報酬を出す」と示す。 7. 事例を提示:既存の事例を使用。 8. プロンプトのフォーマット:「###Instruction###」で始め、適宜「###Example###」や「###Question###」を含める。 9. 明確なタスク指示:「あなたのタスクは」と指示。 10.ペナルティの提示:「ペナルティあり」と伝える。 11.自然言語による回答指示:「自然言語で回答して」と指示。 12.先導的な言葉の使用:「ステップバイステップで考えて」と指示。 13.偏見の排除:「偏見を持たず、ステレオタイプに依存しない」と指示。 14.ユーザーとの対話促進:問題解決までモデルに質問させる。 15.テストを含む指導:テストを出してもらい、自分の理解度を試す。 16.モデルへの役割割り当て:モデルに特定の役割を割り当てる。 17.デリミターの使用:特定の区切り文字を使用。 18.繰り返しの使用:特定の単語やフレーズを複数回使用。 19.思考の連鎖:中間ステップを生成し、事例を組み合わせる。 20.出力プライマーの使用:期待される出力の始まりでプロンプトを終える。 21.詳細なテキストの作成指示:「詳細に書いて」と指示。 22.スタイル変更の防止:「スタイルを変更しない」と指示。 23.複数ファイル対応のコーディングプロンプト:複数のファイルにまたがるコーディング作業の効率化のために、自動的に新しいファイルを作成し、生成されたコードを適切 なファイルに挿入するスクリプトを作成することを提案。 24.特定の言葉でテキストを続ける:「与えられた言葉で完成させて」と指示。 25.モデルの要件の明示:コンテンツを制作するためにモデルが守らなければならない要件を、キーワード、規定、ヒント、指示などの形で明示。 26.サンプルに基づくテキスト作成:提供されたサンプルに基づいて同じ言語で書くよう指示。 https://arxiv.org/abs/2312.16171v1
大規模言語モデルの返答が向上する「プロンプト26の原則」 の気になるところ ⚫26が並列で並んでいると多くて理解しづらい ⚫分類が微妙でちょっと分かりづらい ⚫似たようなものがある ⚫言葉(翻訳?)が分かりづらい 言葉を精査し、分類しよう
「プロンプト26の原則」をいったん分類 考え方 ⚫ 過度な礼儀を省く:毎回のお礼は不要。ただし、適度に「よろしく」 「ありがとう!」を織り交ぜる ⚫ 肯定的指示の使用:否定的な言葉ではなく肯定的な言葉を使用。 基本 ⚫ 会話の相手の情報を伝える(人間側)
⚫ 返答を受け取る対象者がどのような背景で何を必要としているのかを述べ る:「私は◯◯で、◯◯の知識は初心者である。◯◯について知りたい。それを 前提に会話してほしい」「今回の対象者はビジネスパーソンです。カーボン ニュートラルについて説明してください」 ⚫ 役割とタスクを明確化する(AI側) ⚫ モデルに特定の役割を割り当てる:「あなたは物理学のスペシャリストです。相 対性理論について説明してください」 ⚫ 明確なタスク指示:「あなたのタスクは、20代のビジネスパーソン向けにITエ ンジニアリングの重要性を理解してもらうためのWebの記事を作成すること です」 応用 ⚫ AIのタスク遂行条件を指定する ⚫ 出力の明確性を指示:「簡単な言葉で説明して」「中学生にも分かるように説明 して」 ⚫ モデルが守る要件をキーワード、規定、ヒントなどの形で明示:「大学職員の働 き方を変える運動のプロモーション文章を作ってください。キーワードに "DX","業務高度化","不要な業務を減らす"を含めること」 ⚫ 指示の仕方を工夫し、AIが指示を理解しやすい ようにする ⚫ プロンプトのフォーマットを工夫する。「#指示」で始め、適宜「#例」や「#質 問」を含める:「#指示 アジャイル開発について説明してください。 #質問 ウォーターフォール開発との違いはなんですか?」 ⚫ 複雑なタスクの分割:「IT業界の現状を一言で説明して→(対話)→今後のIT 業界について2000文字のレポートを書いて。まずは序章を200文字程度で。 →(対話)→その要約を200文字で」 ⚫ 繰り返しの使用:特定の単語やフレーズを複数回使用:「ITエンジニアは不足し ている。ITエンジニアの育成は重要である。会社の将来のためにITエンジニア の募集要項を考えてください」 ⚫ 回答フォーマットの指示 ⚫ 自然言語や特定の言語による回答指示:「自然言語で回答して」「与えられた言 葉で完成させて」「サンプルに基づいて完成させて」と指示。 ⚫ 出力プライマーの使用。プロンプトを期待されるアウトプットの始まりで終わ らせる。:「新NISAの概要を解説してください。説明:」 ⚫ スタイル変更の防止:「私が書いたテキストを修正してください。テキストの文 法を改善するだけです。カジュアルに言い換えるなど、執筆スタイルを変更し てはいけません」 その他の工夫 ⚫ Chain-of-Thought ⚫ 「ステップバイステップで考えて」 ⚫ 対話型の活用 ⚫ 問題解決までモデルに質問させる:「これからは、"20代のビジネスパーソン 向けにITエンジニアリングの重要性を理解してもらうためのWebの記事の作 成に"必要な情報が得られるまで私に質問してください」 ⚫ テスト ⚫ 「品質管理手法のベストプラクティスを教えて、最後にテストを含めてください。 ただし、答えは教えず、私が返答したときに答えが正しいか教えてください」 ⚫ Emotion Prompt ⚫ 「0から1の間で回答に対する自信のスコアを教えてください」 「回答にはでき れば確信をもってください」 「それがあなたのファイナルアンサーですか?」 「自分を信じて、限界を超えてください」 「努力は報われます」 「成長の機会だ と考えて挑戦してください」 ⚫ 報酬とペナルティ ⚫ 「良い解答には報酬を出す」「できなければペナルティあり」
まだ見づらいので、 階層構造を明確にして体系化
プロンプト方法論体系 AIのタスク遂行条件を指定する ⚫ 出力の明確性を指示:「簡単な言葉で説明して」 「中学生にも分かるように説明して」 ⚫ モデルが守る要件をキーワード、規定、ヒントな どの形で明示:「大学職員の働き方を変える運 動のプロモーション文章を作ってください。 キーワードに"DX","業務高度化","不要な業務
を減らす"を含めること」 指示の仕方を工夫し、AIが指示を理解しやすいようにする ⚫ プロンプトのフォーマットを工夫する。「#指示」で始め、 適宜「#例」や「#質問」を含める: 「#指示 アジャイル開発について説明してください。 #質問 ウォーターフォール開発との違いは何か?」 ⚫ 複雑なタスクの分割:「IT業界の現状を一言で説明し て→(対話)→今後のIT業界について2000文字のレ ポートを書いて。まずは序章を200文字程度で。→(対 話)→その要約を200文字で」 ⚫ 繰り返しの使用:特定の単語やフレーズを複数回使用: 「ITエンジニアは不足している。ITエンジニアの育成は 重要である。会社の将来のためにITエンジニアの募集 要項を考えてください」 回答フォーマットを指示する ⚫ 自然言語や特定の言語による回答指示:「自然 言語で回答して」「与えられた言葉で完成させ て」「サンプルに基づいて完成させて」と指示。 ⚫ 出力プライマーの使用。プロンプトを期待され るアウトプットの始まりで終わらせる。:「新 NISAの概要を解説してください。説明:」 ⚫ スタイル変更の防止:「私が書いたテキストを修 正してください。テキストの文法を改善するだ けです。カジュアルに言い換えるなど、執筆ス タイルを変更してはいけません」 Chain-of-Thought ⚫「ステップバイステップで 考えて」 応 用 個 別 手 法 会話の相手の情報を伝える(人間側) ⚫ 返答を受け取る対象者がどのような背景で何を必要としているのかを述べる: 「私は◯◯で、◯◯の知識は初心者である。◯◯について知りたい。それを前提 に会話してほしい」「今回の対象者はビジネスパーソンです。カーボンニュートラ ルについて説明してください」 ⚫ 過度な礼儀を省く:毎回のお礼は不要。ただし、適度に「よろしく」「ありがとう!」を織り交ぜる ⚫ 肯定的指示の使用:否定的な言葉ではなく肯定的な言葉を使用。 基 本 役割とタスクを明確化する(AI側) ⚫ モデルに特定の役割を割り当てる:「あなたは物理学のスペシャリストです。 相対性理論について説明してください」 ⚫ 明確なタスク指示:「あなたのタスクは、20代のビジネスパーソン向けにIT エンジニアリングの重要性を理解してもらうためのWebの記事を作成する ことです」 考 え 方 対話型の活用 ⚫問題解決までモデルに質問させる: 「これからは、"20代のビジネスパー ソン向けにITエンジニアリングの重要 性を理解してもらうためのWebの記 事の作成に"必要な情報が得られるま で私に質問してください テスト ⚫テストを出してもらい、理解度を 試させる:「品質管理手法のベスト プラクティスを教えて、最後にテス トを含めてください。ただし、答え は教えず、私が返答したときに答え が正しいか教えてください」 Emotion Prompt ⚫「0から1の間で回答に対する自信のス コアを教えてください」 「回答にはでき れば確信をもってください」 「それがあ なたのファイナルアンサーですか?」 「自 分を信じて、限界を超えてください」 「努 力は報われます」 「成長の機会だと考え て挑戦してください」 報酬とペナルティ ⚫「良い解答には報酬を出 す」「できなければペナル ティあり」
プロンプト方法論体系 AIのタスク遂行条件を指定する ⚫ 出力の明確性を指示:「簡単な言葉で説明して」 「中学生にも分かるように説明して」 ⚫ モデルが守る要件をキーワード、規定、ヒントな どの形で明示:「ITエンジニアの働き方を変える 運動のプロモーション文章を作ってください。 ただし、キーワードに"DX","業務高度化","不
要な業務を減らす"を含めること」 指示の仕方を工夫し、AIが指示を理解しやすいようにする ⚫ プロンプトのフォーマットを工夫する。「#指示」で始め、 適宜「#例」や「#質問」を含める: 「#指示 アジャイル開発について説明してください。 #質問 ウォーターフォール開発との違いは何か?」 ⚫ 複雑なタスクの分割:「IT業界の現状を一言で説明し て→(対話)→今後のIT業界について2000文字のレ ポートを書いて。まずは序章を200文字程度で。→(対 話)→その要約を200文字で」 ⚫ 繰り返しの使用:特定の単語やフレーズを複数回使用: 「ITエンジニアは不足している。ITエンジニアの育成は 重要である。会社の将来のためにITエンジニアの募集 要項を考えてください」 回答フォーマットの指示 ⚫ 自然言語や特定の言語による回答指示:「自然 言語で回答して」「与えられた言葉で完成させ て」「サンプルに基づいて完成させて」と指示。 ⚫ 出力プライマーの使用。プロンプトを期待され るアウトプットの始まりで終わらせる。:「新 NISAの概要を解説してください。説明:」 ⚫ スタイル変更の防止:「私が書いたテキストを修 正してください。テキストの文法を改善するだ けです。カジュアルに言い換えるなど、執筆ス タイルを変更してはいけません」 Chain-of-Thought ⚫「ステップバイステップで 考えて」 応 用 個 別 手 法 会話の相手の情報を伝える(人間側) ⚫ 返答を受け取る対象者がどのような背景で何を必要としているのかを述べる: 「私は◯◯で、◯◯の知識は初心者である。◯◯について知りたい。それを前提 に会話してほしい」「今回の対象者はビジネスパーソンです。カーボンニュートラ ルについて説明してください」 ⚫ 過度な礼儀を省く:毎回のお礼は不要。ただし、適度に「よろしく」「ありがとう!」を織り交ぜる ⚫ 肯定的指示の使用:否定的な言葉ではなく肯定的な言葉を使用。 基 本 役割とタスクを明確化する(AI側) ⚫ モデルに特定の役割を割り当てる:「あなたは物理学のスペシャリストです。 相対性理論について説明してください」 ⚫ 明確なタスク指示:「あなたのタスクは、20代のビジネスパーソン向けにIT エンジニアリングの重要性を理解してもらうためのWebの記事を作成する ことです」 考 え 方 対話型の活用 ⚫問題解決までモデルに質問させる: 「これからは、"20代のビジネスパー ソン向けにITエンジニアリングの重要 性を理解してもらうためのWebの記 事の作成に"必要な情報が得られるま で私に質問してください テスト ⚫テストを出してもらい、理解度を 試させる:「品質管理手法のベスト プラクティスを教えて、最後にテス トを含めてください。ただし、答え は教えず、私が返答したときに答え が正しいか教えてください」 Emotion Prompt ⚫「0から1の間で回答に対する自信のス コアを教えてください」 「回答にはでき れば確信をもってください」 「それがあ なたのファイナルアンサーですか?」 「自 分を信じて、限界を超えてください」 「努 力は報われます」 「成長の機会だと考え て挑戦してください」 報酬とペナルティ ⚫「良い解答には報酬を出 す」「できなければペナル ティあり」 まずは基本と応用を使いこなすところから
以下、詳細
0.考え方 毎回のお礼は不要。 ただし、適度に「よろしく」「ありがとう!」を織り交ぜる 過度な礼儀を省く 肯定的指示の使用 否定的な言葉ではなく肯定的な言葉を使用。
1.基本 会話の相手の情報を伝える(人間側) 役割とタスクを明確化する(AI側) 返答を受け取る対象者がどのような背景 で何を必要としているのかを述べる 「私の◯◯の知識は初心者レベルである。 ◯◯の歴史について知りたい。 それを前提に会話してほしい」 「今回の対象者はビジネスパーソンです。 カーボンニュートラルについて
説明してください」 モデルに特定の役割を割り当てる 明確なタスク指示 「あなたは物理学のスペシャリストです。 相対性理論について説明してください」 「あなたのタスクは 20代のビジネスパーソン向けに ITエンジニアリングの重要性を理解させる Webの記事を作成することです」
2.応用① AIのタスク遂行条件を指定する 出力の明確性を指示 「簡単な言葉で説明して」 「中学生にも分かるように説明 して」 「ITエンジニアの働き方を変える活動の プロモーション文章を作ってください。 ただし、 キーワードに"DX","業務高度化","不要な
業務を減らす"を含めること」 モデルが守る要件をキーワード、規定、 ヒントなどの形で明示
2.応用② 指示の仕方を工夫し、AIが指示を理解しやすいようにする プロンプトのフォーマットを工夫 する。「#指示」で始め、適宜「# 例」や「#質問」を含める 「#指示 アジャイル開発について説明 して。 #質問 ウォーターフォール開発との
違いは?」 「IT業界現状を一言で説明して」 ~回答~ 「今後のIT業界について2000文 字のレポートを書いて。 まずは序章を200文字程度で」 ~回答~ 「その要約を200文字で」 複雑なタスクの分割 繰り返しの使用(特定の単語 やフレーズを複数回使用) 「ITエンジニアは不足してい る。しかし、ITエンジニアの育 成は重要。 会社の将来のため、 ITエンジニアの募集要項を考 えてください」
「私が書いたテキストを修正し てください。 テキストの文法を改善するだけ です。 カジュアルに言い換えるなど、 執筆スタイルを変更してはいけ ません」 2.応用③ 回答フォーマットを指示する 自然言語や特定の言語によ
る回答指示 「自然言語で回答して」 「与えられた言葉で完成させ て」 「サンプルに基づいて完成させ て」 「新NISAの概要を解説してく ださい。説明:」 出力プライマーの使用。プロンプ トを期待されるアウトプットの始 まりで終わらせる スタイル変更の防止
おわり SPECIAL THANKS M.F, A,K Y.Y