Azure AI コンテナーとは

Azure AI サービスには、Docker コンテナーがいくつか用意されており、これにより、Azure で使用できるものと同じ API をオンプレミスで使用できます。 これらのコンテナーを使用すると、コンプライアンス、セキュリティ、またはその他の運用上の理由でデータの近くで Azure AI サービスを使用することが柔軟に可能になります。 現在、コンテナー サポートは Azure AI サービスのサブセットで利用できます。

コンテナー化とは、アプリケーションまたはサービスとその依存関係や構成をコンテナー イメージとしてパッケージ化するソフトウェア配布のアプローチです。 コンテナー イメージは、ほとんどまたはまったく変更せずに、コンテナー ホストにデプロイできます。 コンテナーは、相互および基になるオペレーティング システムから分離され、仮想マシンよりもフット プリントが小さくなります。 短期間のタスクに対してコンテナーをコンテナー イメージからインスタンス化し、不要になったら削除できます。

機能とメリット

  • イミュータブル インフラストラクチャ: DevOps チームが、一貫性と信頼性のある既知のシステム パラメーターのセットを活用しながら、変更に適応できるようにします。 コンテナーには、予測可能なエコシステム内でピボットして構成の誤差を回避できる柔軟性があります。
  • データの制御: Azure AI サービスによってデータが処理される場所を選択します。 これは、クラウドにはデータを送信できないものの、Azure AI サービスの API にアクセスする必要がある場合に不可欠です。 ハイブリッド環境でデータ、管理、ID、セキュリティの整合性をサポートします。
  • モデルの更新の制御:ソリューションにデプロイされているモデルのバージョン管理と更新を柔軟に行うことができます。
  • 移植可能なアーキテクチャ:Azure、オンプレミス、エッジにデプロイできる移植可能なアプリケーション アーキテクチャを作成できます。 コンテナーは、Azure Kubernetes ServiceAzure Container Instances、または Azure Stack にデプロイされた Kubernetes クラスターに直接デプロイできます。 詳しくは、「Kubernetes を Azure Stack にデプロイする」をご覧ください。
  • 高スループット/低待ち時間: アプリケーションのロジックとデータに物理的に近い場所で Azure AI サービスを実行できるようにすることで、高スループットと低遅延の要件に合わせてスケーリングできる機能を顧客に提供します。 コンテナーでは、1 秒あたりのトランザクション数 (TPS) は制限されません。必要なハードウェア リソースを提供した場合は、コンテナーのスケールアップとスケールアウトの両方を行って需要を処理することができます。
  • スケーラビリティ:コンテナー化とコンテナー オーケストレーション ソフトウェア (Kubernetes など) がますます普及し、スケーラビリティは、技術進歩の最前線にあります。 スケーラブルなクラスター基盤の上に構築されたアプリケーション開発は、高可用性に対応します。

Azure AI サービスのコンテナー

Azure AI コンテナーでは、次の Docker コンテナー セットが提供されます。各コンテナーには、Azure AI サービスのサービスの機能のサブセットが含まれます。 以下の表で説明とイメージの場所を確認できます。

注意

Azure AI Document Intelligence コンテナーの手順とイメージの場所については、Intelligence コンテナーのインストールと実行に関するドキュメントを参照してください。

デシジョン コンテナー

サービス コンテナー 説明 可用性
Anomaly Detector Anomaly Detector (イメージ) Anomaly Detector API では、機械学習を利用することで、時系列データを監視し、その中の異常を検出できます。 一般公開

言語コンテナー

サービス コンテナー 説明 可用性
LUIS LUIS (イメージ) トレーニング済みまたは発行済みの Language Understanding モデル ("LUIS アプリ" と呼ばれます) を Docker コンテナーに読み込みます。ユーザーは、そのコンテナーの API エンドポイントからクエリ予測を利用することができます。 コンテナーからクエリのログを収集し、それらを LUIS ポータルに再度アップロードすることで、アプリの予測精度を高めることができます。 一般提供されています。
このコンテナーは、切断された環境でも実行できます。
言語サービス キー フレーズ抽出 (イメージ) 主なポイントを識別するキー フレーズを抽出します。 たとえば、「食べ物はおいしくて、すばらしいスタッフがいた」というテキストを入力すると、この API は話題の中心として "食べ物" と "すばらしいスタッフ" を返します。 一般提供されています。
このコンテナーは、切断された環境でも実行できます。
言語サービス テキスト言語検出 (イメージ) 最大 120 の言語に対して、入力テキストが書かれている言語を検出し、要求で送信されたドキュメントごとに 1 つの言語コードを報告します。 言語コードは、評価値の強度を示すスコアと組みになります。 一般提供されています。
このコンテナーは、切断された環境でも実行できます。
言語サービス 感情分析 (イメージ) 肯定的または否定的な感情の手がかりを探して未加工のテキストを分析します。 このバージョンの感情分析からは、各ドキュメントとその中の文のセンチメント ラベル (たとえば、"肯定的"、"否定的") が返されます。 一般提供されています。
このコンテナーは、切断された環境でも実行できます。
言語サービス Text Analytics for Health (画像) 構造化されていない臨床テキストから医療情報を抽出してラベル付けします。 一般公開
言語サービス 固有表現認識 (画像) テキストから固有表現を抽出する 一般提供されています。
このコンテナーは、切断された環境でも実行できます。
言語サービス カスタム固有表現認識 (イメージ) データを使用して作成するカスタム モデルを使用して、テキストから固有表現を抽出します。 一般公開
Language サービス 概要作成 (画像) さまざまなソースからテキストの概要を作成します。 パブリック プレビュー。
このコンテナーは、切断された環境でも実行できます。
Translator Translator (画像) 複数の言語と方言にテキストを翻訳できます。 一般提供されています。 限定的 - アクセス権を要求してください。
このコンテナーは、切断された環境でも実行できます。

音声コンテナー

サービス コンテナー 説明 可用性
Speech Service API 音声テキスト変換 (イメージ) 連続するリアルタイムの音声をテキストに書き起こします。 一般提供されています。
このコンテナーは、切断された環境でも実行できます。
Speech Service API カスタム音声テキスト変換 (イメージ) カスタム モデルを使用して、連続するリアルタイムの音声をテキストに書き起こします。 一般公開
このコンテナーは、切断された環境でも実行できます。
Speech Service API ニューラル テキスト読み上げ (イメージ) ディープ ニューラル ネットワーク テクノロジを使用してテキストを自然な響きの音声に変換することで、合成音声がより自然なものになります。 一般提供されています。
このコンテナーは、切断された環境でも実行できます。
Speech Service API Speech 言語識別 (イメージ) 音声の言語を特定します。 プレビュー

ビジョン コンテナー

サービス コンテナー 説明 可用性
Azure AI Vision Read OCR (イメージ) Read OCR コンテナーを使用すると、JPEG、PNG、BMP、PDF、TIFF の各ファイル形式をサポートするイメージとドキュメントから、印刷されたテキストおよび手書きのテキストを抽出できます。 詳細については、Read API のドキュメントに関する記事を参照してください。 一般提供。
このコンテナーは、切断された環境でも実行できます。
空間分析 空間分析 (イメージ) リアルタイム ストリーミング ビデオを分析して、ユーザーとその動きの間の空間関係、および物理的な環境内のオブジェクトの相互作用を把握します。 プレビュー

さらに、一部のコンテナーは、Azure AI サービスの マルチサービス リソース オファリング内でサポートされています。 単一の Azure AI サービスの オールインワン リソースを作成し、次のサービスに対してサポートされているサービス全体で同じ課金キーを使用できます。

  • Azure AI Vision
  • LUIS
  • 言語サービス

前提条件

Azure AI コンテナーを使用する前に、次の前提条件を満たす必要があります。

Docker エンジン: Docker エンジンをローカルにインストールしている必要があります。 Docker には、macOSLinuxWindows 上で Docker 環境を構成するパッケージが用意されています。 Windows では、Linux コンテナーをサポートするように Docker を構成する必要があります。 Docker コンテナーは、Azure Kubernetes Service または Azure Container Instances に直接デプロイできます。

コンテナーが Azure に接続して課金データを送信できるように、Docker を構成する必要があります。

Microsoft Container Registry と Docker に関する知識: レジストリ、リポジトリ、コンテナー、コンテナー イメージなどの Microsoft Container Registry と Docker の両方の概念の基本的な理解に加えて、基本的な docker コマンドの知識が必要です。

Docker やコンテナーの基礎に関する入門情報については、「Docker overview」(Docker の概要) を参照してください。

個々のコンテナーには、サーバーやメモリ割り当ての要件など、独自の要件もある場合があります。

Azure AI サービス コンテナーのセキュリティ

アプリケーションを開発するときは常にセキュリティを重視する必要があります。 セキュリティの重要性は成功の指標です。 Azure AI コンテナーを含むソフトウェア ソリューションを設計する場合は、制限と使用できる機能を理解しておくことが重要です。 ネットワーク セキュリティの詳細については、「Azure AI サービスの仮想ネットワークを構成する」を参照してください。

重要

既定では、Azure AI サービス コンテナー API に "セキュリティはありません"。 この理由は、ほとんどの場合、ネットワーク ブリッジによって外部から保護されるポッドの一部としてコンテナーが実行されるためです。 ただし、ユーザーは、クラウドベースの Azure AI サービスにアクセスするときに使用される認証方法に近似している独自の認証インフラストラクチャを構築できます。

次の図は、セキュリティで保護されていない既定のアプローチを示しています。

Container security

別の "セキュリティで保護された" アプローチの例として、Azure AI コンテナーのコンシューマーでは、コンテナー エンドポイントを非公開に保ちながら、前面のコンポーネントを使用してコンテナーを補強できます。 イングレス ゲートウェイとして Istio を使用するシナリオについて考えてみましょう。 Istio では、HTTPS/TLS およびクライアント証明書の認証がサポートされます。 このシナリオでは、Istio のフロントエンドでコンテナー アクセスが公開され、事前に Istio で承認されているクライアント証明書が提示されています。

Nginx は、同じカテゴリにあるもう 1 つの一般的な選択肢です。 Istio と Nginx はどちらもサービス メッシュとして機能し、負荷分散、ルーティング、レート制御などの追加機能が提供されます。

コンテナー ネットワーク

Azure AI コンテナーは、課金のために使用状況測定情報を送信する必要があります。 Azure AI コンテナーが依存しているさまざまなネットワーク チャネルを許可リストに載せないと、コンテナーは動作しなくなります。

Azure AI サービスのドメインとポートを許可リストに載せる

ポート 443 と次のドメインをホストの許可リストに載せる必要があります。

  • *.cognitive.microsoft.com
  • *.cognitiveservices.azure.com

ディープ パケット インスペクションを無効にする

ディープ パケット インスペクション (DPI) は、コンピューター ネットワーク経由で送信されるデータを詳細に検査するデータ処理の一種であり、通常は、状況に応じてブロック、再ルーティング、またはログ記録を行うことによってアクションを実行します。

Azure AI コンテナーによって Microsoft サーバーに作成される、セキュリティで保護されたチャネルでは DPI を無効にします。 そうしないと、コンテナーは正しく機能しません。

開発者向けサンプル

開発者向けサンプルは、GitHub リポジトリから入手できます。

次のステップ

Azure AI サービスで使用できるコンテナー レシピについて学習します。

Azure AI サービスのコンテナーによって提供される機能をインストールして確認します。