検索

キーワード


目次

【ChatGPT】プロンプトエンジニアリングとは?今すぐ使えるプロンプトエンジニアリングの手法4選!

  • 公開日:2023-09-02 20:33:47
  • 最終更新日:2023-09-03 18:51:56
【ChatGPT】プロンプトエンジニアリングとは?今すぐ使えるプロンプトエンジニアリングの手法4選!

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

プロンプトエンジニアリングとは?

ChatGPTを使ったとき、「どうやって質問すれば、理想的な答えがもらえるのだろう?」と考えたことはありませんか?その際に入力する文章、それが「プロンプト」と呼ばれるものです。このプロンプトを最適化して、より的確な結果を引き出す技術を「プロンプトエンジニアリング」と称します。

2022年11月、ChatGPTの登場により、AIとのコミュニケーションは革命を迎えました。しかし、この革命的な技術を最大限に活用するには、プロンプトの工夫が必須となりました。そこで、多くの研究者やユーザーがさまざまな手法を発表し、プロンプトエンジニアリングという新しい分野が生まれました。

「エンジニアリング」と聞くと、難しそうに思う人もいるかもしれません。しかし、実際は少しプロンプトを変えるだけでも、ChatGPTから得られる回答は劇的に変わってきます。この記事では、プロンプトエンジニアリングの基本的なコツやポイントをわかりやすく解説します。さらに、初心者の方でも手軽に試せるプロンプトエンジニアリングの手法を4つ厳選して紹介します。

ChatGPTの基本的な使い方や、出来ること、出来ないことついて詳しく解説した記事もご用意しています。ぜひ以下の記事もチェックしてみてください。

ChatGPTの使い方は?ChatGPTで出来ること、出来ないことは?ChatGPTの基本について解説!


プロンプトエンジニアリングのコツ

プロンプトエンジニアリングのコツを一言でいうと、「人間に伝えるかのように書くこと」です。つまり、ChatGPTには、友達や先輩、後輩に何かを伝える時のように、はっきりと、具体的に伝えるのが大事です。

ChatGPTは人間のような文章を書くAIであり、またプロンプトの読解能力も人間に並ぶレベルです。そのため、プロンプトも人間に伝えるかのように書くことが大事です。すなわち、命令や出力形式など、プロンプト内の要素を明確化することが大事になります。プロンプト内の要素は以下のように分けることが出来ます。


範囲の明確化

「これは何の指示だろう?」とAIに思わせないように、要素の範囲を明確にします。例えば、「*」や「#」のような記号を使って、範囲を指示すると、ChatGPTはもっと正確にあなたの要求を理解できます。また、以下の例は「*」を範囲を指定するための記号として使っています。

*命令

*例

**例1

**例2

*出力形式


役割

ChatGPTには特定の役割をアサインすることができます。聞きたいことに関する専門知識がありそうな役割を指定するのが良いでしょう。職業名などの他、歴史上の人物などを役割として規定することが出来ます。

例えば、コードのレビューをしてほしい場合は「シニアエンジニア」などの役職を指定し、また相対性理論の説明をしてほしい場合は「アインシュタイン」という風に偉人のロールを指定することもできます。


命令

ChatGPTにどのような命令を行いたいかを明確化します。

例えば、「日本の伝統文化について教えてください。」ではなく、「日本の伝統文化について、子供でも楽しめるものを教えてください。」「アメリカで注目されている日本の伝統文化について教えてください。」などのようになるべく具体性を持った命令にします。


条件

ChatGPTにどのような形式やスタイルでの回答を希望するか、条件を設定することで目的に合った回答を得ることができます。

例えば、「簡単な言葉で説明してください。」「中学生でも理解できるように説明してください。」というように、難しい専門用語を避けるような指示をすると、初心者にもわかりやすい説明をAIが提供します。


入力データ

ChatGPTへ要約や推敲をさせたい文章や、判断材料となる例示などを入力します。


出力形式

ChatGPTにどのような出力を行わせたいかを明確化します。出力例を例示する形でもかまいません。また、「{}」などで囲むことで変数であることを表したりすることも出来ます。

例として「箇条書きで出力してください。」「表形式で出力してください。」といったものや、以下の例のように変数を使うこともできます。

*命令
以下の英単語を和訳してください。
apple
brother
chair

*出力形式
{英単語}は{和訳}と訳します。


今すぐ使えるプロンプトエンジニアリングの手法4選

ChatGPTが公開されて以降、ユーザーや研究機関が様々なプロンプトエンジニアリングの手法を公開しています。その中でもChatGPTを触りたての人でも理解しやすく、なおかつ効果的な手法を4つ厳選して紹介します。

なお、紹介しているプロンプト例は、無料で使えるGPT-3.5を使用しています。


zero-shot

zero-shotは、特に例示などを行うことなくChatGPTにタスクや質問を投げる手法です。アイディアを出す場合、知識を問う場合などに用います。

zero-shot、およびfew-shotという用語は、もともと画像認識AIの用語で、それぞれ訓練用の画像が0枚、数枚で画像認識などのタスクを行うことを指します。つまり、情報がない中で、AIが学習した膨大なデータを駆使してアイディアを出すのが、zero-shotで、さらに簡単に言うと、「ユーザーから与えられた情報がゼロの状態」からのスタートを意味します。

例としては、以下のようなものが挙げられます。ChatGPTは学習データに基づきながら、特定の事例に依存せずに回答します。これがzero-shotのアプローチです。

Zero-shotでのプロンプトの例


few-Shot

few-shotは、ChatGPTにタスクや質問を投げる際に、幾つかの例示を与える手法です。ある決まった形式での答えが得たいときに有用です。

例としては、以下のようなものが挙げられます。ChatGPTはユーザの提示した例に基づいた出力を行います。

Few-shotでのプロンプトの例


深津式プロンプト

深津式プロンプトとは、note株式会社CXOである深津貴之氏が考案したプロンプトです。ポイントは役割を与えること#を使って命令や条件などのセクションに区切りをつけることです。深津氏が考案したプロンプトの一例は、以下のようになります。

# 命令書: あなたは{プロの編集者}です。
以下の制約条件と入力文をもとに{最高の要約}を出力してください。

# 制約条件: •文字数は300文字程度。
•小学生にもわかりやすく。 •重要なキーワードを取り残さない。
•文章を簡潔に。

# 入力文:
{入力文章}

# 出力文:
このタスクで最高の結果を出すために、追加の情報が必要な場合は、質問をしてください。

「最高の~」という表現が使われていますが、自分で何回か使ってみた結果、あまり品質に影響はない感じはします。それどころか、出力が「最高の」に引っ張られて、若干違和感を覚える表現になったりすることもあります。

当時はChatGPTのプロンプトエンジニアリングについてはまだ手探りの状態で、おそらく画像生成AIで「best quality」などとプロンプトに入力すると画質がアップする、という事象に影響されたのだとは思います。

例として、深津式プロンプトを用いて以下のようなタスクを行わせることが出来ます。見出しの大きさや記事の構成など、細かい条件に従った記事を出力できるのがわかるかと思います。

深津式プロンプトを用いた出力例


Chain-of-Thought (CoT)

Chain-of-Thoughtは、直訳すると「試行の連鎖」となります。複雑なタスクをChatGPTに行わせる際に、段階的に処理を行わせるようにします。

Chain-of-Thoughtを実践するには、具体的にどのように処理をしてほしいかを書くという手も有効ですが、文章の最後に「ステップ・バイ・ステップで考えてください。という一文を追加するという手軽ながら有効な手法もあります。

例えば、以下のような計算を複数回行うプロンプトを考えます。

田中さんはひと箱12個入りのお菓子を4箱買いました。
田中さんは自分で5つ食べた後、友人9人になるべく多く、かつ均等になるように配りました。
田中さんの手元にはいくつのお菓子が残っているでしょう?


このプロンプトを特に工夫をせず実行した結果は、以下の通りになります。

複雑なプロンプトを実行した例

なんと、-29個のお菓子が手元に残る、という結果が出てしまいました。これは明らかに間違っています。

次に、文末に「ステップ・バイ・ステップで考えてください。」という文章を追加してプロンプトを実行してみます。

「ステップ・バイ・ステップで考えて下さい。」という一文を追加した結果

7個と正しい答えが出ました。このように、ChatGPTに段階を踏んで考えさせるのは非常に有効な手法になります。


まとめ

この記事では、「プロンプトエンジニアリング」という技術に焦点を当てて解説しました。プロンプトエンジニアリングは、AIに対する指示を最適化し、より的確な結果を得るための技術として、近年注目を集めています。

今後、AI技術がさらに進化する中で、プロンプトエンジニアリングのようなコミュニケーション技術の重要性は増していくでしょう。また、明確な指示を出すためのプロンプトエンジニアリングの考え方は、ChatGPTに対してだけではなく、人間同士のコミュニケーションの質を向上させるためにも役立つことがあります。普段の会話やチャットでのやりとりなどでも、相手に何をしてほしいのかを明確化することで、よりよい意思疎通が出来ることでしょう。


【著者】

ゆうさい

フォワードソフト株式会社のエンジニア。Java、Python、JavaScript、C#などの言語の他、クラウドやネットワーク技術を勉強しています。PythonやVBAを使った自動化で楽をする方法を考えるのが好きです。 最近はジェネレーティブAIの業務利用に関する検証を行っています。 資格を通じて知識を吸収することを心がけており、セキュリティスペシャリスト、データベーススペシャリスト、応用情報技術者、Oracle Certified Java Programmer Gold SE 11、Pythin3 エンジニア認定試験、HTML5プロフェッショナル認定試験レベル2、AWSプラクティショナーなどの情報資格を保有しています。

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート