MS_AzureOpenAIService - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

Azure OpenAI Service

概要

  • Azure OpenAI Service は、Microsoft Azureの一部として提供される
    サービスで、OpenAI の高度な人工知能(AI)モデルを
    Azureプラットフォーム上で利用可能にするものです。

  • 具体的には、GPT-3 やその後継モデルなどの自然言語処理(NLP)モデルを利用して、
    テキスト生成、言語翻訳、質問応答、要約、感情分析など、
    多様なアプリケーションを開発できます。

  • 主な特徴と利点は以下の通りです:

    • 高性能な AI モデル:
      GPT-3 やその後のバージョンなど、OpenAI の最先端の AI モデルを利用できます。
      これにより、自然な言語生成や高度な理解力を持つアプリケーションを構築可能です。

    • スケーラビリティ:
      Azure のクラウドインフラストラクチャを利用することで、
      大規模なデータ処理や高トラフィックに対応できます。
      必要に応じてリソースを拡張・縮小することが容易です。

    • セキュリティとコンプライアンス:
      Microsoft Azureのセキュリティフレームワークを活用し、
      データのプライバシーとセキュリティを確保できます。
      多くの業界標準や規制にも対応しています。

    • 統合とカスタマイズ:

      • Azure の他のサービス(例えば、
        Azure Cognitive Services
        Azure Machine Learning)と
        簡単に統合できるため、包括的な AI ソリューションを構築しやすくなっています。
      • さらに、モデルのカスタマイズやトレーニングもサポートされており、
        特定のビジネスニーズに合わせた調整が可能です。
      • ※ 法人利用において、特に重要な点に、リージョンの指定があり、
        コレをサポートしている(グローバル標準デプロイでない、
        標準デプロイでサポートされているモデルを選択する)。
    • API ベースのアクセス:
      RESTful API を通じて AI モデルにアクセスできるため、
      さまざまなアプリケーションやプラットフォームから簡単に利用できます。

  • Azure OpenAI Service を利用することで、企業は高度な AI 機能を迅速に導入し、
    業務効率の向上、カスタマーエクスペリエンスの改善、
    新しいビジネスモデルの創出などを実現できます。

補足(データが学習に使われない点が本質): 「セキュリティとコンプライアンス」
として挙げられている内容のうち、法人利用で最も重視されるのは
入力したプロンプトや出力が OpenAI / Microsoft のモデル学習に
使用されない
という契約上の保証である。
加えて、

  • リージョンの固定(本文の「※」の項目。データの保存先を国内に留める)
  • Private Endpoint / VNET 統合によるネットワーク的な閉域化
    Azure Private Linkを参照)
  • コンテンツ フィルタと不正使用監視のオプトアウト申請

といった点が、パブリックの OpenAI API との実務上の差になる。

詳細

実際に構築してみる。

Azure CLI 利用手順で構築

移行メモ(未記述): Azure CLIによる構築手順は、
元ページでは見出し(「...」が 2 つ)のみで本文が書かれていない。
原文のまま残す。
参考までに、CLI では az cognitiveservices account create
--kind OpenAI)でリソースを作成し、
az cognitiveservices account deployment create でモデルをデプロイする。

MS のポータル利用手順で構築

  • ポータルで Azure OpenAI を検索
  • Azure OpenAI の作成ボタンを押下する。

移行メモ(誤字): 元ページの「AzureOpneAI」は
「Azure OpenAI」の誤りと解して修正した(2 箇所)。

リソースの作成

  • 基本情報としてリソース作成に関する入力欄に入力を行い [次へ]
  • サブスクリプション、リソース グループ、リージョン、名前、価格レベル

ネットワーク セキュリティの構成

必要に応じて、後で構成するため、[次へ]

構成確認+リソース作成

  • [次へ] → [確認と送信] → [作成]
  • [デプロイが完了しました](この時点でデプロイはまだされていない)
  • [リソースに移動] → [Azure AI Foundry ポータルに移動]
  • (この状態で[Azure OpenAI]というリソースができている状態)

補足(「デプロイ」が 2 つの意味で出てくる): この手順が
分かりにくいのは、「デプロイ」という語が 2 つの意味で使われているためである。

意味
[デプロイが完了しました] ARM のリソース デプロイ(Azure リソースが作られた)
下記「モデルをデプロイ」 モデル デプロイ(そのリソース上に推論エンドポイントを立てる)

前者が終わっても後者は未実施であり、
元ページの「(この時点でデプロイはまだされていない)」という注記は
この 2 つ目を指している。

モデルをデプロイ

Azure AI Foundry ポータルで、使用可能ないくつかのモデルから選択してデプロイする。

  • [Azure OpenAI]リソースの左メニューの[共有リソース]から[デプロイ]を選択する。

    • とりま、モデル[gpt-4o]を種類[グローバル標準]でデプロイする

      • デプロイ名は既定値から要変更、また、種類[リージョン]選ぶと
        意味不なクォータ画面に飛ぶ。
      • [グローバル標準]ではリソースの場所は自動的に決まるが、
        選択したモデルにより[Azure OpenAI]と同じリージョンか
        別のリージョンかが異なる。
    • [Azure OpenAI]と同じリージョンの場合、[Azure OpenAI]リソース内に作成される。
      別のリージョンの場合、[AI Foundry]という別のリソースができて、
      その中にデプロイされる。

    • [Azure OpenAI]リソースの[共有リソース]や
      [AI Foundry]リソースの[モデル + エンドポイント]から、
      作成したモデルに遷移しプレイグラウンドに移動する。

      • [チャット プレイグラウンド]で、チャットがテストでき、
      • [コードの表示]を押下すると、
        Python による WebAPI テストコードが表示されることを確認する。
      • [キー認証]タブに遷移すると、API キーがコピーでき、
        コードもソレに対応したものになる。
      • from openai import AzureOpenAI の pip は、
        pip install openai」で OK

補足(デプロイ種類の違い): [グローバル標準]と[標準(リージョン)]の
違いは、推論がどこで実行されるかである。

種類 推論の実行場所 特徴
グローバル標準 Microsoft が世界中から選ぶ クォータが潤沢、新モデルが早く来る
標準(データゾーン / リージョン) 指定した範囲内 データ所在地を統制できる。クォータは厳しい

概要で触れられている「法人利用でリージョンの指定が重要」というのは
この後者を選ぶ話で、
元ページが「意味不なクォータ画面に飛ぶ」と書いているのは、
リージョン指定にすると そのリージョンの TPM(Tokens Per Minute)
クォータが足りない
ケースが多いためである。

WebAPI の動作確認

  • 上記で取得したコードに API キーを組込み
    コチラ」の
    Python 仮想環境を使用して実行すると良い。
  • Jupyter 環境を作るのが面倒だったんで、nano で x.py ファイルに
    上記のテストコードを書き込んで、「python x.py」で実行して動作確認できた。

補足(API キーよりマネージド ID): 動作確認は API キーで良いが、
実運用では Microsoft Entra ID のマネージド IDを使い、
Cognitive Services OpenAI User ロールを割り当てるのが推奨である
(キーをコードや環境変数に置かずに済む)。
Python では DefaultAzureCredential
AzureOpenAI(azure_ad_token_provider=...) に渡す形になる。

埋込モデルをデプロイ

  • 上記「モデルをデプロイ」の手順と同じ。
  • コチラは、基本的に同一のリソース内に作成される。
    • [Azure OpenAI]リソースの場合、[Azure OpenAI]リソース内(同一リージョン)
    • [AI Foundry]リソースの場合、[AI Foundry]リソース内(同一リージョン)

補足(埋込モデルの用途): 埋込(embedding)モデルは
テキストをベクトルに変換するもので、
**RAG(検索拡張生成)**の検索側で使う。
Azure では Azure AI Search
ベクトル検索と組み合わせる構成が標準的である
Azure AI 資格(AI-900)
「RAG」の節も参照)。

参考

構築

github.com

開発基盤部会 Wiki

テキスト生成系(Transformer 系)
テキスト生成系(Transformer系)

本 Wiki 内


Tags: インフラストラクチャ, クラウド, BI/AI, Azure

⚠️ **GitHub.com Fallback** ⚠️