Chat GPTの秘められた力を引き出す~プロンプト編~
はじめに
みなさま、Chat GPT使っていますか????
実は雑な使い方では、Chat GPTの真価を発揮できていないかもしれません😰
Chat GPTの秘められた力はすごいです。
そのすごさを、プロンプト編とAPI編に分けてブログで紹介してみます。
ますはプロンプト編です!!!!
※以下では「文章を生成するAI」=「生成AI」と呼びます
想定読者
- Chat GPTをなんとなく使っている人
- OpenAIに興味がある人
プロンプト編💬
プロンプトとは、Chat GPTに投げかけるチャットのことです。
ここのプロンプトを工夫することで、Chat GPTの力を引き出すことができます。
これらは「プロンプトエンジニアリング」と呼ばれます!それでは見ていきましょう。
①マークダウン言語を使う
生成AIに指示を送るときにはマークダウン言語を使うと効果的です。
マークダウン言語とは、ブログやスペックシートを書くときに使う記法です。
特に、#
での見出し表現や-
を使った箇条書き表現が使いやすいです。
代表的なテンプレート
#命令書:
あなたは{text}です。
以下の制約条件と入力文をもとに、最高の結果を出力してください。
#制約条件:
・文字数は{text}
・{text}
#入力文:
{text}
#出力文:
上記のテンプレートは深津式プロンプトとして広く知れ渡っています。
②Zero shot, One shot, Few shot
なんだかかっこいいタイトルですね。
これらは、生成AIに対しての回答の例示方法の違いを表しています。
- Zero shot:質問や命令を投げるだけの方法
- One shot:質問や命令に対して、回答の例示を1つ添える方法
- Few shot:質問や命令に対して、回答の例示を数個添える方法
具体的に例を挙げます。
ここでは、生成AIが苦手としている"文字の逆さ読み"をタスクとしましょう。
まずは、Zero shot
Zero shot
「カクテル」がぐちゃぐちゃになっていたり、「楽しめる」が正しく逆さ読みできていなかったり全然だめです。
// 質問
以下の文章を逆さ読みしてください。
## 文章
バー月面歩行は三百円均一でカクテルを楽しめるお店です。
// GPTの回答
こちらの文章を逆さ読みしました:
すでみせおるしめ楽をるれしカてるクカで一均円百三は行歩面月ーば
次は、One shot
** One shot**
「カクテル」と「お店」部分だけ間違っています。惜しい。
// 質問
逆さ読みとは例1のように文章を逆から読むことです。
## 例1
文章:男子ひと夏会わざれば刮目して見よ
逆から読んだ文章:よ見てし目刮ばれざわ会夏とひ子男
以下の文章を逆さ読みしてください。
## 文章
バー月面歩行は三百円均一でカクテルを楽しめるお店です。
// GPTの回答
逆さ読みした文章は以下の通りです。
逆さ読み
すでお店るめし楽をルテルカクで一均円百三は行歩面月ーバ
最後に、Few shot
Few shot
最後の「です」だけ逆さになりませんでしたが、それ以外は正しく逆さに読んでくれています。回答の精度が上がっていそうですね。
// 質問
逆さ読みとは例1,例2,例3のように文章を逆から読むことです。
## 例1
文章:男子ひと夏会わざれば刮目して見よ
逆から読んだ文章:よ見てし目刮ばれざわ会夏とひ子男
## 例2
文章:仲良きことは阿保らしきかな
逆から読んだ文章:なかきしら保阿はとこき良仲
## 例3
文章:明け方までクーラーのお通夜だったんですよ
逆から読んだ文章:よすでんたっだ夜通おのーラークでま方け明
以下の文章を逆さ読みしてください。
## 文章
バー月面歩行は三百円均一でカクテルを楽しめるお店です。
// GPTの回答
逆さ読みの結果は以下の通りです。
逆さ読み
です店おるめし楽をルテクカで一均円百三は行歩面月ーバ
上記のように、「問題やタスク」に対して「回答」の例示を上げることで「正しい回答」を誘導できます。
閑話休題:森見登美彦について📚
「月面歩行(ムーンウォーク)」とは、森見登美彦さんの小説「夜は短し歩けよ乙女」のヒロインが物語冒頭に入店するbarです。🍸
小説をもとにして作られたbarが「bar moon walk」としてけっこうそこら中にあります。新宿にもあるので気が向いたらいってみては。
ちなみに、"例"にあげた文章は「四畳半タイムマシーンブルース」という小説から引用しております。
引用元:四畳半タイムマシンブルース (角川文庫)
③回答フォーマットを指定する
プロンプトに回答のフォーマットを付けてあげることで、そのフォーマットに沿った回答を出力してくれます。
完全にフォーマットを固定はできません。が、プロンプトを工夫することで高い確率で固定することはできます。(何%とかは言えません。ごめんなさい、、、)
// 質問
日本で累計発行部数の多い漫画上位3つを以下のconditionに沿うように出力して。
<condition>
{
number_1: { title: string}
number_2: { title: string}
number_3: { title: string}
}
</condition>
// GPTの回答
Here are the top three manga series by total circulation in Japan under your condition:
{
"number_1": { "title": "One Piece" },
"number_2": { "title": "Golgo 13" },
"number_3": { "title": "Dragon Ball" }
}
This list is based on total sales and popularity in Japan.
その他
ここでは以上の3つで紹介を終わりたいと思います。
その他にもプロンプトの工夫方法はいくつかあります。気になった方は下記のキーワードで調べたり、引用元のサイトを見てみてください。意外と面白いですよ(^^♪
- 役割を与える
- Chain-of-Thoughtを使う
- 対象者の属性を明確化する ...などなど
次回
次回はAPI編を書きます。むしろ次回がメインかも??
Discussion