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
430
ちょっと分かりづらい「プロンプトの精度を向上させる26の方法」を再整理して体系化した
「プロンプトの精度を向上させる26の方法」が発表されました。
有用なのですが、もう少し使いやすくしたい!と思い、再整理しつつ体系化してみました。
ため
January 17, 2024
Tweet
Share
More Decks by ため
See All by ため
人間知能を目指す第4世代AIとは
tame
0
12
かんたん振り返りフレームワーク
tame
0
70
企業内コミュニティの価値
tame
0
59
十二国記に学ぶ自分の心づくり
tame
0
32
良いチームを作るためのふりかえり(アジャイル レトロスペクティブズ)
tame
0
63
コミュニティマネージャーが組織の知性を上げる
tame
1
67
AIエンジニアとして楽しくスキルアップを続けるには
tame
0
61
Other Decks in Technology
See All in Technology
日経電子版のStoreKit2フルリニューアル
shimastripe
1
140
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
150
TypeScript、上達の瞬間
sadnessojisan
46
13k
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
430
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
690
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
180
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
100
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
310
Engineer Career Talk
lycorp_recruit_jp
0
190
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Designing for humans not robots
tammielis
250
25k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Git: the NoSQL Database
bkeepers
PRO
427
64k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Navigating Team Friction
lara
183
14k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
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