本記事では2023年4月よりAzure OpenAIで利用可能になったGPT-4についての概要と、申請から実際に使用するまでの手順を解説します。
概要
以前の記事でAzure OpenAI APIを用いてChatGPT(GPT3.5-Turbo)を使用する方法について紹介しました。
blog.jbs.co.jp
Azure OpenAIでは4月からGPT-4が使用できるようになっています。
利用申請の方法から、実際にAPIを使用してチャットを行うまでの手順をご紹介します。
本記事は2023年4月時点の情報で書かれています。
最新サービスであるため、情報が他のサービスよりも高い頻度でアップデートされる点にご注意ください。
Azure OpenAIにおけるGPT-4
Azure OpenAIでは以下の2種類のモデルがデプロイできます。
- gpt-4 (8k)
- gpt-4-32k
それぞれ送信できるトークン(文字数)上限に違いがあり、前者が8000トークン、後者が32000トークンまでの処理が可能です。
価格については以下の通りです。 同じChatGPTモデルのGPT-3.5 Turboが、プロンプト・完了いずれも1000トークンあたり約0.27円です。通常のGPT-4でもおおむね15~30倍程度の料金が発生することが分かります。
モデル名 | プロンプト (1,000 トークンあたり) | 完了 (1,000 トークンあたり) |
---|---|---|
gpt-4 | ¥3.976 | ¥7.951 |
gpt-4-32k | ¥7.951 | ¥15.901 |
手順
GPT-4 利用申請
前提条件としてAzure OpenAIの利用申請を行い、リソースを作成しておく必要があります。
Azure OpenAI自体の利用申請については、以下のDocsをご参照ください。
learn.microsoft.com
GPT-4を使うためには、Azure OpenAIの申請とは別に利用申請が必要になります。
以下のリンクより利用申請を行います。
https://aka.ms/oai/get-gpt4
デプロイ済みAzure OpenAIのサブスクリプションIDや組織名などが必要になります。
アプリケーションIDについては、Azure OpenAI承認時のメールに記載されていなければ入力しなくても大丈夫です。
Azure OpenAIの申請については数日程度で利用できるケースも増えてきましたが、GPT-4については2023年4月時点で承認までかなり時間がかかるようです。
自分の場合は申請から10日ほどで承認されましたが、社内では20日過ぎて承認されていないケースもありました。
GPT-4 デプロイ
申請が完了すると、Cognitive Services Getting Supportチームから承認のメールが届きます。
この状態になればOpenAI Studioの一覧からGPT-4系モデルがデプロイできるようになります。
デプロイについてはGPT-3.5モデルやその他モデルの手順と変わりないので、詳細は割愛します。
デプロイ後は、Azure OpenAI Studio上からGPT-4でチャットを行える状態になります。
パッケージの導入
PythonからGPT-4を使用するためにはOpenAIのパッケージを最新版にしておく必要があります。
以下のコマンドで、現時点で最新版のパッケージに更新します。
pip install openai==0.27.4
リクエストの送信
プログラム側でapiの詳細情報を設定します。
注意点としては、api_versionのコードを最新の状態にしておく必要があります。
import openai openai.api_type = "azure" openai.api_key = API_KEY openai.api_base = RESOURCE_ENDPOINT openai.api_version = "2023-03-15-preview"
前回の記事ではCompletionメソッドを使用しましたが、GPT-4ではCompletionメソッドでリクエストを送信することができません。
ChatCompletionメソッドを使用します。
ChatCompletionメソッドでは、プロンプトをmessagesに定義します。
前回はim_startやim_endを1つのstring型文字列に配置しましたが、本メソッドでは代わりにlist内にロール・コンテンツを定義したdictを配置します。
ロールは同じくsystem, user, assistantの3種類で構成します。
(chat1,chat2にはユーザーの文章を、res1にはchat1に対するGPT-4からのレスポンスの文章が入る想定でサンプルプログラムを書いています)
system_prompt = "あなたは優秀なAIアシスタントです。" chat1 = "" res1 = "" chat2 = "" response = openai.ChatCompletion.create( engine="gpt-4-model", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": chat1}, {"role": "assistant", "content": res1}, {"role": "user", "content": chat2}, ], max_tokens=500, temperature=0 )
おわりに
非常に高い精度を持つ最新技術のGPT-4を、Azureベースで利用できるようになりました。
チャット系に限らず、文章要約などの他のタスクや埋め込みモデルの活用など、さまざまなビジネスの発展が今後起こることが想定されます。
最新情報がアップデートされ次第、またこちらのBlogで配信していきますので、どうぞよろしくお願いいたします。