クラウド「AI」API入門:AWS/Cognitive Services/Google Cloud/IBM Watsonの比較:AI・機械学習のクラウドサービス
「AWS AIサービス」「Azure Cognitive Services」「Google Cloud AIビルディングブロック」「IBM Watson API」という主要AIサービスの一覧表を示し、各サービスを1行程度で説明する。自分でAI/機械学習モデルを作る前に、既存のAIサービスがないか(カスタマイズできないか)を、これで確認しよう。
本稿は、2020年6月22日に公開、2021年7月8日に改訂した記事を、2022年6月2日の最新情報に合わせて改訂したものです。
開発対象のアプリやサービスにAI/機械学習(ML:Machine Learning)モデルの機能を搭載したい場合に、すぐに「機械学習/ディープラーニングをやろう」と判断するのは待ってほしい。というのも、作ろうとしているAI機能は、既にクラウドのAPI/サービス(=事前トレーニング済みのAI/機械学習モデル)として提供されている可能性があるからだ。そんなAI/MLサービスを提供する主要なクラウドサービスといえば、下記の4つが挙げられる(※GCP=Google Cloud Platform)。
これらのクラウドが提供する機能には、主に次のようなものがある。
- 視覚認識: 画像分析(カスタム画像分析)、動画分析(カスタム動画分析)
- 翻訳: 翻訳(カスタム翻訳)
- テキスト(NLP): テキスト分析(カスタムのテキスト分析)
- スピーチ: 音声合成(カスタム音声合成)、音声認識(カスタム音声認識)
- 会話: チャットボット
- 構造化データ: AutoML(回帰/分類)
- 推奨: パーソナライズ
- その他: 時系列データの相関分析、文書検索
上記の中でも用語として特に分かりづらいものを簡単に説明しておくと、
- NLP(Natural Language Processing:自然言語処理)とは、テキスト文書を分析/解釈する機能
- 構造化データ(Structured data)とは、いわゆる表形式にまとめられるデータのこと。AIサービスでは、このデータを使って、回帰(=数値予測)や分類が行える
- 推奨(Recommendation)とは、「お勧めの商品」などをレコメンドするパーソナライズ機能
のことである。また、
- カスタムとは、もしニーズに完全に合致する機能がもともとのAIサービスにはない場合に、そのニーズに合うようにカスタマイズするための機能(例を後述)
- AutoML(Automated ML:自動化された機械学習)とは、自動的に最適な機械学習モデルを選択できる機能
である(※ただしGoogle Cloudでは、AIサービスの一般的なカスタム機能にも「AutoML」という名称を付けているので注意してほしい)。
「カスタム」が分かりづらいので、例を挙げておこう。例えば「茶葉の種類を認識する」という機能が必要なケースで、そのような機能がもともとの「画像分析」サービスにはなかった場合、「茶葉の写真画像」とそれに対応する「正解ラベル」(例えば「緑茶の茶葉」「紅茶の茶葉」など)を与えてAIサービスをカスタマイズできる、ということである。カスタマイズの際、必要となる写真画像が数十枚などごく少数で済むことも多いので、カスタム機能はAutoMLと比べて非常に効率的である。なお、「パーソナライズ」や「AutoML」もカスタム機能の一種と見なすこともできるだろう。
こういった機能を実現しようとするのであれば、まずはクラウドのAIサービスを検討してみてほしい。もちろん「利用料金がかかる」「API/サービスがいつか廃止される可能性がある」という欠点もあるものの、効率的にアプリやサービスの開発が進められるという利点の方が大きいからだ。
そこで本稿では、上記の4大クラウドのAIサービスの機能を比較表で示し、個々の機能を1行(〜数行)でコンパクトに紹介する。
クラウド間で大まかな機能比較
まずは、上記の機能ごとにクラウド間でどのような機能の違いがあるかを表1にまとめた。
この分類方法は筆者によるものであり、必ずしもこのようにきれいに切り分けできない場合もあるのでご了承いただきたい。というのも、各クラウドで類似のサービス機能であっても、機能が完全に同じということはないからである。また、サービス機能ができるだけ基本的なAPIレベルのものを表記している。高次元なソリューションレベルのサービス機能は、それに関連するAPIレベルの中に統合した。例えば「顔認識(感情分析)」という顔に特化した高次元なソリューションは、「視覚認識」内の「画像分析」という基本機能の中に含めて表記している。
それでは以下では、それぞれのAIサービスが具体的に「どのようなAPI/サービスなのか」を1行程度で説明していく。各クラウドのAIサービスの構成図を掲載するが、筆者独自の分類方法であり、公式のものと異なる可能性があるので注意してほしい。対応している言語については、各サービスのドキュメントを参照してほしい(※日本語に対応しているかどうかは、本稿では記載していないため)。
なお前掲の表1には、「検索」を含めたが、これはAmazon KendraやAzure Cognitive Search、Watson Discoveryが、公式にはAIサービスの一つにグルーピングされているためだ。以下の解説では、このような検索機能は「AIサービス」として取り上げないこととする。
AWS(Amazon Web Services): AIサービス
まず、各プラットフォームが提供するAI/MLに関する機能は、何もAIのAPI/サービスだけではない。例えば機械学習(ML)を効率的に進めるためのサービスや、機械学習が行える環境(インフラストラクチャー)自体も提供している。つまり大きく分けると、
- AIのサービス(API)
- ML/MLOpsのサービス(プラットフォーム)
- インフラストラクチャー
の3種類が提供されている、ということだ。本稿で解説するのは「AIのAPI/サービス」だけであるので注意してほしい。いずれのクラウドプラットフォームも、この3種類に大別した。
AWSでは、「AIのAPI/サービス」をAIサービスと呼んでいる。そのAIサービスの構成図が図1である。
それぞれ次のような機能を提供している。
- Amazon Rekognition: 画像やビデオを分析し、物体や人物、テキストを認識する。フォームとテキストを認識してキー&値のペア形式で情報を取得する「Amazon Textract」というAIサービスもある
- Amazon Rekognition(カスタムラベル): 独自の画像/ビデオと正解ラベルを与えて、画像分析/動画分析の挙動をカスタマイズする機能
- Amazon Translate: テキストを他言語に翻訳する
- Amazon Translate(カスタム用語集): 独自の用語集を与えて、翻訳の挙動をカスタマイズする機能
- Amazon Comprehend: テキストを分析し、情報(構文やキーフレーズ、肯定/否定の感情など)を検出する。医療用語に対応した「Amazon Comprehend Medical」もある
- Amazon Comprehend(カスタムラベル): 独自のラベル情報(カスタムエンティティ)を与えて、テキスト分析の挙動をカスタマイズする機能
- Amazon Polly: テキストを分析し、リアルな音声に変換(=音声合成)する
- Amazon Polly(カスタム音声): カスタムのブランド音声を構築できるが、標準機能としては提供しておらず、AWSに問い合わせる必要がある(2022年6月1日時点)
- Amazon Transcribe: 音声を認識し、テキストに変換する
- Amazon Transcribe(カスタム用語集): 独自の用語集を与えて、音声認識の挙動をカスタマイズする機能
- Amazon Lex: 対話型のボットである「チャットボット」を作成できる
- Amazon Forecast: 時系列データから、未来の数値を予測する。いわゆる「AutoML」だが、時系列データの予測のみに対応
- Amazon SageMakerでAutopilot: このSageMakerは、AWSではAIサービスではなくMLサービスに分類されているが、構造化データから回帰(数値予測)や分類を行うための最適な機械学習モデルを自動作成できるAutopilot機能(いわゆるAutoML)を持つ
- Amazon Personalize: 与えられたデータに基づいて、個人に最適化(=パーソナライズ)されたレコメンド(推奨)機能を構築できる
この他に、
- メトリクス/センサーデータ/コンピュータビジョンを使用して異常を検知する「Amazon Lookout for Metrics/Equipment/Vision」
- 産業機器の異常を検知することで計画外の機器のダウンタイムを削減する「Amazon Monitron」
- ヘルスデータを安全に保存/変換/クエリ/分析するための「Amazon HealthLake」
- Lenovo ThinkEdge SE70などのエッジデバイスにコンピュータビジョンを追加する「AWS Panorama」
- 機械学習の予測に対する人によるレビューが組み込まれたワークフローを簡単に構築できる「Amazon Augmented AI(Amazon A2I)」
- コードレビューを自動化する「Amazon CodeGuru」
- 企業内の検索サービスを構築するための「Amazon Kendra」
- オンライン詐欺を検知する「Amazon Fraud Detector」
といったAIサービスも存在するが、個別の課題を解決する「ソリューション」に近い、高次元の機能を提供するものなので、上記の低次元のAIサービスの中には含めなかった。
他のクラウドと比べるなら、本当によく使う機能を優先してAIサービスを充実させていっているという印象を筆者は持った。
Microsoft Azure: Cognitive Services
Azureでは、「AIのAPI/サービス」をCognitive Services(コグニティブ・サービス)と呼んでいる。また、よりソリューションに近い応用的なAIサービスをAzure Applied AI Servicesと呼んでいる。そのAIサービスの構成図が図2である。
- Computer Vision: 画像やビデオを分析し、物体や人物、テキストなどを認識する。顔画像から人物の感情などを検出できる「Face API」や、画像やPDFファイルからフォームとテキストを認識してキー&値のペア形式で情報を取得する「Azure Form Recognizer」というAIサービスもある
- Custom Vision: 独自の画像/ビデオと正解ラベルを与えて、画像分析/動画分析の挙動をカスタマイズする機能
- Translator: テキストを他言語に翻訳する。音声を他言語に翻訳する「Speech Translation」というAIサービスもある
- Translator(カスタム用語集): 独自の用語集を与えて、翻訳の挙動をカスタマイズする「Custom Translator」機能
- Text Analytics: テキストを分析し、情報(構文やキーフレーズ、肯定/否定の感情など)を検出する
- Language Understanding(カスタムラベル): 独自のラベル情報(カスタムエンティティ)を与えて、テキスト分析の挙動をカスタマイズする機能
- Text to Speech: テキストを分析し、リアルな音声に変換(=音声合成)する
- Text to Speech(カスタム音声): 独自の音声を与えることで音声合成をカスタマイズして、独自ブランド音声を構築する「Custom Voice」機能。音声出力を調整する「Audio Content Creation」機能もある
- Speech to Text: 音声を認識し、テキストに変換する。音声に基づいて話す人を特定できる「Speaker Recognition(プレビュー版)」というAIサービスもある
- Speech to Text(カスタム用語集): 独自の用語集を与えて、音声認識の挙動をカスタマイズする「Custom Keyword」機能。認識できる音声をカスタマイズできる「Custom Speech」機能もある
- Language Understanding: 対話型のボットである「チャットボット」を作成できる。ちなみに、かつての名称が「Language Understanding Intelligent Services」だったため、「LUIS」とも呼ばれている
- Azure Machine LearningでAutoML: このAzure MLは、AzureではAIサービスではなくMLサービスに分類されているが、構造化データから回帰(数値予測)や分類を行うための最適な機械学習モデルを自動作成できるAutoML機能を持つ
- Personalizer: 与えられたデータに基づいて、個人に最適化(=パーソナライズ)されたレコメンド(推奨)機能を構築できる
この他に、
- 文章作成の支援(GPT-3モデル)や、コード生成(Codexモデル)、類似性/テキスト検索/コード検索(埋め込みモデル)などのさまざまなユースケースで、OpenAIにより事前訓練済みの大規模言語モデルを活用するための「Azure OpenAI Service(プレビュー版)」
- 潜在的な問題を早期に発見(=異常検知)するための「Anomaly Detector」
- 攻撃的なコンテンツや不要なコンテンツを検出するための「Content Moderator」
- 質問と回答のセットを作成するための「QnA Maker」
- 文章の読み上げや言語翻訳機能を提供する「Immersive Reader」
- メトリクスを監視して問題を診断する「Azure Metrics Advisor」
- ビデオ分析ソリューションを構築するための「Azure Video Indexer」
- モバイル/Webアプリ用の検索サービスを構築するための「Azure Cognitive Search」
といったAIサービスも存在するが、個別の課題を解決する「ソリューション」に近い、高次元の機能を提供するものなので、上記の低次元のAIサービスの中には含めなかった。
他のクラウドと比べると、AIサービスの機能性が細かく充実している印象だ。
Google Cloud: AIビルディングブロック
GCPでは、「AIのAPI/サービス」を「AIビルディングブロック」と呼んでいる(※なお、かつてAI Platformと呼んでいたMLサービスが2021年5月にAutoMLやMLOps機能を含めて強化されて、Vertex AIと呼ばれるようになった。これに伴い、AIビルディングブロックのページがAIと機械学習プロダクトのページに統合されたので注意してほしい)。そのAIサービスの構成図が図3である。前述したようにGCPでは、AIサービスのカスタマイズ機能を「AutoML」というブランド名で呼称しており、必ずしも一般的な意味での「AutoML」とは限らないので注意してほしい。
- Vision API: 画像を分析し、物体や人物、テキストを認識する。手書き文字を認識したり、この機能をベースとした「Document AI」によりフォーム(表)を抽出したりすることも可能だ
- AutoML Vision: 独自の画像と正解ラベルを与えて、画像分析の挙動をカスタマイズする機能
- Video Intelligence API: ビデオを分析し、物体や人物、テキストを認識する
- AutoML Video Intelligence(ベータ版): 独自のビデオと正解ラベルを与えて、動画分析の挙動をカスタマイズする機能。動画を分類するための「AutoML Video Classification(プレビュー版)」と、物体の検知と追跡が行える「AutoML Video Object Tracking(プレビュー版)」がある
- Translation API: テキストを他言語に翻訳する。音声を他言語に翻訳する「Media Translation API(ベータ版)」というAIサービスもある
- AutoML Translation: 独自の用語集を与えて、翻訳の挙動をカスタマイズする機能
- Natural Language API: テキストを分析し、情報(構文やキーフレーズ、肯定/否定の感情など)を検出する。医療テキストを分析できる「Healthcare Natural Language API(プレビュー版)」というAIサービスもある
- AutoML Natural Language: 独自のラベル情報(カスタムエンティティ)を与えて、テキスト分析の挙動をカスタマイズする機能。「二値分類」「多クラス分類」「エンティティの抽出(上記と同様に医療テキスト向けもある)」「感情分析」といったタスクを選択できる
- Text-to-Speech API: テキストを分析し、リアルな音声に変換(=音声合成)する
- Text-to-Speech API(カスタム音声): 独自の音声を与えることで音声合成をカスタマイズして、独自ブランド音声を構築する「Custom Voice(ベータ版)」機能
- Speech-to-Text API: 音声を認識し、テキストに変換する
- 独自の用語集を与えることによるカスタム音声認識の機能は提供されていないが、特定の単語やフレーズをより高い頻度で認識できるようにするモデル適応機能が提供されている(2022年6月1日時点)
- Dialogflow: 対話型のボットである「チャットボット」を作成できる
- AutoML Tables(ベータ版): 構造化データから回帰(数値予測)や分類を行うための最適な機械学習モデルを自動作成できる
- Recommendations AI: 与えられたデータに基づいて、個人に最適化(=パーソナライズ)されたレコメンド(推奨)機能を構築できる
- Cloud Inference API(アルファ版): 入力された時系列データに対する相関分析が大規模かつ迅速に行える。異常検知などに活用できる
- 2022年2月の新APIとして、時系列データストリーミングからリアルタイムで分析/予測/異常検知が行える「Timeseries Insights API」が承認制のプレビュー版で登場している
Copyright© Digital Advantage Corp. All Rights Reserved.