こんにちは、三色だんごです。


皆さんはChatGPTのようなLLMは使っていますか?
ゆっくりではありますが、業務に導入する企業が増えてきている現状があるので、
将来的にはスマホのように使いこなせて当然の技術になっているのではないかなと私は思っています。


私は業務で使うというよりは暇つぶしの会話相手として使っているので遊びの側面が強いのですが、
将来いつ使わなければならなくなるかわからないので今のうちに勉強したいなと思っています。

幸いOpenAIがChatGPTをよりよく使う方法をまとめてくれているので、
そちらのドキュメントと経験をもとにほしい回答を引き出す方法をご紹介していきます。
参考:https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api

※初心者向け記事です。
※無課金勢なのでご紹介する例はすべてGPT-3.5となっております。
基本的にはGPT-4や他の生成AIでも通じる内容だと思いますが、ご留意ください。


OpenAIつながりで、WhisperというAPIを使用して音声ファイルをテキストに起こしてみた記事もありますので、
Whisperにも興味がある方はぜひご覧になってください!
Whisperで音声のテキスト化を試してみる!


プロンプトエンジニアリング

プロンプトエンジニアリングとは、ChatGPTなどの言語生成AIに対して適切な指示・質問・制約等を
与えることで好ましい回答を出力させるスキルを指します(LLMに入力する文章のことをプロンプトと呼びます)。

ChatGPTは優秀なので簡単な質問であれば難なく正しい答えを出力してくれます。
それに反して推論だったり指示が複雑なプロンプトは比較的苦手な分野です。
そのためプロンプトエンジニアリングは高度で複雑な指示になればなるほど必要になるスキルと言えます。

好ましい出力を引き出すコツ

それではここからLLMを使って理想的な回答を出力させるコツをいくつかご紹介します。


1.希望する結果やスタイルなどについて具体的・詳細に記載する

ChatGPTは物分かりが良いので、こちらが指示したことを実直にやってくれます。

アドバイザーや作家などの役割を与えてその立場でのコメントをさせたり、表形式やコードの出力も可能です。
依頼すればできることはやってくれて、できないことはできないと言ってくれるので
理想の出力形式があればとりあえず指示してみても良いかと思います。

詩人、関西弁という役割を与えて詩を書かせました。クオリティはさておいて、文章の執筆など0から1を生み出す領域はかなり得意としているところだと思います。
表形式での出力。Excelなどでも扱いやすい形なので便利です。
Pythonで素数判定をするコードを出力。”Copy code”でコピーできて貼り付けるだけで使えます。


2.不明瞭な表現を避け、数値や対象を明確にして定量的に示す

「ふわふわした」不正確な説明を減らすことが推奨されています。
ここでいう「ふわふわした」は「数文で出力」「簡単に」「多めに」などのような、
聞き手によってどうとでも取れる表現のことを指しています。

そのような表現を使用する代わりに「2,3文で出力」「小学生でもわかるように」「10個以上」のような表現を使うことで、出力の精度が向上します。

「簡単に」という条件を設定しましたが、少し難しい語彙も含まれてしまっています…
簡単で簡潔な説明を出力できました!


3.フューショットプロンプティングで指示する

「フューショットプロンプティング(few-shot-prompting)」とはいくつかの回答例を提示することで、
出力をコントロールする手法のことを指します。
反対に1つの指示文・質問文を与えることを「ゼロショットプロンプティング」と呼びます。

0ショットプロンプティングの例。単語1つ入力するだけでこれだけの情報を出せるのもなかなかにすごいですね。
フューショットプロンプティングの例。今回で言うと購入可能な場所の情報に絞って出力させることができました。


フューショットプロンプティングを使用することで、ゼロショットプロンプティングを使用したときと比較して
精度の高い回答を得ることができます。
また、提示する例の数が多いほど、回答の精度も上昇します。

実務でもたくさんの情報を出力させてその中から人力でほしい情報をピックアップするより、
あらかじめほしい情報のみを出力するように調整することで効率が上がりますので
フューショットプロンプティングが活躍する場面は多いでしょう。


4.知らない、情報のないことは「情報がない」と出力させる。

ChatGPTは例え存在しないものや言葉であっても、入力された言葉から推測し
さもあるかのように「知ったかぶり」をすることがあります(必ずしも知ったかぶりをするわけではありません)。
この特性は創作に使うのであれば便利なのですが、情報を参照したいときには非常に邪魔です。


もしほしい情報があって嘘をつかれたくない場合は、
情報のないことに対して「情報がない」と出力するようにあらかじめ指示すると良いでしょう。

ロシアより面積の大きい国という存在しない国を出力してしまいます。そして意味不明な文章ですね…
「ないものはないと言え」と指示することで、知ったかぶりしないで「ない」と言ってくれました。


プロンプトエンジニアリング力を向上させてChatGPTを使いこなそう

あくまで例ですがChatGPTで回答の精度を向上させるための手法をいくつかご紹介させていただきました。
業務やプライベートで使用する際にお役立ていただけましたら幸いです。

ちなみにChatGPTは月額20US$を課金することで最新版のモデルGPT-4を使うことができます。
課金版ではより回答の精度が上がり、csvファイルなどの読み込みやグラフの描画、
データの読み解きなんかもできるようです(かなり強い)。


私はプライベート利用に月20$を支払うのは少しダメージが大きいので当分課金はしませんが
もしご興味がある方はアップグレードしてみてください。

それでは、お読みいただきありがとうございました。

一覧へ戻る