"人工知能パーツ" Web API として提供されている Azure Cognitive Services の一部機能を Docker コンテナにダウンロード、構築して利用できる Azure Cognitive Services Containers が提供開始となりました。(2018年11月現在プレビュー)
ローカル環境の Docker に Cognitive Services の Text Analytics コンテナ―を作成、稼働させて利用する方法を紹介します。
Cognitive Services Container を試すシリーズ
- Text Analytics : Sentiment (※当記事)
- LUIS
Cognitive Services Containers で利用できるサービス
Computer Vision と Face は 利用リクエストにサインアップ する必要があります。(2018年11月現在)
Text Analytics はすぐに利用できるので、今回はこちらを利用します。
Cognitive Services | サービス内容 | DockerHub |
---|---|---|
Computer Vision | 活字 OCR - 画像→文字の認識 | |
Face | 顔認識 - 顔のパーツの位置 (目, 鼻, 口, ...), 性別/年齢, etc 顔認証(同一人物の判定) 顔識別(DBからの識別) |
|
Text Analytics | キーフレーズの抽出 | keyphrase |
Text Analytics | 言語判定 | language |
Text Analytics | センチメント分析 | sentiment |
Cognitive Services Containers を使ってみる
Docker 環境の準備
今回は Windows 10 上に Dockers for Windows をインストールして使用します。
Windows 版は Windows と Linux コンテナーを利用できますが、Cognitive Services Containers を利用するには Linux コンテナ―環境が必要です。(設定やインストール時のオプションで選択できます)
Cognitive Services Containers を利用できる Docker 環境
Local on Windows*/macOS/Linux (*Windows OS では Linux コンテナ―で利用)
Azure Kubernetes Service
Azure Container Instances
Azure Stack (Kubernetes cluster)
Azure サブスクリプションで Cognitive Services の各サービスを作成する
Azure サブスクリプション
お持ちでない場合は、無料試用版での申し込みを行います。(無料プランを利用するため、従量課金プランでも大丈夫ですが念のため。)
Text Analytics の作成
Azure Portal を開き、[+新規作成] をクリックして検索欄に Text Analytics と入力して Cognitive Services Text Analytics を検索します。
[作成]をクリックして、Create ブレードを開き、下記のように必要な情報を入力します。
- Name : (識別しやすいお好みのものを)
- サブスクリプション(自動入力)
- 場所 : お好きなAzure Datacenter を選択、ここでは 東日本(Japan East) を選択しています
- 価格レベル : F0 ※Conntainerで利用する場合は F0 にしておく必要があります(2018年11月現在)
- Resource Group : (識別しやすいお好みのものを)
Endpoint と Key の取得
サービスを利用するためにアクセスする URL (Endpoint)と Key を取得しておきます。
サービスの作成が完了したら、作成した Text Analytics のサービスを開きます。
メニューの Overview をクリックします。
Endpoint に表示される URL をコピーしてローカルに保存しておきます。
次に Resource Management にある Key をクリックします。
Key1 に表示される文字列をコピーしてローカルに保存しておきます。
Docker 環境にコンテナ―を作成する
Cognitive Services Containers で予め用意されているイメージがあるので、そちらをダウンロードして、稼働させます。
サービス | Docker Hub | Repository |
---|---|---|
Keyphrase | https://hub.docker.com/r/microsoft/azure-cognitive-services-keyphrase/ | mcr.microsoft.com/azure-cognitive-services/keyphrase |
Language | https://hub.docker.com/r/microsoft/azure-cognitive-services-language/ | mcr.microsoft.com/azure-cognitive-services/language |
Sentiment | https://hub.docker.com/r/microsoft/azure-cognitive-services-sentiment/ | mcr.microsoft.com/azure-cognitive-services/sentiment |
Cognitive Services Containers のイメージダウンロードと起動
Docker CLI で最新のイメージをダウンロードします。今回は Sentiment をダウンロードして利用してみます。(latest オプションで最新を取得しています)
docker pull mcr.microsoft.com/azure-cognitive-services/sentiment:latest
こちらを以下のオプションで起動します。
- 1CPU/メモリ 8GB
- TCP port 5000
- 終了後にコンテナーを削除
Cognitive Services Containers のパラメーターとして以下を設定します。
- Billing : Azure Portal で取得した Endpoint (今回は 東日本 を設定)
- ApiKey : Azure Portal で取得した Key1
docker run --rm -it -p 5000:5000 --memory 8g --cpus 1 mcr.microsoft.com/azure-cognitive-services/sentiment Eula=accept Billing=https://japaneast.api.cognitive.microsoft.com/text/analytics/v2.0 ApiKey=xxxxxxxxxxxxxxxxxxxxxxx
最低限と推奨される CPU とメモリーのスペックは以下になっています
Container | 最低 | 推奨 |
---|---|---|
Keyphrase | 1 CPU, メモリー 2GB | 1 CPU, メモリー 4GB |
Language | 1 CPU, メモリー 2GB | 1 CPU, メモリー 4GB |
Sentiment | 1 CPU, メモリー 8GB | 1 CPU, メモリー 8GB |
無事コンテナーが起動すると、こちらでアクセス可能になります。
http://localhost:5000
Web API としてアクセスする
では、実際に Web API としてアクセスします
POST http://localhost:5000/text/analytics/v2.0/sentiment
ContentType: application/json
Body は下記のようなフォーマットで JSON で記述します。
{
"documents": [
{
"language": "en",
"id": "1",
"text": "Hello world. This is some input text that I love."
},
{
"language": "ja",
"id": "2",
"text": "おはようございます!今日は良い天気です。"
}
]
}
Postman でアクセスして Status: 200、Sentiment の結果が返ってくれば OK です。
[Ctrl + C] で Docker コンテナーを停止します。