Azure OpenAI Service の gpt-35-turbo と gpt-4 の 2023 年 6 月 バージョン (0613)
はじめに
Azrue OpenAI Service の gpt-35-turbo
と gpt-4
シリーズに 2023 年 6 月 版の新バージョン (0613) が追加されましたので情報をまとめました。
1. モデル
1.1. 対象シリーズ
具体的には以下の Chat Completions ができる以下のモデルシリーズでバージョン 0613
が利用可能になりました。
gpt-35-turbo
gpt-4
gpt-4-32k
また、同じタイミングで gpt-35-turbo
の最大トークンが拡張された gpt-35-turbo-16k
(最大 16,384 トークン) が追加されました。gpt-35-turbo-16k
は最新バージョンの 0613
のみ指定可能です。
1.2. リージョン
執筆時点で各シリーズ・バージョンが利用可能なリージョンは下表のとおりです。この情報は更新される可能性があるため、最新情報はドキュメントの内容も合わせて確認してください。
シリーズ | バージョン | East US | France Central | South Central US | UK South | West Europe |
---|---|---|---|---|---|---|
gpt-35-turbo | 0301 | ✓ | ✓ | ✓ | ✓ | ✓ |
gpt-35-turbo | 0613 | ✓ | ✓ | ✓ | ||
gpt-35-turbo-16k | 0613 | ✓ | ✓ | ✓ | ||
gpt-4 | 0314 | ✓ | ✓ | |||
gpt-4 | 0613 | ✓ | ✓ | |||
gpt-4-32k | 0314 | ✓ | ✓ | |||
gpt-4-32k | 0613 | ✓ | ✓ |
参考
2. バージョン 0613 の更新点
バージョン 0613
における更新点についてまとめます。
2.1. システムメッセージによる操作性
バージョン 0613
では、モデルがシステムメッセージにより従いやすくなり、操作性が向上したとされています。触ってみた上での感覚的なコメントにはなりますが、新バージョンではシステムメッセージを設定したにも関わらずうまく従ってくれない「そういうことじゃないんだよなぁ感」が低減されている印象です。以下は一例です。
gpt-35-turbo (0301)
gpt-35-turbo (0613)
2.2. 価格
gpt-35-turbo
の以前のバージョンである 0301
では、Prompt (入力) と Completion (出力) の価格差はありませんでしたが、バージョン 0613
では gpt-4
や gpt-4-32k
シリーズと同じように入出力で異なる価格設定がされています。また、gpt-35-turbo
と gpt-35-turbo-16k
の間でも価格差が存在し、gpt-35-turbo-16k
の方が 2 倍高い価格設定がされています。
0613
の価格
バージョン Prompt tokens (入力) | Completion tokens (出力) | |
---|---|---|
gpt-35-turbo | $0.0015 per 1K tokens | $0.002 per 1K tokens |
gpt-35-turbo-16k | $0.003 per 1K tokens | $0.004 per 1K tokens |
0301
の価格
バージョン $0.002 per 1K tokens
参考
gpt-35-turbo-16k
)
2.3. 最大トークン (gpt-35-turbo-16k
シリーズの登場は、これまで gpt-35-turbo
の最大トークン 4,096 がボトルネックになっていたユースケースの突破口になりそうです。
ちなみに、gpt-35-turbo-16k
も gpt-35-turbo
と同じく cl100k_base
エンコーディングを使っていますので、日本語に換算すると入出力合計で約 15,000 文字程度を一連の会話の中で扱うことができるようになります。
>>> import tiktoken
>>> print(tiktoken.encoding_for_model('gpt-3.5-turbo'))
<Encoding 'cl100k_base'>
>>> print(tiktoken.encoding_for_model('gpt-3.5-turbo-16k'))
<Encoding 'cl100k_base'>
ただし、最大トークンが大きいモデルの場合、Recency bias (直近効果) がより起こりやすくなると考えられます。そのため、プロンプトが長くなる場合は最後に要点をもう一度整理するなどして、gpt-35-turbo
ではあまり意識する必要のなかった対応策を検討する必要が出てくるかもしれません。
参考
2.4. Function calling
本家 OpenAI のバージョン 0613
で既に利用可能な Function calling は「もうすぐ来る」そうです。この新機能は Copilot stack におけるオーケストレーションレイヤーの実装を楽にしてくれる機能ですので、期待しつつ待ちましょう。
Function calling will be coming soon and will only be available for the new model versions announced today. (Function calling は近日中に公開される予定で、本日発表された新バージョンのモデルでのみ利用可能となる予定です。)
2023 年 7 月 20 日に Azure OpenAI Service でも Function calling が利用可能になりました。
参考
- Function calling is now available in Azure OpenAI Service
- How to use function calling with Azure OpenAI Service
- Azure-Samples/openai/Basic_Samples/Functions/ (サンプルコード)
- Function calling (本家 OpenAI のドキュメント)
3. 留意点
ここからは、バージョン 0613
の登場に伴い新たに生じた留意点についてまとめます。
3.1. バージョンのライフサイクル
以前から公開されている以下のシリーズにおける初めてのアップグレードです。同時に、初めて旧バージョンの有効期限切れを経験することになります。これは本家 OpenAI のドキュメントで言うところの "イテレーション" が初めて 1 サイクル回ったという状況です。
gpt-35-turbo
gpt-4
gpt-4-32k
既に Azure OpenAI Service が稼働している環境においては、以下の 3 つの選択肢が考えられます。
-
新たなデプロイを作成: モデルバージョンに最新の
0613
を指定したデプロイを作成して、アプリケーションの参照先を切り替える。 -
既存のデプロイのアップグレード: 既存のデプロイのモデルバージョンを最新の
0613
に変更するか、"Auto-update to default" に設定して自動的にアップグレードされるようにする。ただし、モデルの挙動が変わる可能性がある点に注意。 - 既存のデプロイの自動アップグレードを行わず有効期限切れのタイミングでリクエスト受付停止: ガイドライン公開待ち。
参考
3.2. クォータ
Azure OpenAI Service のクォータは各リージョン内でモデルのシリーズごとに設定されます。gpt-4
と gpt-4-32k
は別々のクォータが設定されていますが、gpt-35-turbo
シリーズと gpt-35-turbo-16k
は共通のクォータが設定されています。Azure OpenAI Service のクォータ管理に関しては以前に別の記事でまとめましたので、そちらを参照してください。
クォータ共有範囲のイメージ
参考
3.3. On Your Data
執筆時点でバージョン 0613
は、モデルが回答を生成する際のグラウンディング対象のナレッジベースの指定・切り替えができる On Your Data には対応していないようです。RAG パターンでナレッジベースを外部化する際にはモデルの最大トークンがボトルネックになりがちですので、gpt-35-turbo-16k
の対応に期待です。
なお、On Your Data の仕組みや使う上で気を付けるべきポイントは以前に別の記事でまとめましたので、そちらを参照してください。
参考
4. バージョンの設定方法
バージョン 0613
の設定方法はとても簡単です。新規デプロイの場合は Model version
のドロップダウンリストから 0613
を選択します。既存のデプロイでも、Edit deployment
から変更が行えます。
新規デプロイの作成
既存デプロイの変更
参考
おわりに
以上です。🍵
Discussion