はじめに
GPT ででモデルを操作する方法としてChat Completion と ChatMLがあります。これはGPTを利用するアプリケーション開発において方向性を決める重要な箇所となります。
-
GPT-35-Turbo および GPT-4 モデルの操作 - Azure OpenAI Service | Microsoft Learn
GPT-35-Turbo および GPT-4 モデルを使用する方法のオプションについて説明します。
learn.microsoft.com
これら2つ手法によりGPTにアクセスできます。
ただし、ここで注目すべき点としてはGPT-4ではChat Completionを操作する唯一の方法となります。そのため、ChatMLよりChat Completionを優先的に利用するのが良いと思います。
それぞれ特徴を簡単まとめています。
Chat Completion
Chat Completion はJson形式
massages内に設定します。
response = openai.ChatCompletion.create(
engine="gpt-35-turbo",
messages=[
{"role": "system", "content": "Assistant is a large language model trained by OpenAI."},
{"role": "user", "content": "What's the difference between garbanzo beans and chickpeas?"},
]
)
ChatML
ChatMLはマークアップ言語です。
prompt内に設定します。改行を\n
で入力して一行で書き込む必要があります。またそれぞれタグ<|im_start|><|im_end|>
で要素をマークアップします。
response = openai.Completion.create(
engine="gpt-35-turbo",
prompt="<|im_start|>system\nAssistant is a large language model trained by OpenAI.\n<|im_end|>\n<|im_start|>user\nWhat's the difference between garbanzo beans and chickpeas?\n<|im_end|>\n<|im_start|>assistant\n",
temperature=0,
max_tokens=500,
top_p=0.5,
stop=["<|im_end|>"])
モデル操作
モデル操作を行うにはChat Completion と ChatMLがあります。そして、両方で共通することとして、会話形式で入力を受け入れるようにメッセージパラメーターがロール別になっています。
システム ロール
システム ロールは、システム メッセージとも呼ばれ、配列の先頭に含まれます。 このメッセージは、モデルに最初の指示を与えます。
つまり、作成するChatシステムの方向性を決める重要な部分となります。例として以下のような指定ができます。
- アシスタントの簡単な説明
- アシスタントの性格的な特性
- アシスタントに従ってもらいたい手順またはルール
- FAQ からの関連する質問など、モデルに必要なデータまたは情報
それぞれフォーマットは以下のようになります。system
で指定します。
Chat Completion |
{"role": "system", "content": "Provide some context and/or instructions to the model"}, |
ChatML |
<|im_start|>system Provide some context and/or instructions to the model. <|im_end|> |
メッセージ
メッセージはユーザーが入力する部分です。システム ロールの後に、ユーザーとアシスタントの間の一連のメッセージを含められることができます。
ChatGPTなどのChat部分で自身が入力する部分です。user
で指定します。
Chat Completion |
{"role": "user", "content": "What is thermodynamics?"} |
ChatML |
<|im_start|>user What is thermodynamics? <|im_end|> |
GPTからの返答
返答の部分はメッセージで入力した値に対してGPTからレスポンスが定義されます。
Chat Completion |
{"role": "assistant", "content": "In 2023, you will need to file your taxes by April 18th. The date falls after the usual April 15th deadline because April 15th falls on a Saturday in 2023. For more details, see https://www.irs.gov/filing/individuals/when-to-file."}, |
ChatML |
<|im_start|>assistant You can check the status of your tax refund by visiting https://www.irs.gov/refunds <|im_end|> |
まとめ
Azure OpenAI Service の GPT のモデル操作を簡単に解説しました。ただしもっと奥が深いです。これらも含めAI周りを一通り学習していくと良いでしょう。