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 のサービスの機能のサブセットが含まれます。 以下の表で説明とイメージの場所を確認できます。 コンテナー イメージの一覧も提供されています。

デシジョン コンテナー

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

言語コンテナー

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

音声コンテナー

注意

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

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

ビジョン コンテナー

警告

2020 年 6 月 11 日に、Microsoft は、人権に基づく厳格な法令が制定されない限り、米国内の警察に顔認識テクノロジを販売しないことを発表しました。 このため、顧客は、米国内の警察である場合、または警察による顔認識機能および Azure サービスに含まれる機能 (Face や Video Indexer など) の使用を許可する場合、これらの機能を使用できません。

サービス コンテナー 説明 可用性
Computer Vision Read OCR (イメージ) Read OCR コンテナーを使用すると、JPEG、PNG、BMP、PDF、TIFF の各ファイル形式をサポートするイメージとドキュメントから、印刷されたテキストおよび手書きのテキストを抽出できます。 詳細については、Read API のドキュメントに関する記事を参照してください。 限定的なプレビュー。 アクセスを要求してください。
空間分析 空間分析 (イメージ) リアルタイム ストリーミング ビデオを分析して、ユーザーとその動きの間の空間関係、および物理的な環境内のオブジェクトの相互作用を把握します。 限定的なプレビュー。 アクセスを要求してください。
Face Face Face には、画像中の人の顔を検出し、顔のパーツ (鼻や目など)、性別、年齢のほか、マシンが予測するその他の顔の特徴などの属性を識別します。 検出に加えて、Face では、同じ画像または異なる画像中の 2 つの顏が同じかどうかを信頼スコアを使って確認したり、データベースと顏を比較して、似ている顏や同一の顔が既に存在するかどうかを調べたりできます。 また、同じ視覚的特徴を使用して、似た顔をグループに分けて整理することもできます。 利用不可
Form Recognizer Form Recognizer Form Understanding では、機械学習の技術を適用して、フォームからキーと値のペアおよびテーブルを識別して抽出します。 利用不可

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

  • Computer Vision
  • Face
  • LUIS
  • Text Analytics

前提条件

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 やコンテナーの基礎に関する入門情報については、「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 のコンテナーによって提供される機能をインストールして試してください。