Azure OpenAI Service を検証目的で使い始めるまでにやったことまとめ

Azure OpenAI Service を利用するための申請内容やチーム内の利用ルールを検討するために調べたことや対応したことをまとめました。作成した利用ルールの説明会の内容についても記載します。
2023.04.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

以前に Azure OpanAI Service を検証目的で利用するための準備をする機会があったため、利用申請前に確認したことや利用のためにルール化したことを本ブログにまとめたいと思います。また、実施した利用ルールの説明会の内容についても記載します。


前提条件

導入・導入の前提条件は下記でした。

  • Azure AD は社内で導入済み
  • Azure サブスクリプションは社内で払い出されたものを利用
  • チームの複数人が検証用途で Azure OpenAI Service を利用

Azure OpenAI を利用するサブスクリプションと Azure AD ユーザーとの信頼関係が既にある状態です。

もし組織内に Azure 契約がない場合は、法人契約の Azure を準備するところから必要となります。Azure の契約形態は MOSP や CSP (Cloud Solution Provider)、オープンライセンスの購入、SCE/EA 契約など様々あるため、その選定から必要となります。今回のブログではこの部分は説明しません。


利用申請と利用ルール化の概要

Azure OpenAI を検証(実験的アクセス)用途で利用するための主な検討・確認事項には次のような内容がありました。これらについて以降の章で説明します。

  • Azure OpenAI Service の利用申請
    • 申請内容の事前確認
    • 追加申請内容の把握
    • 社内の AI 活用ガイドラインの確認
    • 申請作業
  • Azure OpenAI Service の利用ルール作成
    • 利用ルールを公開する媒体の決定
    • 利用前に確認すべきドキュメント
    • 利用申請状況の共有
    • 利用するサブスクリプション
    • 利用するリージョン
    • リソースグループ作成方針
    • ロールベースのアクセス制御方針
    • Azure OpenAI に送信してよいデータ
    • 通信経路の検討
    • 価格の確認
    • クォータと制限の確認
    • SLA の確認
    • サポートプランの決定
  • 利用ルール説明会の開催
    • 利用ルールの説明とデモの実施
    • OpenAI との違いを知るための参考資料
    • Azure OpenAI の学習リソース


上記は検証用途で使える環境を用意することを目的としていましたが、本番利用の場合は各項目の検討内容の見直しや追加の検討が発生すると思います。


Azure OpenAI Service の利用申請

Azure OpenAI の利用には申請が必要となり、申請したサブスクリプションで利用できるようになります。

申請内容の事前確認

申請前に確認したことを記載します。

申請が必要な理由と申請の登録フォームは次のドキュメントに記載があるため、まずはこのドキュメントと申請の登録フォームの内容を確認しました。

申請の登録フォームです。

申請前に決めておくことと確認しておくべきドキュメントが分かります。


事前に決めておくこと

Azure OpenAI の申請前に整理しておくことは次の内容です。

  • 申請するサブスクリプション
  • 申請するユースケース
  • 申請するリージョン

申請はサブスクリプション単位です。

Azure OpenAI を利用するユースケースを申請時に指定する必要があります。

次のページを参考に実現したいことに合うユースケースを精査しました。ユースケースには、会話型エージェントの作成や社内ドキュメントの検索などがあります。複数のユースケースを同時に申請できます。

利用するリージョンも申請する必要があります。

2023.4.15 時点ではリージョンは下記 3 つです。データを送信することになるため、社内ポリシーと照らし合わせて利用リージョンを選択するなど考慮が必要です。複数同時に申請できます。

  • 米国東部(East US)
  • 米国中南部(South Central US)
  • 西ヨーロッパ(West Europe)

引用元:Azure OpenAI Service とは - Azure Cognitive Services | Microsoft Learn

考慮点として、リージョンによって利用できるモデルが異なるため、次のドキュメントで確認しました。

リージョン毎に利用できる Azure OpenAI Service のリソースが 2 つまでというクォータがある点も考慮が必要かもしれません。


事前に確認するドキュメント

申請の登録フォームを確認すると分かるのですが、申請する前に確認しておくドキュメントがあります。いくつかの例を紹介します。全ては記載していいないため、必ずご自身でご確認ください。

Azure OpenAI Service のドキュメントのうち「責任ある AI(Responsible AI)」は特に確認しました。

「責任ある AI」には他に「Limited access to Azure OpenAI Service」もありますが、利用申請の事前確認のところで説明しているので、ここでは割愛します。


Use cases for Azure OpenAI

上述した Azure OpenAI Service のユースケースの他に、制限事項、システム性能、本番アプリケーションのベースライン要件などの記載があります。また、関連する Microsoft の原則として「Microsoft の責任ある AI の基本原則 」があります。


Code of Conduct for the Azure OpenAI Service

直訳すると行動規範です。Azure OpenAI で行ってはいけないことや作成してはいけないコンテンツの説明があります。


Data, privacy, and security for Azure OpenAI Service

データやプライバシー、セキュリティに関する記載です。Azure OpenAI でデータをどのように処理しているかかの説明や不適切な入出力を防ぐコンテンツフィルター機能の説明があります。

データの扱いは社内のポリシーとの照らし合わせも必要となります。

例えば、プロンプトと応答のデータは 30 日間保管され、障害時のデバッグと不正使用や誤用の調査(レビュー)などを目的として Microsoft 担当者がプロンプトと応答のデータにアクセスする場合があることが記載されています。また、この調査をオプトアウトできることの説明もあります。

引用元:Data, privacy, and security for Azure OpenAI Service - Azure Cognitive Services | Microsoft Learn


Azure 全般のドキュメント

Azure の法的情報やプレビューに関する補足利用規約などがあります。これらは Azure 全般の内容です。


追加申請内容の把握

追加で申請できる内容を事前に確認しました。

全てを網羅できていないと思われますが、下記の申請があったため、初回申請前から申請するかの検討を開始していました。


追加のユースケース申請

ユースケースを追加することができます。始めにすべてのユースケースを申請しなければいけないわけではありません。ユースケース申請の登録フォームは下記です。

登録フォームは、初回登録と同様に次のドキュメントに記載があります。


オプトアウト申請

上述した通り、障害時のデバッグと不正使用や誤用の調査(レビュー)などを目的として Microsoft 担当者がプロンプトと応答のデータにアクセスする場合があり、そのオプトアウト申請が可能です。また、コンテンツフィルター機能の変更申請も可能です。

オプトアウト申請の登録フォームは、次のドキュメントに記載があります。


プレビュー利用申請

GPT - 4 (プレビュー) のウェイトリストへの参加申請が可能です。

登録フォームへのリンクは、モデルの説明ページにあります。


クォータ緩和申請

2023.4.18 Azure OpneAI リソースの緩和申請を追記しました

クォータの緩和制限申請は下記ページです。 モデルごとの 1 分あたりの要求数やモデルごとの 1 分あたりのトークン数などの制限に関する申請です。

Azure OpenAI リソースの制限に関する申請です。

前者の申請の登録フォームへのリンクは、クォータと制限の説明ページにあります。後者の申請の掲載ドキュメントは見つけることができませんでしたが社内で共有していたきました。


社内ガイドラインの確認

これまで記載した申請では、社内の AI 活用ガイドラインとの整合性を確認しつつ申請内容を決定しました。

クラスメソッド社内の AI 活用ガイドラインはブログでも公開されています。


申請作業

登録フォームから申請するだけです。

申請〜回答に必要な日数はドキュメント上に記載が見当たらなかったので、承認までの日数の記載は控えます。


Azure OpenAI Service の利用ルール作成

Azure OpenAI をチームで使うにあたり決めたことを記載します。いくつかは申請前から検討・決定していました。検討内容には大小ありますが、あまり粒度は気にせずに記載しています。これらの検討も社内の AI 活用ガイドライン、及び、それを詳細化した社内ルールと照らし合わせて検討していきました。

  • 利用ルールを公開する媒体の決定
  • 利用前に確認すべきドキュメント
  • 利用申請状況の共有
  • 利用するサブスクリプション
  • 利用するリージョン
  • リソースグループ作成方針
  • ロールベースのアクセス制御方針
  • Azure OpenAI に送信してよいデータ
  • 通信経路の検討
  • 価格の確認
  • クォータと制限の確認
  • SLA の確認
  • サポートプランの決定

今回はサブスクリプションを社内で払い出された状態がスタートなので、利用料の支払いなどは対象外としています。契約から検討開始する場合は契約にもよりますが、請求書払い or クレジットカード払いの決定や社内の予算管理、費用振り替えなどの整理も必要となります。


利用ルールを公開する媒体の決定

利用ルールを公開する媒体(社内 Wiki、プレゼンテーションツールなど)を決定します。

クラスメソッドでは社内 Wiki として Notion が利用されており、浸透していることから Notion を採用しました。

Notion には編集をロックする機能やコメント機能があるのが便利です。利用ルールの改善点などをコメントしてもらえると対応しやすいです。また、Mermaid 記法を利用できることも個人的に気に入っています。業務フローは Mermaid で記載しています。


利用前に確認すべきドキュメント

申請時に確認したドキュメント類(Azure OpenAI や Azure に関するもの)は申請者だけではなく、利用者全員が知っておくべき情報です。

そのため、Azure OpenAI の利用前に確認するドキュメントとして、それらを読むように記載しました。既に Azure を活用していメンバーは Azure 全般やプレビューに関する規約は知っている可能性はありますが、Azure OpenAI の「責任ある AI」の内容は特に重要だと思います。

また、関連する社内のガイドラインへのリンクも掲載しました。


利用申請状況の共有

Azure OpenAI の申請者は 1 名ですが、利用者が複数いる場合は申請状況を共有する必要があります。申請していないユースケースでの利用防止や、追加の申請を実施するか相談しやすいと思ったためです。

申請したサブスクリプション/リージョン/ユースケース、追加申請、プレビュー利用、オプトアウトの申請状況を一覧化して常に共有するようにしました。

下記のイメージです。追加申請した場合は列を追加します。


申請サブスクリプション

サブスクリプション名 サブスクリプション ID 2023.mm.dd (初回)
example-sub-01 xxx
example-sub-02 xxx -

申請リージョン

リージョン名 日本語名 2023.mm.dd (初回)
East US 米国東部 ◯ / -
South Central US 米国中南部 ◯ / -
West Europe 西ヨーロッパ ◯ / -

申請ユースケース

各ユースケースの詳細は こちら

サービス ユースケース 2023.mm.dd (初回)
Text and code models Chat and conversation interaction ◯ / -
Chat and conversation creation ◯ / -
Code generation or transformation scenarios ◯ / -
Journalistic content ◯ / -
Most Valuable Professional (MVP) or Regional Director (RD) Demo Use ◯ / -
Reason over structured and unstructured data ◯ / -
Search ◯ / -
Summarization ◯ / -
Writing assistance on specific topics ◯ / -
DALL-E 2 models Accessibility Features ◯ / -
Art and Design ◯ / -
Communication ◯ / -
Education ◯ / -
Entertainment ◯ / -
Journalistic content ◯ / -
Marketing ◯ / -
Most Valuable Professional (MVP) or Regional Director (RD) Demo Use ◯ / -
Prototyping and conceptual development ◯ / -

プレビュー機能

プレビュー機能名 2023.mm.dd (初回)
GPT - 4 - (初回不可)

オプトアウト申請

オプトアウト項目 2023.mm.dd (初回)
Microsoft 担当者によるレビューと最大 30 日のプロンプト・回答の保管 - (初回不可)
コンテンツフィルター - (初回不可)


利用するサブスクリプション

申請したサブスクリプションを指定するようルール化します。


利用するリージョン

申請したリージョンを指定するようルール化します。


リソースグループ作成方針

リソースグループの分割方針を決めます。

チーム内で共用する Azure OpenAI リソースを格納するリソースグループを作成しました。また、一時的な検証などで Azure OpneAI リソースの専有が必要な場合はリソースグループを分けて管理することにしました。この際、Azure OpenAI リソースのクォータが 1 リージョン 2 リソースまでであることに留意が必要です。

Azure OpenAI リソースはリソースグループ間の移動ができたので、将来見直したい場合でも対応できそうです。


ロールベースのアクセス制御方針

利用者に割り当てるロールを検討します。Azure OpenAI 向けの組み込みロールもあるため、利用者の作業内容に応じて検討します。

検証用途であったことや他の Azure サービスからの接続・連携(VNet からのプライベートエンドポイント経由のアクセスなど)も確認したい状況であったことから、始めはサブスクリプションに対する「共同作成者」ロールを割り当てました。今後もフェーズに応じて継続検討です。


参考として、2023.4.15 時点では下表の組み込みロールがあります。

ロールの名前 説明
Cognitive Services OpenAI Contributor Full access including the ability to fine-tune, deploy and generate text
Cognitive Services OpenAI User Ability to view files, models, deployments. Readers can't make any changes They can inference

組み込みロールの JSON は下記です。折りたたんでいます。

Cognitive Services OpenAI Contributor
{
    "id": "/providers/Microsoft.Authorization/roleDefinitions/a001fd3d-188f-4b5d-821b-7da978bf7442",
    "properties": {
        "roleName": "Cognitive Services OpenAI Contributor",
        "description": "Full access including the ability to fine-tune, deploy and generate text",
        "assignableScopes": [
            "/"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/*/read",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*"
                ],
                "notDataActions": []
            }
        ]
    }
}
Cognitive Services OpenAI User
{
    "id": "/providers/Microsoft.Authorization/roleDefinitions/5e0bd9bd-7b93-4f28-af87-19fc36ad61bd",
    "properties": {
        "roleName": "Cognitive Services OpenAI User",
        "description": "Ability to view files, models, deployments. Readers can't make any changes They can inference",
        "assignableScopes": [
            "/"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/*/read",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/generate/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/embeddings/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/write"
                ],
                "notDataActions": []
            }
        ]
    }
}


Azure OpenAI に送信してよいデータ

Azure OpenAI に送信してよいデータを検討します。特に個人情報やお客様情報、経営に関する情報などの重要なデータを利用する場合は社内ポリシーを策定している部署や法務などと相談が必要になると思います。

今回は検証用途だったため、業務に関係ないデータ、もしくは、公開情報に限って利用してよいことを始めのルールとしました。今後もフェーズに応じて継続検討です。


この検討時に参考になるのは次の Microsoft ドキュメントです。Azure OpenAI ではモデルの再トレーニングに顧客データは使用されないことを確認しました(必ずご自身で確認をお願いします)。

FAQ にも記載があります。

モデルのトレーニングには自社のデータが使用されますか?

Azure OpenAI では、モデルの再トレーニングに顧客データは使用されません。 詳細については、Azure OpenAI のデータ、プライバシー、セキュリティのガイド を参照してください。

引用元:モデルのトレーニングには自社のデータが使用されますか?


通信経路の検討

Azure OpenAI はインターネット経由だけでなく、VNet からプライベートエンドポイント経由でアクセスできます。また、ExpressRoute を利用してオンプレミスから接続もできます。そのため、どの経路のアクセスを許容するか検討します。

「Azure OpenAI に送信して良いデータ」の検討結果を考慮してインターネット経由を許容しました。今後もフェーズに応じて継続検討です。

アクセス経路については次のドキュメントに詳細な記載があります。


価格の確認

Azure OpenAI の価格を確認します。言語モデルはトークンあたり、画像モデルは画像あたりの価格です。微調整されたモデルはトークンとは別にコンピューティング時間あたりのトレーニングやホスティングの時間あたりの課金があります。

チームメンバーに共有しました。あまり料金を気にせずガンガン検証する方針です。微調整されたモデルを利用するときは事前に一言チーム内や課金管理者に声掛けしてもいいかな、と本ブログを書きながら思いました。


クォータと制限の確認

他の Azure サービス同様に Azure OpenAI にもクォータがあります。

利用に影響がありそうなものをチームメンバーに共有しました。

例えば、1 リージョン 2 リソースまでの制限があります。3 リソース目を作成しようとすると下図のように注意されます。

また、「同じモデルを複数のデプロイにデプロイする機能 - 禁止」の制限が複数の Azure OpenAI リソースに跨いで適用されるのか気になり確認したところ、1 つのリソース内の制限であり、2 つのリソースで同じモデルをそれぞれデプロイできました。


SLA の確認

Azure OpenAI は Azure Cognitive Services であり、Azure Cognitive Services として 99.9% の SLA が定められています。

参考情報としてチームメンバーに共有しました。


SLA の詳細は下記のサイトから資料をダウンロードして確認できます。日本語版より英語版の方が公開は早いようです。

また、API 応答時間については 2023.4.1 時点で SLA は定められていないようです。

Azure OpenAI での API 応答の SLA はどのようになっていますか?

現時点では、API 応答時間サービス レベル アグリーメント (SLA) は定義されていません。 Azure OpenAI Service の全体的な SLA は、他の Azure Cognitive Services の場合と同じです。 詳細については、「Online Services のサービス レベル アグリーメント (SLA) 」ページの Cognitive Services セクションを参照してください。

引用元:Azure OpenAI での API 応答の SLA はどのようになっていますか?


サポートプランの決定

サポートプランを決定します。組織内で統一したプランになっている場合もあると思います。

今回は検証用途なので、Developer プランとしました。


利用ルール説明会の開催

Azure OpenAI 利用ルールの説明会を実施しました。

大まかな流れは下記の通りで 30 分の説明会 + 質問タイムとしました。

  • Azure OpenAI 利用ルールの説明とデモの実施
    • Azure OpenAI のデモ
    • 利用ルールの説明
    • 「責任ある AI」ドキュメントの説明
      • 申請したユースケースのみの利用となること、申請状況一覧
      • データの取り扱いやMicrosoft 担当者によるレビュー、コンテンツフィルターの説明、など
  • OpenAI との違いを知るための参考資料の共有
  • Azure OpenAI の学習リソースの共有


利用ルールの説明とデモの実施

デモでは、Azure OpenAI Studio において、パラメータの調整やトークンの確認ができること、推奨モデルが提示されることなどを説明しました。

プロンプトに対するサンプルコードの出力ができることも説明しました。

また、Azure Cloud Shell から API キーを利用してcurlで接続するデモを実施しました。promptは Microsoft Learn の例示と同じものです。

curl https://<RESOURCE_NAME>.openai.azure.com/openai/deployments/<DEPLOY_NAME>/completions?api-version=2022-12-01\
  -H "Content-Type: application/json" \
  -H "api-key: <API_KEY>" \
  -d "{
  \"prompt\": \"Your favorite Shakespeare is\",
  \"max_tokens\": 5
}"


デモの後は、利用ルールの説明と「責任ある AI」ドキュメントの説明を実施しました。これまで本ブログに記載してきた内容(申請したユースケースのみの利用となること、申請内容一覧、データの取り扱い、Microsoft 担当者によるレビュー、コンテンツフィルターの説明など)です。

最後に、参考情報として後述する OpneAI との違いや学習リソースを紹介しました。


OpenAI との違いを知るための参考資料

利用ルールの検討にあたり、OpenAI との違いが気になるときがあります。その際は下記の記事にまとまっていたのでとても参考になりました。Azure OpenAI にはエンタープライズ向けにいくつかのセキュリティ対策が盛り込まれています。


API に特化した比較は次の記事が勉強になりました。

また、OpenAI と Azure OpenAI に互換性があることは FAQ にも記載があります。

Azure OpenAI の機能を OpenAI と比較するとどうですか?

Azure OpenAI Service では、OpenAI GPT-3、Codex、DALL-E モデルを使用した高度な言語 AI を顧客に提供し、Azure のセキュリティとエンタープライズの約束を実現します。 Azure OpenAI は OpenAI と共に API を共同開発し、互換性を確保し、一方から他方へのスムーズな移行を保証します。

Azure OpenAI を使用すると、顧客は OpenAI と同じモデルを実行しながら、Microsoft Azure のセキュリティ機能を使用できます。

引用元:Azure OpenAI の機能を OpenAI と比較するとどうですか?


Azure OpenAI の学習リソース

Microsoft 公式の Learn が個人的にためになったので、下記のトレーニングを共有しました。


説明会に関する内容は以上です。

さいごに

以前に Azure OpenAI Service を検証目的で利用するための準備をする機会があったためアウトプットしました。OpenAI 関連は次から次に新しい情報が出てくるため、今回記載した内容の更新も頻繁にあるものと思われるため、常に公式ドキュメントを確認してから進めていくことが重要と思います。

以上、このブログがどなたかのご参考になれば幸いです。


参考資料