Azure OpenAIとは ~ gpt-35-turbo と gpt-4/gpt-4-32k のAPI仕様比較 ~

システムソリューション営業本部の網干です。
QESではAzure OpenAI ServiceのGPT4の利用申請をしておりましたが、ついに利用ができるようになりました。
参考までに申請からの日数ですが、ちょうど10日でした。2023年4月5日(水)に申請して、4月11日(火)に待機リスト入り、4月15日(土)に申請が通っています。
はじめに
本記事ではタイトルの通り、gpt-35-turboとgpt-4/gpt-4-32kのAPI仕様比較を行います。
gpt-35-turboからAPIの仕様変更が複数ありますので、これからgpt-4/gpt-4-32kの利用をお考えの方はぜひ最後まで御覧ください。
なお、リファレンスにはGPT-4 (プレビュー)と記載されていることから、今後の仕様変更も考えられます。仕様変更がありましたら随時ブログに情報をアップデートしていく予定です。
【関連記事】
Azure OpenAIとは ~ 概要と初期構築手順を解説 ~
https://www.qes.co.jp/media/azure/a254
Azure Open AIとは ~ モデルの展開と料金プランについて ~
https://www.qes.co.jp/media/azure/a257
Azure OpenAI Service で GPT-4 を利用する方法と3.5との違いを解説
https://www.qes.co.jp/media/azure/a267
Azure OpenAI Service におけるデータの取り扱いについて
https://www.qes.co.jp/media/azure/a269
APIの仕様比較
MicrosoftのAzure OpenAI Service の APIリファレンスを確認してみましょう。
Azure OpenAI Service の REST API リファレンス - Azure OpenAI | Microsoft Learn
https://learn.microsoft.com/ja-jp/azure/cognitive-services/openai/reference
Azure OpenAI Service REST API reference - Azure OpenAI | Microsoft Learn
https://learn.microsoft.com/en-us/azure/cognitive-services/openai/reference
APIリファレンスについては日本語版だと分かり辛い部分もありますので、英語版のリンクも掲載しておきます。
目を通してみて最初に気が付いたのは、プロンプト(指示の出し方)のタイプが変更になっていることでした。この変更はとても大きな変更です。
gpt-35-turboまでのAPIを利用していたチャットボット等は必ず修正が必要になります。
具体的には、gpt-35-turboは「prompt」というパラメータがあり、string型(文字列)もしくはarray型(配列・リスト型)でした。それに対して、gpt-4/gpt-4-32kには「prompt」というパラメータがなく、「messages」というパラメータに置き換わりました。
その他にも、gpt-35-turboまでのパラメータと比較してみたところ、gpt-4/gpt-4-32kのパラメータでは種類が減っていることがわかりました。
変更点を比較表にまとめましたので、ご覧ください。(画像クリックで拡大できます)
個人的には「max_tokens」の変更は大きいと感じています。
gpt-35-turboまでのデフォルト値が「16」でしたので、つい設定をし忘れてしまい、短い文字列が返ってくるだけ・・・というのを何度も経験しました。
これからは逆に、gpt-4/gpt-4-32kが超長文を返してくる可能性が考えられますので、どのぐらいが適切な値になるのかを見極め、利用用途によって調整する必要がでてくるでしょう。
また、私の検証では「temperature」をデフォルト値の「1」で使用していたことがほとんどでしたが、gpt-4/gpt-4-32kは相当賢くなっているとのことですので、今後検証してみたい項目です。
messagesについて
「prompt」というパラメータから、「messages」というパラメータになっている部分ですが、具体的に解説していきます。
ただ、実は本記事執筆時点で、MicrosoftのAzure OpenAI Service の APIリファレンスには、role(ロール)の種類について詳しい記述が見当たりません。
替わりに、OpenAIのAPIリファレンスを確認してみたところ、system / user / assistant の3種類あることがわかります。
チャットボットを例にすると、以下のようなイメージです。
- system:チャットボット作成者が予め入力しておくプロンプト
- user:チャットボット利用者の入力文
- assistant:ChatGPTの回答
実際のJSON形式で見ると、以下の画像のようになります。
前述の通りOpenAIのAPIリファレンスを確認した結果ですが、注意しなければいけないのは以下の記述がされていることです。
gpt-3.5-turbo-0301 does not always pay strong attention to system messages. Future models will be trained to pay stronger attention to system messages.
Chat completion - OpenAI API
https://platform.openai.com/docs/guides/chat/introduction
(意訳)gpt-3.5-turbo-0301はsystemのメッセージに強く注意を払うわけではありません。今後のモデルでは、強く注意を払うように訓練する予定です。
つまり、systemの権限が一番強くなっているわけではないので、userからのプロンプトインジェクションについても考慮する必要があります。
ただし、これはOpenAIのgpt-3.5-turbo-0301 についての記述で、Azure OpenAI Serviceのgpt-4/gpt-4-32kの記述ではありません。
記事執筆時点ではAzure OpenAI Serviceのgpt-4/gpt-4-32kについては公式情報がなく、詳細が不明です。正式版になったらsystemの権限が強くなっていて、プロンプトインジェクションに関する考慮点が減っていると嬉しいですが、続報を待ちたいと思います。
おわりに
以上、簡単ではありますが、Azure OpenAI Serviceのgpt-35-turboとgpt-4/gpt-4-32kのAPIリファレンスに目を通して、比較してみました。
何度も繰り返しになりますが、gpt-4/gpt-4-32kはいずれもプレビュー版ですので、正式版になった場合は仕様変更される可能性があります。
今後も社内検証を進めていきますので、新たな発見がありましたら随時情報発信していきます。Microsoftの公式情報にも更新がありましたらお知らせします。
【関連記事】
Azure OpenAIとは ~ 概要と初期構築手順を解説 ~
https://www.qes.co.jp/media/azure/a254
Azure Open AIとは ~ モデルの展開と料金プランについて ~
https://www.qes.co.jp/media/azure/a257
Azure OpenAI Service で GPT-4 を利用する方法と3.5との違いを解説
https://www.qes.co.jp/media/azure/a267
Azure OpenAI Service におけるデータの取り扱いについて
https://www.qes.co.jp/media/azure/a269
弊社では取り急ぎGPTを活用した社内チャットボットを導入したいお客様向けにサービスを開始しています。
ご興味のある方はお問い合わせくださいませ。
Azure OpenAIはAzureでは「Cognitive Services」の一部に分類されています。
QESでは過去にCognitive関連のブログも投稿しておりますので、ご興味がある方はご覧になってください。
Cognitive関連ブログはこちら
※このブログで参照されている、Microsoft、Azure、Azure OpenAI、PowerAppsその他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※その他の会社名、製品名は各社の登録商標または商標です。