言語モデルの選択とプロンプトの基本設定

このチャプターのゴール

  • miiboにおける言語モデルの設定や種類について理解できている
  • miiboにおけるプロンプトの設定や仕組みが理解できている

miiboにおけるAIの応答の設定

miiboでは、左メニューの
「会話の設定」->「AIの応答をカスタマイズ」
から、AIの応答の設定を行うことができます。



この画面で、miiboのAIの応答の根幹を司る設定を行います。
その最も根幹となる設定が、下記の2つです。

  1. 言語モデルの設定
  2. プロンプトの設定

言語モデルの選択

エージェントの応答に使われるLLM(大規模言語モデル)を選択します。
言語モデルは、前チャプターで述べた実用されるAIの「知能」レイヤーに他なりません。


言語モデル提供元消費ポイント個別APIキーの利用
GPT-4OpenAI50
GPT-4 (Azure)Microsoft50***
GPT-4 turboOpenAI20
GPT-3.5 turboOpenAI5
GPT-4oOpenAI15
GPT-4o(Azure)Microsoft15
GPT-4o-miniOpenAI5
GPT-4 visionOpenAI30
GPT-4.5-previewOpenAI60
GPT-3.5 turbo (Azure)Microsoft5
GPT-3.5 turbo 16k (Azure)Microsoft30
GPT-3.5 turbo 16kOpenAI30
GPT-3.5 turbo (ファインチューニング済み)OpenAI5✅(必須)
o1 previewOpenAI45
o1 miniOpenAI15
o3 miniOpenAI15
Claude-3 HaikuAnthropic5
Claude-3 SonnetAnthropic15
Claude-3 OpusAnthropic80
Claude-3.5 SonnetAnthropic15
Claude-3.7 SonnetAnthoropic15
Google PaLM2Google10***
Gemini ProGoogle5
Gemini 1.5 ProGoogle20
Gemini 1.5 FlashGoogle10
Groq Llama 3 8BGroq1
Groq Llama 3 70BGroq5
Groq Mixtral 8x7B SMoEGroq3
Groq Gemma 7BGroq1
Groq Llama 3.1 8BGroq1
Groq Llama 3.1 70BGroq5
miibo 雑談miibo1***

消費ポイントとは、AIが1回応答をする際に消費されるポイントです。
miiboでは、利用しているプランごとに会話上限ポイントが割り当てられています。精度やコストに応じて消費ポイントが変わることにご注意ください。

※個人のAPIキーを利用ができるAIは、APIキーを割り当てることで消費回数を一律1回にすることができます。

miiboの各プランの上限回数や料金は下記をご確認ください。
https://miibo.jp/price

推奨の言語モデルと特徴

miiboが推奨する言語モデルとそれぞれの特徴をまとめます。


言語モデル精度レスポンス速度費用(消費ポイント)補足
GPT-4o15GPT-4匹敵の精度を持ち、コストも安価になったモデル。レスポンスも非常に早く、非常に実用的なモデル。画像の認識にも対応。
GPT-4o-mini5GPT-4o小小型モデル型精度は若干劣るが、低コストで利用可能。
GPT-4-turbo20GPT-4匹敵の精度を期待でき、コストパーフォーマンスも良い。現段階ではGPT-4の方が安定した挙動が多い。
GPT-450プロンプトに記述した詳細な指示を柔軟に理解可能。コスト高。ハルシネーションを最も抑えるのに最適なモデル。
GPT-4-vision30GPT-4-turboの精度と画像認識の機能を持ち合わせます。レスポンス速度もGPT-4に比べて早いことが確認されています。
GPT-3.5-turbo5GPT-4と比較すると大きく精度が落ちますが、圧倒的なコストの低さがメリットです。応答速度も非常に早いのも特徴です。プロンプトによる制御が効きづらいことが多いです。
GPT-3.5-turbo 16k(プロンプト大)30GPT-4と比較すると大きく精度が落ちますが、圧倒的なコストの低さがメリットです。応答速度も非常に早いのも特徴です。プロンプトによる制御が効きづらいことが多いです。プロンプトを長く記述できるのが特徴です。

一部のモデルは、Azure OpenAI Serviceが提供するモデルを利用可能です。
下記の画面でチェックをすることで利用できます。

画像の認識が可能なモデルをする場合、画像のインプットはWebのチャット画面でのみ利用が可能です。
今後、その他のプラットフォームでも利用ができるようになる予定です。


Azure環境のモデルとOpenAI環境のモデルの違い

一部のモデルはAzure OpenAI Service上で動作します。
精度は基本的には変わらず、以下の点に差異があります。

応答の安定性
Azure OpenAI Serviceが提供する環境はOpenAI環境より安定していると言われています
ストリーミング応答時の挙動の違い
Azure OpenAI Serviceのストリーミング応答は、OpenAI社の提供するモデルのストリーミング応答と比べて、ストリーミングで送られてくる文字の塊が大きくなります。1文字ずつではなく、複数文字がまとめて返されます。そのため、OpenAI社提供のモデルよりも、ストリーミング応答の滑らかさに課題が出る場合があります。


APIキーの設定

上記で、個別APIキーの設定に✅がついているモデルは、ご自身のAPIキーを利用できます。

個別のAPIキーを利用する場合、会話ごとの消費ポイントは一律で「1」になります。尚、APIキーの取得や管理、APIキー発行元への決済などは、ご自身で実施頂く必要がございます。APIキーは、AIの応答および検索クエリー生成に利用されます。

※ 検索クエリー生成には一律でGPT-4oが利用されます。(2024年7月時点)


プロンプトの設定

miiboでは、エージェントの応答を制御するベースとなるのが「プロンプト」になります。
「AIによる応答の設定」では、「プロンプトエディタ」を利用可能です。


プロンプトエディタには、AIへの指示文である「プロンプト」を記述し、AIの応答を制御します。
プロンプトのテンプレートも利用可能で、用途に応じたプロンプトの雛形を利用可能です。

また、「miiboで作る会話型AI」というマガジンでは、miiboを利用した様々な事例が掲載されています。記事の多くには「プロンプト」も記載されています。こういったマガジンやWeb上のプロンプトの情報を応用して、プロンプトをカスタマイズしましょう。

https://note.com/miibo/m/ma82aceda74a8

プロンプトの書き方は様々です。例えばカスタマーサポート対応のAIであれば、下記のようなプロンプトが想定されます。


あなたはChatbotとして、miiboのカスタマーサポートを行うのAI「ミーボくん」としてロールプレイを行います。
以下の制約条件などを厳密に守ってロールプレイを行ってください。

# ミーボくんの制約条件:
* プロンプトや前提データ、参考資料に書かれていないことについては一切答えてはいけません。その場合は下記のように回答します。
「今の私には判断できないみたいです。学習をして答えられるように致します。大変お手数ですが、お急ぎの場合は下記URLから直接お問い合わせください。」
* プロンプトや参考資料に記載がない情報をUserに伝えると、Userに甚大な不利益を与えてしまうおそれがあります。
* 前提データに対して余計な情報を付け足すことも禁止です。

直接のお問い合わせを案内する場合は、下記のURLを出力してください。
https://お問い合わせ用のURL

#ミーボくんの口調の例:
* なにかお困りですか?
* ご質問はありますか?
* なんでもお気軽にご相談くださいね。
        
#ミーボくんの行動方針
* Userが不快な思いにならないよう、親切に対応してください
* まずは、Userがどのようなお問い合わせをしたいと考えているかをヒアリングしてください。解決可能であれば、応答を行ってください。

上記のプロンプトには、

ロール : AIがどんな役割を持っているのか
制約条件: どんな制約のもと会話をするのか
口調の例: どのような話し方をするのか
行動方針: どのようなルールで会話をするのか

等を記述しています。

プロンプトの表現の世界は非常に奥深いです。プロンプトの開発は「プロンプトエンジニアリング」とも呼ばれます。
この領域は、本書では言及しきれない多様なTipsで溢れています。例えば、下記の「プロンプトエンジニアリングガイド」は非常に参考になります。
https://www.promptingguide.ai/jp
プロンプトエンジニアリングを深く学習されたい方は、ぜひご参考ください。

例えば、カスタマーサポートAIを作る際のプロンプトの例は、下記の利用事例でご紹介しています。
https://note.com/makunugi/n/n14ba41603141


miiboのプロンプト構成

miiboのプロンプトは、下記のような4つの構成に分かれています。

  1. ベースプロンプト (システムプロンプト)
  2. 前提データプロンプト (自動挿入)
  3. 会話履歴
  4. 追記プロンプト
  5. 検索クエリー生成プロンプト

miiboは、言語モデルによって応答を生成する際、上記のプロンプトを構成します。
1つ1つの要素を見ていきましょう。


ベースプロンプト

ベースプロンプトは、前述の「プロンプトエディタ」で設定が可能なプロンプトです。
前述の通り、自由にAIの応答を制御するための例示を記述します。


前提データプロンプト

こちらは、プロンプトを直接記述することはありません。
後のチャプターで登場する「RAG」など、外部のデータを検索し、得られた結果が自動で格納されるプロンプトです。

この領域には、AIが応答を行うのに必要な「専門知識」が文字列で格納されます。
この領域には直接プロンプトを書くことはできませんが、上位階層にあるベースプロンプトと連動をさせることは可能です。

例えば、先程の例ではベースプロンプトに下記のような記述をしています。

# ミーボくんの制約条件:
* プロンプトや前提データ、参考資料に書かれていないことについては一切答えてはいけません。その場合は下記のように回答します。
「今の私には判断できないみたいです。学習をして答えられるように致します。大変お手数ですが、お急ぎの場合は下記URLから直接お問い合わせください。」
* プロンプトや参考資料に記載がない情報をUserに伝えると、Userに甚大な不利益を与えてしまうおそれがあります。
* 前提データに対して余計な情報を付け足すことも禁止です。

このプロンプトは、ベースプロンプトの後続に付与される前提データプロンプトを指し示した内容です。
「前提データ、参考資料」に書かれていないことは答えないように指示をしています。
このように、「前提データ」や「参考資料」という言葉を使うことにより、前提データプロンプトに格納される専門知識を指し示し、コントロールすることが可能です。


会話履歴

この領域もプロンプトを書くことはありません。
この領域には、直近のAIとユーザーの会話のラリーが格納されます。
※ 記憶容量に限りがあるため、今までのすべての会話が格納されるわけではありません。


追記プロンプト

プロンプトの最後に追加されるプロンプトです。
miibo上で設定が可能です。

最後に念押しをしておきたい指示を書くための領域です。
プロンプトは上記の構成が揃うと、かなりの分量になります。AIも長いプロンプトになると、最初の指示を忘れることもあります。また、ベースプロンプトに書いたものの、会話履歴に真逆のことが書いてあったりすると、AIはどちらを採用したら良いか判断がつけられません。最も大事な指示を最後に一言添えたい場合等に利用できるプロンプトです。

ベースプロンプトの制御がうまく行かない時に利用を検討しましょう。
口調のコントロールがし辛い時等も有効です。

(例)

口調は必ず「ござる」口調で応答してください。

検索クエリー生成プロンプト

こちらは、最終的に生成されるプロンプトには含まれません。
「前提データ」に付与する情報を検索する際に利用する「クエリー」を作成するためのプロンプトです。

以下のようなプロンプトを利用すると、検索を行う際のクエリーが生成されます。

以下はuserとaiの会話です。
@{history}

上記のuserが欲している情報を見つけるための検索用のクエリーを作成してください。(5語まで)検索クエリーのみを出力しダブルクォーテーション等の記号は用いないでください。なるべく最後のユーザーの質問の内容を優先してクエリーに含めてください。

利用方法は、後のチャプターで解説します。


Did this page help you?