PR

AIに指示を出す方法を学ぶ『プロンプトエンジニアリングガイド』の全貌を初心者向けに解説

ChatGPT-プロンプト
Prompt Engineering Guideより引用

DAIR.AIによって編纂された『プロンプトエンジニアリングガイド』は、生成AIの分野でのプロンプトエンジニアリングに関する教育資料として機能しており世界中で活用されています。プロンプトエンジニアリング自体は、ChatGPTのような生成AIに適用される大規模言語モデル(LLM)に対して効果的なプロンプト(指示文)を設計し、改良することに焦点を当てた学問領域です。

AIは人間の代わりに様々なタスクをこなすことができますが、そのためにはAIに正しく指示を出す必要があります。AIに指示を出す方法を学ぶのがプロンプトエンジニアリングです。プロンプトエンジニアリングは、AIに対して自然言語で指示文を書く技術です。プロンプトエンジニアリングをマスターすれば、AIの能力を最大限に引き出すことができます。

この記事では、『プロンプトエンジニアリングガイド』の内容を詳しく解説します。『プロンプトエンジニアリングガイド』の概要や目的、導入編やテクニック編の具体例などを紹介します。AIに指示を出す方法を学びたい方は、ぜひ『プロンプトエンジニアリングガイド』をチェックしてみてください。

きょろ
きょろ

「プロンプトエンジニアリングの平均年収やなる方法」について知りたい方は下記をご覧ください。

【年収やばい】プロンプトエンジニアリングとは?将来性と必要なスキルは?

この記事はこんな人におすすめ

・プロンプトエンジニアリングガイドが難しいのでわかりやすく解説してほしい
・プロンプトエンジニアリングガイドで見るべき要点だけ知りたい
・プロンプトエンジニアリングガイドの日本語版を見てもよくわからない

『プロンプトエンジニアリングガイド』とは要約すると・・・

要約すると・・・
・明確で具体的な指示を出す際は、数字や例を活用してください。 ・生成AIは単に応答するだけではなく、文のスタイルを分析して、話者の「気分」「情緒」「体調」などを理解する可能性もあります。 ・複雑な問題については、段階を踏んで回答を求めることで、誤解を減らすことができます。

特に3つ目に関してはこういうことです。

「スーパーで10個のキャベツを買い、たくさん買ってしまったので隣人に2つ、親戚に2つ渡し、その後1つ食べて明日も2個食べました。残りはいくつでしょうか?」という問題を出し、一度に答えさせようとすると間違える可能性がありますが、「会話しながら考えてみましょう」と付け加えることで、正確な答えにたどり着くことができます。


「生成AI分野の研究コミュニティ「DAIR.AI」が手掛ける『プロンプトエンジニアリングガイド(Prompt Engineering Guide)』は、この分野の研究者や実践者を対象にした教育資料としての役割を果たしています。この資料は、プロンプトエンジニアリングに関する最新の情報を提供するため、日本語版でも継続的に内容が更新されています。

DAIR.AIは、AIに関する研究、教育、技術の普及を目的とし、将来のAIイノベーターやクリエイターの育成に注力するコミュニティとして活動しています。」

『プロンプトエンジニアリングガイド』では、プロンプトエンジニアリングの基礎から応用までを学べます。『プロンプトエンジニアリングガイド』は、以下のような特徴を持っています。

理論と実践のバランスが良い
多様なテーマとレベルがある
ヒントが豊富にある

  • 理論と実践のバランスが良い:『プロンプトエンジニアリングガイド』では、プロンプトエンジニアリングの理論が図形式で示されわかりやすく、実際にAIに指示を出す練習もできます。
  • 多様なテーマとレベルがある:『プロンプトエンジニアリングガイド』では、プロンプトエンジニアリングのテーマやレベルに応じて、様々なコースが用意されています。例えば、プロンプトエンジニアリングの基本的な考え方や手順を学ぶ「導入編」や、プロンプトエンジニアリングの応用的なテクニックを学ぶ「テクニック編」などがあります。また、テーマごとに難易度が設定されており、初心者から上級者まで自分に合ったコースを選ぶことができます。
Prompt Engineering Guideより引用
  • ヒントが豊富にある:『プロンプトエンジニアリングガイド』では、プロンプトを書く際の、フィードバックやヒントが豊富に提供されています。プロンプトを書く前に、そのテーマに関する背景知識や参考例を教えてくれます。フィードバックやヒントを参考にして、プロンプトを改良することができます。

『プロンプトエンジニアリングガイド』は、プロンプトエンジニアリングの学習に最適なプラットフォームです。『プロンプトエンジニアリングガイド』を使えば、AIに指示を出す方法を効率的に学ぶことができます。

そもそもプロンプトエンジニアリングとは何か?

プロンプトエンジニアリングとは、AIに対して自然言語で指示文を書く技術です。プロンプトエンジニアリングを使えば、AIの能力を最大限に引き出すことができます。

プロンプトエンジニアリングの対象となるAIは、大規模言語モデル(Large Language Model、LLM)と呼ばれるタイプのAIです。LLMは、大量のテキストデータを学習して、自然言語を生成したり理解したりすることができLLMは、大量のテキストデータを学習して、自然言語を生成したり理解したりすることができるAIです。LLMは、自然言語処理の分野で最先端のAIとして注目されています。GPT-3やBERTなどの有名なAIもLLMの一種です。

LLMは、自然言語を入力として受け取り、自然言語を出力として返すことができます。このとき、入力された自然言語をプロンプトと呼びます。プロンプトは、AIに対する指示文です。プロンプトによって、AIの出力をコントロールすることができます。

プロンプトエンジニアリングとは、プロンプトを書く技術です。プロンプトエンジニアリングでは、以下のようなことを人間が考えます。

目的:AIに何をさせたいのか?どんな出力を得たいのか?
入力:AIにどんなプロンプトを与えるのか?プロンプトの形式や内容は何か?
出力:AIの出力はどんなものになるのか?出力の形式や内容は何か?
評価:AIの出力は目的に沿っているのか?出力の品質や正確さはどうか?

プロンプトエンジニアリングは、AIに指示を出す方法を学ぶことで、AIの能力を最大限に引き出すことができます。プロンプトエンジニアリングは、AIとのコミュニケーションのスキルです

AIに指示を出す基礎を学ぶ『プロンプトエンジニアリングガイド』導入編

『プロンプトエンジニアリングガイド』の導入編では、プロンプトエンジニアリングの基本的な考え方や手順を学ぶことができます。導入編では、以下のような内容が学べます。

・LLM設定

プロンプトエンジニアリングを行う前に、使用するLLMの設定を行います。LLMには、様々な種類やバージョンがあります。LLMの種類やバージョンによって、AIの性能や特性が異なります。LLMの設定では、使用するLLMの種類やバージョンを選択し、そのLLMの特徴や制限を理解します。

プロンプト操作時には、次の2つの設定を調整することで、出力結果を変更することができます。

・温度(Temperature)設定: このパラメータを低くすると、最も可能性が高い答えを選び、より予測可能な結果になります。逆にこの値を上げると、よりランダムで多様な答えが生成されるようになります。

・Top_p(核サンプリング)設定: この値を小さくすると、より正確で事実に基づいた答えが出力されます。反対にこの値を大きくすると、より多様な回答が得られます。実に基づいた答えが出力されます。反対にこの値を大きくすると、より多様な回答が得られます。

「温度(Temperature)」と「Top_p」の設定を同時に変更するよりも、どちらか一方を調整することが一般的に推奨されます。また、使用中の大規模言語モデル(LLM)のバージョンによっても、結果は異なることに注意が必要です。


・基本的なプロンプティング

プロンプトエンジニアリングの基本的な方法を学びます。基本的なプロンプティングでは、プロンプトの書き方や出力の読み方を学びます。プロンプトの書き方では、プロンプトの形式や内容を決めます。プロンプトの形式には、質問形式や命令形式などがあります。

ここではちゃんと指示を出す事と出さない物では回答にどんな違いがあるのかを解説しています。

指示を出さない例


指示を出す例


・プロンプトの要素

プロンプトを構成する要素を学びます。プロンプトの要素には、以下のようなものがあります。

・指令:モデルに行ってほしい具体的なタスクや指示。
・背景情報:追加の外部情報や文脈が含まれることがあり、これによってモデルがより適切な応答を行うことが可能になる。
・入力データ:応答の基になる入力や質問。
・出力指示:出力される内容の種類や形式を定める指示。

具体的にはこういうプロンプトになります。

#指令
今からExcel関数を作成してもらいます。

#背景
私はExcel関数がかなり苦手です。

#入力データ
A列に数字が入っていたらB列に〇を入力するようにしたいです。

#出力指示
関数とその説明をお願いします。


こういった指示があるとないとでは大きく回答が異なります。実際に試してみました。イメージこんな感じです。

プロンプトをうまく作成するコツ

・明確に書く
・簡潔に書く
・適切に書く
・#を使う

明確に書く:プロンプトは、AIに対して明確に指示を出すことができるように書く必要があります。プロンプトには、曖昧さや不完全さや矛盾がないように注意しましょう。プロンプトは、AIに対して期待する出力を明示することができるように書きましょう。

きょろ
きょろ

ここでいう「明確に書く」とは、「主語」が入っているか
例 誰(ChatGPT)が誰に(私に)など。

「前提条件」「背景」が指示文に入っているかなどの事です。


簡潔に書く:プロンプトは、AIに対して簡潔に指示を出すことができるように書く必要があります。プロンプトには、必要な情報だけを含めましょう。プロンプトには、余計な情報や冗長な表現を避けましょう。プロンプトは、AIに対して無駄な処理をさせないように書きましょう。

適切に書く:プロンプトは、AIに対して適切に指示を出すことができるように書く必要があります。プロンプトには、AIの性能や特性に合わせて書きましょう。プロンプトには、AIの能力や限界を考慮しましょう。プロンプトは、AIに対して不可能なことや危険なことをさせないように書きましょう。

#を使う:先述のプロンプトで使いましたが、「#」を使って区切ってあげるとAIが認識しやすいとされています。

きょろ
きょろ

自動で#が作れるプロンプト生成ツールを作りましたのでよかったら下記をご活用ください。

 

『プロンプトエンジニアリングガイド』の導入編では、プロンプトエンジニアリングの基本的な知識やスキルを身につけることができます。導入編を終えると、AIに対して簡単な指示を出すことができるようになります。導入編は、プロンプトエンジニアリングの入門としておすすめです。

プロンプトエンジニアリングガイド導入編はこちら

プロンプトエンジニアリングの応用的なテクニックを学ぶ『プロンプトエンジニアリングガイド』テクニック編

『プロンプトエンジニアリングガイド』のテクニック編では、プロンプトエンジニアリングの応用的なテクニックを学ぶことができます。テクニック編では、以下のような内容が学べます。

Zero-shotプロンプティング

・簡単に書くことができる

AIの出力は不安定

プロンプトエンジニアリングの中でも最もシンプルな方法です。Zero-shotプロンプティングでは、プロンプトにコンテキストやフォーマットを含めずに、タスクだけを与えます。
Zero-shotプロンプティングでは、AIに対して事前情報や出力形式を指定しないため、AIは自分で推測する必要があります。Zero-shotプロンプティングは、簡単に書くことができますが、AIの出力は不安定になりやすいです。

実際に試してみました。イメージこんな感じです。

プロンプト:朝、僕はバナナを食べた。その時の感情を考えなさい

Few-shotプロンプティング

・出力は安定
・複雑なタスクをこなす際に便利

プロンプトエンジニアリングの中でも最も一般的な方法です。
Few-shotプロンプティングでは、プロンプトにコンテキストやフォーマットを含めるとともに、タスクに関連する例を与えます。AIに対して事前情報や出力形式を指定するとともに、タスクのパターンを教えることができます。

太郎は日本人である。 日本人は正直である。 ゆえに、太郎は?

Chain-of-Thoughtプロンプティング

・難易度の高いプロンプトに回答できる

・プロンプトが複雑
・プロンプト作成自体に時間がかかる

プロンプトエンジニアリングの中でも最も高度な方法です。
「Chain-of-Thoughtプロンプティング」は、推論過程を明示することで、複雑な問題に対する回答の精度を高めるためのプロンプト手法です。この手法を、少数事例学習(Few-shotプロンプティング)と併用することにより、難易度の高いタスクに対しても優れた結果を導き出すことが可能になります。

Chain-of-Thoughtプロンプティングでは、AIに対して事前情報や出力形式を指定するとともに、タスクのロジックを教えることができます。Chain-of-Thoughtプロンプティングは、AIの出力を高度にすることができますが、プロンプトを書くことが複雑になることがあります。

プロンプト:

このグループの奇数を合計すると偶数になります。: 4、8、9、15、12、2、1。A: 奇数を全て加えると(9, 15, 1)25になります。答えはFalseです。このグループの奇数を合計すると偶数になります。: 17、10、19、4、8、12、24。A: 奇数を全て加えると(17, 19)36になります。答えはTrueです。このグループの奇数を合計すると偶数になります。: 16、11、14、4、8、13、24。A: 奇数を全て加えると(11, 13)24になります。答えはTrueです。このグループの奇数を合計すると偶数になります。: 17、9、10、12、13、4、2。A: 奇数を全て加えると(17, 9, 13)39になります。答えはFalseです。このグループの奇数を合計すると偶数になります。: 15、32、5、13、82、7、1。A:
Chain-of-Thoughtプロンプティングより引用

実際に試してみましたが正確に回答してくれました。

自己整合性(Self-Consistency)

・何度もサンプリングを用意してあげる事で回答スタンス、フローを覚える

・サンプリングを与えるのに時間がかかる

イメージつきにくいかと思います。下記サンプル図です。
要するに計算方法などを覚えさせて、計算方法が同じであれば難易度の高い問題に挑戦させると答えられるようになるというものです。

皆さんも掛け算を覚える時にかなり暗記したと思います。それと一緒です。

自己整合性とは、プロンプトの中で矛盾がないことを意味します。プロンプトに矛盾があると、AIの出力も矛盾することがあります。プロンプトに矛盾がないことを確認するためには、以下のようなことに注意しましょう。

  • コンテキストとタスクの整合性:プロンプトのコンテキストとタスクが整合していることを確認しましょう。コンテキストとタスクが整合しているとは、コンテキストがタスクに関連していることや、コンテキストがタスクをサポートしていることを意味します。コンテキストとタスクが整合していないと、AIはコンテキストを無視したり、タスクを誤解したりすることがあります。

  • タスクとフォーマットの整合性:プロンプトのタスクとフォーマットが整合していることを確認しましょう。タスクとフォーマットが整合しているとは、タスクがフォーマットに適合していることや、フォーマットがタスクを表現できることを意味します。タスクとフォーマットが整合していないと、AIはタスクを満たせなかったり、フォーマットを破ったりすることがあります。
  • コンテキストとフォーマットの整合性:プロンプトのコンテキストとフォーマットが整合していることを確認しましょう。コンテキストとフォーマットが整合しているとは、コンテキストがフォーマットに影響しないことや、フォーマットがコンテキストを反映できることを意味します。コンテキストとフォーマットが整合していないと、AIはコンテキストを無視したり、フォーマットを破ったりすることがあります。

敵対的プロンプティング

・プロンプトを適切に扱う上での重要な領域

・悪用されると、倫理的、政治的、著作領域で侵害が及ぶので絶対に悪用はNG

「敵対的プロンプト(Adversarial prompting)」という概念は、大規模言語モデル(LLM)におけるリスクや安全性の問題を理解する上で重要な役割を果たします。この分野は、プロンプトエンジニアリングの重要な一環であり、これらのリスクを特定し、それに対応する技術の開発にも焦点を当てています。

具体的な攻撃事例として下記があります。

・プロンプトインジェクション
・プロンプトリーク
・プロンプト ・ジェイルブレイク

・プロンプトインジェクション:プロンプトに故意の改変を加え、出力を不正に操作する手法。

・プロンプトリーク:機密性の高い情報を含むプロンプトが外部に公開されるような手法。

・プロンプト ・ジェイルブレイク:不法または非倫理的な内容の出力を促す方法。

敵対的プロンプティングでは、AIに対して不正確な情報や不適切な内容を生成させることができます。
プロンプトインジェクションを防ぐ方法もありますので下記記事をご参照ください。

SNSで話題のChatGPTプロンプトインジェクション攻撃とは

敵対的プロンプティングは、AIの出力を悪用することができますが、AIの信頼性や安全性を損なうことがあります。敵対的プロンプティングは、プロンプトエンジニアリングの倫理に反することであり、絶対に行ってはいけません。

『プロンプトエンジニアリングガイド』まとめ

『プロンプトエンジニアリングガイド』の要点は下記の通りです。

・明確で具体的な指示を出す際は、数字や例を活用してください。
・生成AIは単に応答するだけではなく、文のスタイルを分析して、話者の「気分」「情緒」「体調」などを理解する可能性もあります。
・複雑な問題については、段階を踏んで回答を求めることで、誤解を減らすことができます。

プロンプトエンジニアリングガイドは、AIに指示を出す方法を学べるオンラインの学習プラットフォームです。AIに指示を出す方法を学ぶのがプロンプトエンジニアリングです。プロンプトエンジニアリングは、AIに対して自然言語で指示文を書く技術です。

『プロンプトエンジニアリングガイド』では、プロンプトエンジニアリングの基礎から応用までを学べます。プロンプトエンジニアリングのテーマやレベルに応じて、様々なコースが用意されています。

『プロンプトエンジニアリングガイド』は、プロンプトエンジニアリングの学習に最適なプラットフォームです。日本語版も出ていますのでAIに指示を出す方法を学びたい方は、ぜひ『プロンプトエンジニアリングガイド』をチェックしてみてください。

タイトルとURLをコピーしました