PR

 AWSはAI関連のサービスを数多く提供している。大きく分けると、画像認識や機械翻訳など出来合いの学習済みAIを提供する「学習済みAIサービス」、ユーザー独自のAIを開発するための「AI開発支援サービス」、機械学習モデルの推論専用チップや映像AI開発者向けビデオカメラといった「AI向けハードウエア」の三つがある。

 今回取り上げる「Amazon SageMaker(セイジメイカー)」は、AI開発支援サービスの一つだ。学習データの作成から機械学習モデルの実装・トレーニング(学習)、推論環境の構築まで、AI開発をトータルに支援する。例えば、学習データをチームで効率的に作る「Ground Truth」という機能や、モデルやトレーニング方法を自動的にチューニングする機能などを備える。

 AI開発の経験が乏しくても、画像認識の文章分類といった典型的な用途であれば、自社で用意した学習データを基に独自のAIを開発することが可能だ。

 AWSのAI開発支援サービスには、SageMakerと同じく多様なAIの開発を支援する「Amazon Machine Learning(ML)」や、販売数や株価など時系列の数値予測に特化した「Amazon Forecast」もある。このうちAmazon MLでは用途やデータに合わせてアルゴリズムが自動選択されるのに対して、SageMakerはユーザーがアルゴリズムを独自に設計・実装する。アルゴリズム選択の自由度を重視して多様なAIを開発する場合は、SageMakerを選ぶ。

 以下では、AI開発の流れに沿って、SageMakerの主要機能を見ていく。学習データ作成を支援する「Ground Truth」、開発用のコンソールとPythonコードのエディターの役割を兼ね備える「ノートブック」、機械学習を行う「トレーニング」、モデルやトレーニング方法を自動調整する「自動チューニング」、バッチ/即時の推論環境を提供する「バッチ変換」「エンドポイント」である(図1)。

図1 AIの開発手順とSageMakerの機能
図1 AIの開発手順とSageMakerの機能
[画像のクリックで拡大表示]

Ground Truth

 画像に写った花の種類を識別するAIを作るには、例えばパンジーが写った画像に「pansy」、チューリップの画像には「tulip」といった具合にラベルを付けたり、画像内で該当の花が写っている領域を指定したりする必要がある。このように、AIが判断に用いる属性情報を各データに付与する作業を「アノテーション」と呼ぶ。

 データ数が増えるほど、アノテーションの手間が大きくなる。基本的には複数の作業者(ワーカー)で手分けして行うので、開発の管理者が作業のアサイン、作業環境の提供、作業結果の集約などを行う必要がある。SageMakerでは、そうしたアノテーションの支援機能としてGround Truthを提供している。

 Ground Truthは、開発の管理者もワーカーもWebブラウザーから利用する。アノテーションを最大限効率化するため、付加する属性情報の種別ごとに専用画面を用意している。

 デフォルトで提供される専用画面は四つある(2019年1月時点)。文章の内容に応じて分類ラベルを付ける「テキスト分類」、画像に写ったものに応じて分類ラベルを付ける「画像分類」、特定の物体が写った画像領域を矩形で指定する「物体検出」、特定の物体が写った画像領域をピクセル単位で指定する「セマンティック・セグメンテーション」だ。これら以外のアノテーションを行う場合は、ユーザーが独自の作業画面を作成する必要がある。

 デフォルトの専用画面の「物体検出」を例に、アノテーションの流れを説明しよう。

 開発の責任者はGround Truthの管理画面で、あらかじめ登録しておいたワーカーのチーム、対象データ、作業済みデータの出力先、ジョブ名などを指定する。指定されたワーカーにはメールでURLが届き、それをクリックすると作業画面が開く。各ワーカーは画面に1枚ずつ表示される画像に対して、「自動車」「店」のような指定された物体を矩形の選択ツールで囲み「submit」のボタンをクリックする。

 こうして作成した学習データはS3バケットに格納されていき、開発の責任者はいつでも利用できる。開発の責任者はGround Truthの管理画面で、各ワーカーの作業の進捗状況を参照し、遅れているワーカーの作業を別のワーカーに振り分けることも可能だ。

 アノテーションの対象データが膨大になると、社員だけでは作業し切れない。そこでGround Truthでは、アノテーションに社外の人材も利用しやすくする「Labeling workforces」という仕組みを提供している。

 Labeling workforcesでは、社員のような自社管理の人材を「Private」と呼ぶ。このPrivateに加え、「Public」「Vendor」という2通りの社外の人材を、アノテーションのアサイン時に選べるようにしている。

 PublicはAWSが「Amazon Mechanical Turk」というサービスで管理しているワーカー。Vendorはアノテーションを請け負う事業者である。Vendorの場合、アノテーションの作業時間や予算などを基に事業者を選定できる。