Azure Cognitive Services コンテナーとは

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

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

機能とメリット

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

Azure Cognitive Services でのコンテナー

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

注意

適用される AI サービスフォームレコグナイザーコンテナーの命令とイメージの場所については、「フォームレコグナイザーコンテナーのインストールと実行」を参照してください。

デシジョン コンテナー

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

言語コンテナー

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

音声コンテナー

Note

Speech コンテナーを使用するには、オンライン要求フォームに入力する必要があります。

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

ビジョン コンテナー

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

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

  • Computer Vision
  • LUIS
  • 言語サービス

前提条件

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

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 overview」(Docker の概要) を参照してください。

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

Azure Cognitive Services コンテナーのセキュリティ

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

重要

既定では、Cognitive Services コンテナー API に "セキュリティはありません"。 この理由は、ほとんどの場合、ネットワーク ブリッジによって外部から保護されるポッドの一部としてコンテナーが実行されるためです。 ただし、クラウドベースの Cognitive Services にアクセスするときに使用する認証と同じように動作する認証を有効にすることができます。

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

コンテナーのセキュリティ

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

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

コンテナー ネットワーク

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

Cognitive Services のドメインとポートの一覧表示を許可する

ホストは、ポート 443 と次のドメインの一覧表示を許可する必要があります。

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

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

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

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

開発者向けサンプル

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

次のステップ

Cognitive Services で使用できるコンテナー レシピについて学習します。

Azure Cognitive Services のコンテナーによって提供される機能をインストールして試してください。