プロンプトとは?
AIの領域において、プロンプトは「ユーザーからのAIへの指示」という意味で用いられています。昔のプロンプトは、コンピューター上でユーザーの情報をキャッチするためのインターフェースを意味していました(Windowsで見られる「>」など)。
ChatGPTでのプロンプトは、「ChatGPTへの要求や問いかけ」として使用されています。つまり、ChatGPTとのやり取りの際に、チャット画面に入力するテキストがプロンプトです。
ChatGPTを用いる際の対話で、使われるプロンプトの質により、得られる応答は大きく異なってきます。ChatGPTに入力するプロンプトは、回答の質を向上させる上で大切な要素となっており、現在様々な手法が考案されています。
プロンプトの構成要素 プロンプトエンジニアリングの過程で、以下の4つの要素がプロンプトの構成に影響を与えることがわかります。 命令 - 実行してほしい特定のタスクに関する命令 文脈 - 生成AIの応答は文脈に応じて返答[…]
ChatGPTに入力するプロンプトのフレームワークの一つに、noteのCXOである深津貴之さんによって考案された「深津式プロンプト・システム」があります。 今回PROMPTYでは、ChatGPTの「深津式プロンプト・システム」とは何[…]
プロンプトに変数を入れてChatGPTに質問する
ChatGPTプロンプトに変数を入れるには、「{ }」や「” ”」など記号で囲うことで、他のテキストと差別化しましょう。
今回は、プロンプトに変数を入れてChatGPTに質問した例をいくつかご紹介します。
例①:変数を1つ入れてChatGPTに質問する
プロンプト例:
{{テーマ}}について詳しく解説してください。
ChatGPTの回答(GPT-4):
了解しました。ただし、具体的なテーマが指定されていないため、どのテーマについて解説するかの情報を教えていただけますか?
例えば「宇宙」や「日本の歴史」など、具体的なテーマを指定してください。それを基に詳しい解説を行います。
テーマを指定するように回答してくれました。{{テーマ}}が変数であることを理解できていることが分かります。
入力文:
{{テーマ}}:機械学習
ChatGPTの回答(GPT-4):
了解しました。機械学習について詳しく解説いたします。
機械学習 (Machine Learning)
1.定義:
機械学習は、人間が特定のタスクを実行する際の指示を明示的にプログラムするのではなく、データから学習することでそのタスクを達成するアルゴリズムやモデルの研究です。
2.タイプ:
・教師あり学習: ラベル付きのデータを用いて学習する方法。目的変数を予測するモデルを作成します。
・教師なし学習: ラベルのないデータを用いて、データの構造やパターンを見つけ出します。
・強化学習: エージェントが環境と相互作用しながら最適な行動を学習する方法。
3.応用例:
・画像認識
・自然言語処理
・予測モデリング
・推薦システム
4.主な手法:
・線形回帰: 連続した値を予測するための方法。
・決定木: データを分類するための階層的な方法。
・ニューラルネットワーク: 複数の層からなるネットワークを使用して、非線形の関係や複雑なパターンを学習します。
・クラスタリング: 類似のデータをグループ化するための方法。
5.課題:
・過学習: モデルが訓練データに過度に適合してしまい、新しいデータに対してうまく機能しない現象。
・データの偏り: 訓練データが偏っていると、モデルもその偏りを学習してしまう。
・計算コスト: 複雑なモデルは大量の計算資源を必要とすることがある。
機械学習は、データから自動的にパターンや知識を学習し、それを用いて予測や判断を行う技術です。教師あり学習、教師なし学習、強化学習などのタイプがあり、それぞれ異なるアプローチでデータを扱います。現代の多くの技術、特にAI技術の背後には、機械学習の手法や理論が存在しています。
指定したテーマ(機械学習)について詳しく解説してくれました。他のテーマについて聞きたいときも、「{{テーマ}}:○○」といったように入力するだけでChatGPTに回答してもらうことができます。
例②:変数を複数入れてChatGPTに質問する
次に、プロンプトに変数を複数個入れて、ChatGPTに質問します。
プロンプト例:
あなたは優秀なツアープランナーです。
{{場所}}周辺のおすすめの{{ジャンル}}を{{出力個数}}教えてください。簡単な説明を盛り込んで、箇条書きで出力してください。
ChatGPTの回答(GPT-4):
了解しました。具体的な場所、ジャンル、出力個数を入力していただけると、それに基づいておすすめ情報を提供いたします。
例:
- 金閣寺: 京都の北部に位置し、鮮やかな金箔で覆われた二層の寺院。美しい日本庭園とともに、四季折々の風景を楽しむことができます。
- 清水寺: 京都の東山地区にある、観光客に人気の寺院。大舞台からの眺めが絶景で、近くのお茶屋で抹茶を楽しむのもおすすめ。
- 銀閣寺: 京都の東部にある、銀で覆われたことはないものの、草庵風の美しい寺院。砂の庭園が特徴的で、静寂な雰囲気を味わえます。
具体的な要望を教えてください。
複数個の変数を入れた場合も、それぞれの変数の意味をきちんと理解していることがわかります。今回は、丁寧に例も同時に示してくれました。
次の入力には、先ほどよりも雑な形式にしてみます。
入力文:
札幌、スイーツ、5
ChatGPTの回答(GPT-4):
了解しました。札幌周辺のおすすめのスイーツを5つ、簡単な説明とともに箇条書きで出力します。
白い恋人パーク: 北海道で有名なスイーツ「白い恋人」のテーマパーク。工場見学の後に、オリジナルの白い恋人を作る体験もできます。
ルタオ: ショコラティエールとして名高い。特に「ドゥーブルフロマージュ」は、濃厚なチーズとフレッシュな味わいの組み合わせが絶品です。
きんとと: 北海道産のあずきを使用した和風のスイーツ。特に「あずきのミルフィーユ」は、層になったパイ生地とあずきの組み合わせがおすすめです。
すみれ: 札幌で人気のソフトクリーム店。特に「札幌大通公園」の店舗は、景色を楽しみながら美味しいソフトクリームを味わうことができます。
ペリカン: 長い歴史を持つ洋菓子店。こちらの「シュークリーム」は、外側はサクサク、中はクリーミーなクリームが詰まっており、一度食べたら忘れられない味わいです。
札幌は美味しいスイーツがたくさんあり、これらのお店はその一部に過ぎませんが、訪問時にはぜひ足を運んでみてください。
各変数を読点で区切ってChatGPTに入力するだけで、指定した場所・ジャンル・個数を正しく読み取って回答してくれました。このように、最初のプロンプトに変数を入れて工夫することで、効率的に回答を得ることができます。
変数を入れたプロンプトを効果的に使う方法
①自身のプログラムに組み込む
Open AIのAPIを使うことでGPTを自身のプログラムに組み込むことができます。
簡単な例としては、次のようなチャットボットを作ることができます。
プロンプト:
import openai
import os
openai.api_key = {APIキーを入力}
def generate_company_description(company_name):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{
"role": "system",
"content": "あなたは多くの企業について知識があるアシスタントです。回答は日本語で出力して下さい。"
},
{
"role": "user",
"content": f"{company_name}の事業内容について教えてください。"
}
],
max_tokens=200
)
return response.choices[0].message['content']
company_name = input("企業名を入力してください: ")
description = generate_company_description(company_name)
print(description)
このコードを実行して企業名を入力します。
しばらく待つと、GPTが入力した企業の事業内容を返してくれます。
別の企業の事業内容を出力する際も、企業名を入力するだけです。APIを使ってGPTを自身のプログラムに組み込むことで変数を使ったプロンプトを効果的に使用できます。
「自社のサービスにAIを取り入れたい...」「ChatGPTを自社製品に組み込むことができるの?」そう思う方もいるのではないでしょうか。 実はChatGPTのAPIを使用することで、比較的に自社製品・サービスにChatGPTを組み込[…]
②外部サービス「Chatbot UI」の機能を使う
Chatbot UIは、ChatGPTのUIを再現した、独自のクライアントです。
Chatbot UIではプロンプトのテンプレートを保存して呼び出すことができます。また、その際に変数を決めることで、効率的に回答を得ることができます。
変数には、software_name=「premire pro」、goalには「動画を編集してYoutubeにアップロードする」としました。
Chatbot UIではよく使うプロンプトを保存して、変数のみ入力することで、効率的に回答を得ることができます。
Chatbot UIのサービスについては、こちらの記事で詳しく解説しています。