Azure OpenAI Service で作業を開始する
Azure OpenAI Service は OpenAI によって開発された生成 AI モデルを Azure プラットフォームに導入します。これにより、Azure クラウド プラットフォームによって提供されるサービスのセキュリティ、スケーラビリティ、統合の恩恵を受ける強力な AI ソリューションを開発できるようになります。 この演習では、サービスを Azure リソースとしてプロビジョニングし、Azure AI Foundry を使用して生成 AI モデルをデプロイおよび探索することにより、Azure OpenAI の使用を開始する方法について学習します。
この演習のシナリオでは、マーケティング組織が顧客にアプローチし、新製品を宣伝する効率を向上させるために生成 AI を使うことのできる AI エージェントの実装を任されたソフトウェア開発者の役割を果たします。 この演習で使われる手法は、組織が生成 AI モデルを使って従業員の効率と生産性を向上させたいあらゆるシナリオに適用できます。
この演習は約 30 分かかります。
Azure OpenAI リソースをプロビジョニングする
まだ持っていない場合は、Azure サブスクリプションで Azure OpenAI リソースをプロビジョニングします。
- Azure portal (
https://portal.azure.com
) にサインインします。 - 次の設定で Azure OpenAI リソースを作成します。
- [サブスクリプション]: “Azure OpenAI Service へのアクセスが承認されている Azure サブスクリプションを選びます”**
- [リソース グループ]: リソース グループを作成または選択します
- [リージョン]: 以下のいずれかのリージョンからランダムに選択する*
- オーストラリア東部
- カナダ東部
- 米国東部
- 米国東部 2
- フランス中部
- 東日本
- 米国中北部
- スウェーデン中部
- スイス北部
- 英国南部
- [名前]: “希望する一意の名前”
- 価格レベル: Standard S0
* Azure OpenAI リソースは、リージョンのクォータによって制限されます。 一覧表示されているリージョンには、この演習で使用されるモデル タイプの既定のクォータが含まれています。 リージョンをランダムに選択することで、サブスクリプションを他のユーザーと共有しているシナリオで、1 つのリージョンがクォータ制限に達するリスクが軽減されます。 演習の後半でクォータ制限に達した場合は、別のリージョンに別のリソースを作成する必要が生じる可能性があります。
- デプロイが完了するまで待ちます。 次に、Azure portal でデプロイされた Azure OpenAI リソースに移動します。
モデルをデプロイする
Azure には、モデルのデプロイ、管理、調査に使用できる Azure AI Foundry portal という名前の Web ベース ポータルが用意されています。 Azure AI Foundry ポータルを使用してモデルをデプロイすることで、Azure OpenAI の調査を開始します。
注: Azure AI Foundry ポータルを使用すると、実行するタスクを提案するメッセージ ボックスが表示される場合があります。 これらを閉じて、この演習の手順に従うことができます。
- Azure portal にある Azure OpenAI リソースの [概要] ページで、[開始する] セクションまで下にスクロールし、ボタンを選択して AI Foundry portal (以前は AI Studio) に移動します。
- Azure AI Foundry の左ペインで、[デプロイ] ページを選び、既存のモデル デプロイを表示します。 まだない場合は、次の設定で gpt-4o モデルの新しいデプロイを作成します。
- デプロイの名前: 任意の一意の名前
- モデル: gpt-4o
- モデル バージョン: 既定のバージョンを使用する
- デプロイの種類:Standard
- 1 分あたりのトークンのレート制限: 5K*
- コンテンツ フィルター: 既定
- 動的クォータを有効にする: 無効
* この演習は、1 分あたり 5,000 トークンのレート制限内で余裕を持って完了できます。またこの制限によって、同じサブスクリプションを使用する他のユーザーのために容量を残すこともできます。
チャット プレイグラウンドを使用する
モデルをデプロイしたので、それを使って自然言語プロンプトに基づいた応答を生成できます。 Azure AI Foundry ポータルのチャット プレイグラウンドには、GPT 4 以降のモデルのチャットボット インターフェイスがあります。
注: Chat プレイグラウンドは、Completions プレイグラウンドで使われる以前の Completions API ではなく、ChatCompletions API を使います。 Completions プレイグラウンドは、以前のモデルとの互換性のために提供されています。
- [プレイグラウンド] セクションで、[Chat] ページを選びます。 Chat プレイグラウンド ページは、ボタンの行と 2 つのメイン パネルで構成されます (画面の解像度に応じて、右から左へ水平に、または上から下へ垂直に配置されます)。
- 構成 - デプロイの選択、システム メッセージの定義、デプロイとやり取りするためのパラメーターの設定に使用されます。
- チャット セッション - チャット メッセージを送信し、応答を表示するために使われます。
- [デプロイ] で、gpt-4o モデル デプロイが選択されていることを確認します。
- 既定のシステム メッセージを確認します。それは、“あなたは、ユーザーが情報を見つけるのを助ける AI アシスタントです” となっているはずです。 システム メッセージはモデルに送信されるプロンプトに含まれており、モデルの応答のコンテキストを提供します。モデルに基づいた AI エージェントがユーザーとどのように対話するかについて期待されるものを設定します。
-
[チャット セッション] パネルに、ユーザー クエリ
How can I use generative AI to help me market a new product?
を入力します注: API デプロイの準備がまだできていないという応答を受け取る場合があります。 その場合は、数分待ってからもう一度やり直してください。
- モデルが、プロンプトの対象となったクエリに関連する簡潔にまとめられた自然言語の回答を生成していることに注意して、応答を確認します。
- ユーザー クエリを入力します
What skills do I need if I want to develop a solution to accomplish this?
。 - チャット セッションが会話のコンテキストを保持している (そのため、”this” はマーケティング用の生成 AI ソリューションとして解釈されます) ことに注意して、応答を確認します。 このコンテキスト化は、連続する各プロンプト送信に最近の会話履歴を含めることによって実現されるため、2 番目のクエリのモデルに送信されるプロンプトには、元のクエリと応答、新しいユーザー入力が含まれます。
- [チャット セッション] パネルのツール バーで、[チャットのクリア] を選び、チャット セッションが再起動することを確認します。
- クエリ
Can you help me find resources to learn those skills?
を入力して応答を確認します。これは有効な自然言語の回答であるはずですが、以前のチャット履歴が失われているため、回答は生成 AI マーケティング ソリューションを構築するために必要な特定のスキルに関連するものではなく、一般的なスキル リソースを見つけることに関するものになる可能性があります。
システム メッセージ、プロンプト、フューショットの例を試してみる
ここまでは、既定のシステム メッセージに基づいてモデルとのチャット会話を行ってきました。 システム設定をカスタマイズして、モデルによって生成される応答の種類をより詳細に制御できます。
- メイン ツール バーで、プロンプト サンプルを選択し、マーケティング ライティング アシスタント プロンプト テンプレートを使用します。
- AI エージェントがモデルを使って応答する方法を説明する、新しいシステム メッセージを確認します。
- [チャット セッション] パネルに、ユーザー クエリ
Create an advertisement for a new scrubbing brush
を入力します。 -
応答を確認します。これには、デッキブラシの広告コピーが含まれているはずです。 コピーは非常に広範で創造的なものかもしれません。
実際のシナリオでは、マーケティング担当者はおそらく既にデッキブラシ製品の名前を知っているだけでなく、広告で強調すべき主要な機能についていくつかのアイデアを持っているでしょう。 生成 AI モデルから最も有用な結果を得るには、ユーザーは可能な限り多くの関連情報を含むようにプロンプトを設計する必要があります。
- プロンプト
Revise the advertisement for a scrubbing brush named "Scrubadub 2000", which is made of carbon fiber and reduces cleaning times by half compared to ordinary scrubbing brushes
を入力します。 -
応答を確認します。これには、デッキブラシ製品に関して提供した追加情報を考慮に入れる必要があります。
応答はさらに有用なものになったはずですが、モデルからの出力をさらに細かく制御するために、応答のベースとなる 1 つ以上の “フューショット” の例を提供します。**
-
[システム メッセージ] テキスト ボックスの下で、[セクションの追加] のドロップダウンを展開し、[例] を選択します。 次に、指定されたボックスに次のメッセージと応答を入力します。
ユーザー:
Write an advertisement for the lightweight "Ultramop" mop, which uses patented absorbent materials to clean floors.
アシスタント:
Welcome to the future of cleaning! The Ultramop makes light work of even the dirtiest of floors. Thanks to its patented absorbent materials, it ensures a brilliant shine. Just look at these features: - Lightweight construction, making it easy to use. - High absorbency, enabling you to apply lots of clean soapy water to the floor. - Great low price. Check out this and other products on our website at www.contoso.com.
- [変更を適用] ボタンを使って例を保存し、新しいセッションを開始します。
- [チャット セッション] セクションに、ユーザー クエリ
Create an advertisement for the Scrubadub 2000 - a new scrubbing brush made of carbon fiber that reduces cleaning time by half
を入力します。 - 応答を確認します。これは、システム セットアップで提供される “Ultramop” の例でモデル化された “Scrubadub 2000” の新しい広告であるはずです。
パラメーターを試してみる
システム メッセージ、例、プロンプトが、モデルから返される応答を調整するのにどのように役立つかについて説明しました。 パラメーターを使ってモデルの動作を制御することもできます。
- [構成] パネルで、[パラメーター] タブを選び、次のパラメーター値を設定します。
- 最大応答:1000
- 温度:1
- [チャット セッション] セクションで、[チャットのクリア] ボタンを使ってチャット セッションをリセットします。 次に、ユーザー クエリ
Create an advertisement for a cleaning sponge
を入力し、応答を確認します。 結果として得られる広告のコピーには、最大 1000 個のテキスト トークンが含まれ、創造的な要素を含める必要があります。たとえば、モデルがスポンジの製品名を考案し、その機能について何らかの主張をすることなどです。 - [チャットのクリア] ボタンを使ってチャット セッションを再度リセットし、前と同じクエリ (
Create an advertisement for a cleaning sponge
) を再入力して応答を確認します。 応答は以前の応答とは異なる場合があります。 - [構成] パネルの [パラメーター] タブで、[温度] パラメーター値を 0 に変更します。
- [チャット セッション] セクションで、[チャットのクリア] ボタンを使ってチャット セッションを再度リセットし、前と同じクエリ (
Create an advertisement for a cleaning sponge
) を再入力して応答を確認します。 今回の応答はそれほど創造的ではないかもしれません。 -
[チャットのクリア] ボタンを使ってチャット セッションを再度リセットし、前と同じクエリ (
Create an advertisement for a cleaning sponge
) を再入力して応答を確認します。これは、前の応答と (同一ではないにしても) 非常に似ているはずです。[温度] パラメーターは、応答の生成においてモデルが創造的である度合いを制御します。 値が低いと、ランダムな変動がほとんどない一貫した応答が得られますが、値が高いと、モデルがその出力に創造的な要素を追加することが促進されます。これは、応答の正確性と現実性に影響を与える可能性があります。
モデルを Web アプリにデプロイする
Azure AI Foundry プレイグラウンドで生成 AI モデルの機能の一部を探索したので、ユーザーがモデルとチャットできる基本的な AI エージェント インターフェイスを提供する Azure Web アプリをデプロイできます。
注: Studio のテンプレートにバグがあるため、ユーザーによっては、Web アプリへのデプロイを行えないことがあります。 その場合は、このセクションをスキップしてください。
- Chat プレイグラウンド ページの右上隅にある [デプロイ先] メニューで、[新しい Web アプリ] を選びます。
- [Web アプリにデプロイ] ダイアログ ボックスで、次の設定で新しい Web アプリを作成します。
- 名前: ‘‘一意の名前’‘**
- [サブスクリプション]:”ご自身の Azure サブスクリプション”
- [リソース グループ]: “Azure OpenAI リソースをプロビジョニングしたリソース グループ”**
- 位置:”Azure OpenAI リソースをプロビジョニングしたリージョン”**
- 料金プラン:無料 (F1) - “これが利用できない場合は、基本 (B1) を選びます”**
- Web アプリでチャット履歴を有効にする:未選択
- Web アプリが私のアカウントに使用されることに同意します: 選択済み
- 新しい Web アプリをデプロイし、デプロイが完了するまで待ちます (10 分ほどかかる場合があります)
- Web アプリが正常にデプロイされたら、Chat プレイグラウンド ページの右上隅にあるボタンを使って Web アプリを起動します。 アプリの起動には数分かかる場合があります。 プロンプトが表示されたら、アクセス許可要求に同意してください。
-
Web アプリで、次のチャット メッセージを入力します:
Write an advertisement for the new "WonderWipe" cloth that attracts dust particulates and can be used to clean any household surface.
-
応答を確認します。
注:”モデル” を Web アプリにデプロイしましたが、このデプロイにはプレイグラウンドで設定したシステム設定とパラメーターが含まれていません。そのため、応答にはプレイグラウンドで指定した例が反映されない場合があります。** 実際のシナリオでは、アプリケーションにロジックを追加してプロンプトを変更し、生成する応答の種類に応じた適切なコンテキスト データがプロンプトに含まれるようにします。 この種のカスタマイズは、この入門レベルの演習の範囲を超えていますが、プロンプト エンジニアリング手法と Azure OpenAI API については、他の演習や製品ドキュメントで学ぶことができます。
- Web アプリでのモデルの実験が完了したら、ブラウザーの Web アプリ タブを閉じて、Azure AI Foundry ポータルに戻ります。
クリーンアップ
Azure OpenAI リソースでの作業が完了したら、Azure portal (https://portal.azure.com
) でデプロイまたはリソース全体を忘れずに削除します。