プロンプトエンジニアリングを勉強してみた

b-men
2024-04-23
2024-04-23

はじめに

こんにちは。
私はシステムエンジニアとして、日々技術の進歩とともに歩んでいます。
最近、私の関心を引いたのは「プロンプトエンジニアリング」という分野です。
この記事では、プロンプトエンジニアリングの基本となる要素を初心者でも理解しやすいように解説していきたいと思います。

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

プロンプトエンジニアリングとは、AI(人工知能)に対して特定の出力を得るために、どのように質問や命令を与えるか(プロンプトするか)に関する技術や方法論です。
主に以下の四つの要素で構成されます。

  1. Instruction(命令・指示): モデルに何をすべきかを明確に伝える言葉。例えば、「簡単に説明してください」や「詳細にリストアップしてください」などが含まれます。
  2. Context(背景・文脈): モデルがタスクを理解しやすくするための背景情報。これは質問の意図や目的を含むことが多いです。
  3. Input Data(入力データ): モデルに提供する具体的な情報や質問内容。これには数値データ、テキスト情報などが含まれます。
  4. Output Indicator(出力指示子): 期待する回答形式や内容の指示。例えば、「一覧で答えてください」や「例を挙げて説明してください」などがこれに該当します。

何も考えず指示してみる

まずは何も考えず「プロンプトエンジニアリングを勉強してみたでブログを書いて」と依頼してみました。

chatgp4_example
chatgp4_example2
学習の旅・・長々と書いていますが、内容は良くわからない・・・

プロンプトエンジニアリングの構成要素に則って質問してみる

この理論を実際に試してみるために「プロンプトエンジニアリングを勉強してみた」というテーマでAIにブログ記事を作成してもらいました。
その過程で上記の四つの要素をどのように適用したかを見てみましょう。
以下の指示を与えてみました。

###Instruction(命令)###
・「プロンプトエンジニアリングを勉強してみた」というタイトルでブログを書いて
・プロンプトエンジニアリングの代表的な要素「Instruction(命令・指示)」、「Context(背景・文脈)」、「Input Data(入力)」、「Output Indicator(出力形式)」も説明してほしい

###Context(文脈)###
・「はじめに」、「プロンプトエンジニアリングとは?」、「具体的に質問してみた」です
・ブログを書くのが大変なので、ここでの回答をそのまま転用したい

###Input(入力データ)###

・あなたはシステムエンジニアです、最近ChatGPTを触る機会が多くなったが目当ての回答に中々辿り着けない
・中学生にも分かるように伝えてほしいが中学生だけに伝えるわけではないです
・これからインターネット上に公開するブログを記載しますので適切な表現方法を考えてください

###Output Indicator(出力指示子)###
・各項目は簡潔に1,000文字前後で記載してほしい


上記の指示された内容に沿ってAIはブログ記事を生成してくれました。
⇒ このブログは構成要素に則って質問した内容で作成されています!

この経験からプロンプトエンジニアリングの各要素がいかに重要であるかを実感しました。
適切な指示、文脈の提供、入力データ、そして期待する出力形式の明確化が、AIによるより精度の高い結果を得るために不可欠です。

最後に

単純な回答を得る場合は何も考えることなく質問し答えに辿り着けましたが、何が正解か分からないようなものを質問をする場合は、質問する側もうまく情報を引き出す質問の仕方があることが理解できました。
今回お伝えした内容以外にも他にもいろんな技術があるようなので、もう少し勉強していきたいと思います。