メルマガ登録
このたびブレインパッドは、LLM/Generative AIに関する研究プロジェクトを立ち上げ、この「Platinum Data Blog」を通じてLLM/Generative AIに関するさまざまな情報を発信をしています。
今回は、新登場したAzure OpenAI ServiceでChatGPTを使うまでの流れをまとめました。
こんにちは。データエンジニアリング本部 ソリューション開発部の山下です。
巷ではChatGPTの話題に事欠きませんが、もちろんブレインパッド社内もGPTなどのGenerative AIの話題でもちきりです。そんな中、当本部では、Foundation Model(FM)およびLarge Language Model(以下、LLM)の技術獲得を目的に、LLM技術獲得本部プロジェクトが発足し、複数のワーキンググループに分かれて活動をしています。
普段クロスファンクショナルチームのAzureチームとして活動をする私ですが、こちらのPJにも所属して技術検証やプロトタイプの作成を行っています。
今回はAzure OpenAI ServiceのAzureにおける構成の説明と、実際に使うまでの流れを記事にしました。
Azure OpenAI Serviceの位置づけとWEB画面を確認します。
Azure OpenAI ServiceはAzure Cognitive Servicesの内の1つのサービスとして提供されています。Azure Cognitive Servicesの利用者は直接的な機械学習やデータサイエンスの知識がなくともAPIやSDKなどから簡単に扱うことができるサービス群です。
ですので、Azure Portalでは、Cognitive Servicesの画面の中にAzure OpenAI Serviceのメニューがあり、各OpenAIリソースが管理されています。
そして、リソース毎にOpenAIのモデルをデプロイする構造になっています。
また、UIとしてREST APIやPython SDKのほか、Webベースの「Azure OpenAI Studio」が用意されています。
Azure OpenAI Studioはリソース毎にURLが分かれており、「プレイグラウンド」と「管理」のメニューが用意されています。
次は実際にリソースを作成してみます。
Azure OpenAI Service を使い始める前に、Microsoft社に利用申請をする必要があります。まだ利用申請が済んでいない場合は、https://aka.ms/oaiapply から利用申請を行うことができます。私の場合申請から利用開始までに2〜3営業日かかったので、なるべく早めに申請をしておくことをお勧めします。また、GPT-4を利用したい場合は、上記利用申請に加えてhttps://aka.ms/oai/get-gpt4 からも利用申請が必要になります。
Azure PortalにログインしたらCognitive Servicesの画面を開きます。
「Azure OpenAI」のメニューを選択します。
上部の「+作成」からリソースの作成を行います。
Azureではおなじみの項目のサブスクリプション、リソースグループ、リージョン、名前、価格レベルを入力します。
この時リージョンによって、利用可能なモデルが異なるため下記サイトで利用する予定のモデルがリージョンでサポートされているか確認が必要です。
https://learn.microsoft.com/ja-jp/azure/cognitive-services/openai/concepts/models
また、上記のメッセージが出ている場合、「3.Azure OpenAI Service利用申請」が済んでいないのでリンクから利用申請を行ってください。
続いてネットワークについてです。こちらも、おなじみの以下の項目から選ぶことができます。今回はAll networkにします。
必要に応じてタグを入力します。
最後に確認をして作成!数分でリソースができあがります。
作成済みリソース名のリンク先に遷移すると、個別のリソース管理画面が表示されます。
リソースができたら、リソースの管理画面を開きます。管理画面の上側に「Azure OpenAI Studioに移動する」というリンクがあるのでそちらを選択します。
次はモデルのデプロイを行います。モデルのデプロイは、Azure PortalとAzure OpenAI Studioのどちらからでもできます。今回はAzure OpenAI Studioから行ってみたいと思います。
まずは、Azure OpenAI Studioに入り、左側の「デプロイ」を選択します。
デプロイの管理画面では、「+新しいデプロイの作成」を選択します。
「モデル名」のプルダウンからベースモデルを選びます。
2023年5月現在では「East US」では以下のベースモデルが選択できます。
デプロイできるモデルの種類やバージョンについては「Azure OpenAI Service モデル」を参照してください。
今回のモデルは「gpt-35-turbo」にしてみました。モデルのバージョンは「0301」以外選択できませんでした。デプロイ名を入力して「作成」。
このようにモデルをデプロイすることができました。
続いてデプロイしたモデルを使ってみます。左のプレイグランドの「チャット」もしくは中央の「ChatGPTプレイグランド(プレビュー)を選択します。
ChatGPTプレイグランドの画面に遷移しました。アシスタントのセットアップ、チャットセッション、パラメータのパネルが用意されています。
このパネルで設定した値が、APIのパラメータとなってAzure OpenAI Serviceに要求が送信されます。実際のコードはチャットセッションパネルの「コードの表示」から見ることができます。
まずはアシスタントのセットアップから行います。
AIの役割をセットアップします。今回は「Xbox customer support agent」を選択しました。
システム(AI)に送り込むメッセージの変更を聞かれるので「続行」を選択します。
システムメッセージや、ショットの例が更新されました。(サンプルがXboxカスタマーサポートにPS5について聞いているのは少し面白いですね。)
続いてチャットセッションで、「Xboxを買いたいと思っています」と入力してみました。
しっかり日本語で回答してくれました。
この状態で「コードの表示」でコードを見てみたいと思います。
#Note: The openai-python library support for Azure OpenAI is in preview.
import os
import openai
openai.api_type = "azure"
openai.api_base = "https://aoai-llmres-yamashita.openai.azure.com/"
openai.api_version = "2023-03-15-preview"
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.ChatCompletion.create(
engine="gpt35-llmres-yamashita",
messages = [
{
"role": "system",
"content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."
},
{
"role": "user",
"content": "How much is a PS5?"
},
{
"role": "assistant",
"content": "I apologize, but I do not have information about the prices of other gaming devices such as the PS5. My primary focus is to assist with issues regarding Xbox devices. Is there a specific issue you are having with your Xbox device that I may be able to help with?"
},
{
"role": "user",
"content": "Xboxを買いたいと思っています"
},
{
"role": "assistant",
"content": "Xboxを購入することに決めたのですね。素晴らしい選択です!Xbox One SとXbox One Xの2つのモデルがあります。Xbox One Sはより手頃な価格で、4Kビデオストリーミング、HDR、および4K Ultra HD Blu-ray再生をサポートしています。Xbox One Xはより高価ですが、より高速なプロセッサー、より高速なグラフィックス、およびより高品質なビジュアルを提供します。どちらのモデルに興味がありますか?また、他に何か質問があればお答えします。"
}
],
temperature=0,
max_tokens=350,
top_p=0.95,
frequency_penalty=0,
presence_penalty=0,
stop=None)
||< presence_penalty=0,
stop=None)
言語は、json,python,c#,curlを選択できます。
このようにサンプルコードを確認することで、どの様にコードを書けばよいのかが分かります。
また、パラメーターパネルの一番下に「現在のトークン数」を表示してくれる機能があります。Azure OpenAI Service の料金はトークンあたりの課金が含まれますので、事前に確認出来るのはありがたいですね。
今回はAzure OpenAI Serviceが新登場したということで、とりあえずリソースを作って、モデルをデプロイし、Azure OpenAI StudioからChatGPTを使ってみました。今回、実際にやってみることで比較的簡単に利用することができることが分かりました。
次回は、Azure OpenAI ServiceのAzure Portal上にはどのようなメニューが用意されているのか、何ができるかを調べて記事にしたいと思います。
あなたにオススメの記事
2023.12.01
生成AI(ジェネレーティブAI)とは?ChatGPTとの違いや仕組み・種類・活用事例
2023.09.21
DX(デジタルトランスフォーメーション)とは?今さら聞けない意味・定義を分かりやすく解説【2024年最新】
2023.11.24
【現役社員が解説】データサイエンティストとは?仕事内容やAI・DX時代に必要なスキル
2023.09.08
DX事例26選:6つの業界別に紹介~有名企業はどんなDXをやっている?~【2024年最新版】
2023.08.23
LLM(大規模言語モデル)とは?生成AIとの違いや活用事例・課題
2024.03.22
生成AIの評価指標・ベンチマークとそれらに関連する問題点や限界を解説