😺

Azure OpenAIを使う際のインフラ観点でのポイント

2024/03/30に公開

はじめに

AOAIについてセミナを受講する機会があったため、そこで学んだことを残しておく。

トークン

  • モデルが学習・推論を行うためのデータの最小分割単位。
  • 英語だと1トークンが3~4文字、日本語だと約1.1文字

クォーター制限

  • モデル×リージョン毎にクォーター制限が存在する。GPT3.5であれば、300kのトークンのクォーター制限がある。
  • レートリミットにかかると、1分間の待ちが強制的に発生する。
  • 別のリージョンに作成すれば、クォーター制限としての分散は可能になる。(開発環境は別リージョンなど)
  • ゾーンを考慮しないので、指定したゾーンにデプロイされるとは限らない。

データ保持

  • MicrosoftではAOAIに対して厳しい倫理ハードルを持っているため、プロンプトが30日間保持される。承認されたMS社員のみがレビューを行い、AIが悪用されていないかをチェックできる。
  • オプトアウトによってチェックの省略は可能だが、内部で厳格なチェック体制を持っている必要がある。
    alt text

AOAIでの権限制御で使われるサービス

AOAIへのアクセスにはRBACを使った認証認可が推奨されている。ここではApp Serviceが接続元なのでマネージドIDが推奨される。クライアントがAzureサービス以外の場合は、
alt text

(TIPS)権限制御で使われるサービス

Azure Policyの場合は、VMのプラン制限だったり、デプロイ先のリージョンを制限するときなどのガバナンスを効かせるときに利用される。
RBACはホワイトリスト方式なので、権限を付与しないと何もできない。

alt text

ログ取得について

Azure Open AIのログを有効化しただけでは、プロンプトログは取得できない。API Managementから取得するのがよくあるケースである。
alt text

NW面で選択される方式について

PaaSはみんなで使うことでコストメリットを享受するので、Vnetへの専用デプロイはコストがかかる。例えば、API Managementの仮想ネットワークデプロイはPremiumプランか、SLAのないDeveloperプランしか利用できない。
alt text

API Managementを使った冗長化構成

API Managementは本職の負荷分散装置ではないので、バックエンドに対しての死活監視は存在しない。
プレビューでは、サーキットブレーカーといった、使い過ぎであったり・障害応答(500コード)を返したときに、呼び出しを遮断するロジックが存在する。
alt text
もしくは、Application Insightsなどと連携して、ログベースによるエラー監視という方法も?

AI Searchの共有プライベード

AI SearchがAzure PaaSリソースとプライベードで連携するときの接続方法。
alt text

https://learn.microsoft.com/ja-jp/azure/search/search-indexer-howto-access-private?tabs=portal-create

Discussion