本記事は「2025 Japan AWS Jr. Chanpions 夏のQiitaリレー」の39日目の記事です。
過去の投稿は以下をご覧ください!
はじめに
こんにちは、Yudaiです。夏季休暇の自由研究として「Amazon Augmented AI(A2I)」を実際に使用し、その使用感についてまとめてみました。AIの実用化において、機械学習モデルの予測結果を人間が効率的にレビューできる仕組みとして注目のサービスです。
Amazon Augmented AI (A2I)とは
Amazon A2Iは、機械学習(ML)モデルの予測に対して人間のレビューを簡単に組み込めるフルマネージドサービスです。高精度とはいえ、モデルの予測には誤りや信頼性の低い結果が必ず存在します。とくにスキャンした書類の手書き認識や画像解析などでは、誤認識を人間がチェックする必要が生じます。
従来、人によるレビューシステムの構築は複雑なワークフロー設計や多数のレビュー担当者の管理、大量のカスタムソフトウェア作成が必要で、多大な時間とコストがかかりました。Amazon A2Iはこれらの過剰な労力を省き、誰でも簡単に人間レビューをMLパイプラインに組み込めるように設計されています。
A2Iは、組み込みのレビューワークフローやカスタムワークフローを提供し、人間によるレビュータスクの作成・管理を効率化します。
https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/a2i-use-augmented-ai-a2i-human-review-loops.html
A2Iのユースケース
主なユースケースは以下になります。
下記の他、実際の導入事例については以下をご参照ください。
https://aws.amazon.com/jp/augmented-ai/
Amazon Textractとの連携
スキャンしたドキュメントからテキストやキー・バリューペアを抽出する処理において、モデルの予測信頼度が低い場合に自動で人間レビューをトリガー。重要フォームフィールドの値を人が確認し、誤りを修正可能です。
Amazon Rekognitionとの連携
画像や動画のモデレーションで安全でないコンテンツ検出時に、人間がその判定を検証。信頼度の低い判定や、特にセンシティブなケースを人間レビューに回せます。
リアルタイム推論確認
SageMakerでデプロイしたカスタムMLモデルの信頼度が低い予測を、人間レビューに回し、修正内容をモデルの再学習に利用することで精度向上を図ります。
A2I のコアコンポーネント
上記のように、A2IはAIを実業務に取り込むための非常に有用なツールであり、ぜひ検討してみたい!という方も多いのではないしょうか。そこで、A2I利用にあたり押さえておくべき構成要素を整理します。
https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/a2i-getting-started-core-components.html
1.タスクタイプ
Amazon A2I を統合する AI/ML ワークフローは、Amazon A2I のタスクタイプを定義します。
選択可能なタスクタイプは以下の3つです。
-
組み込みタスクタイプ:
Amazon Textract キーと値のペアの抽出 -
組み込みタスクタイプ:
Amazon Rekognition イメージモデレーション -
カスタムタスクタイプ:
カスタムタスクタイプを使用すると、Amazon A2I を Amazon Comprehend、Amazon Transcribe、Amazon Translate などの他の AWS サービスや独自のカスタム機械学習ワークフローと統合できます。
2.人間によるレビューワークフロー
人間によるレビューワークフローを使用して、ヒューマンワークチームを指定し、ワーカータスクテンプレートを使用してワーカー UI を設定し、ワーカーがレビュータスクを完了する方法に関する情報を提供します。
人間によるレビューワークフローを作成するときは、1 つのワークチームを指定します。
ワークチーム
ワークチームとは、人間によるレビュータスクを送信するワーカーグループです。
ワーカータスクテンプレート
ワーカータスクテンプレートを使用して、人間によるレビュータスク用のワーカー UI (ヒューマンタスク UI) を作成します。
ヒューマンタスク UI には、ドキュメントやイメージなどの入力データ、ワーカーへの指示が表示されます。また、ワーカーがタスクを完了するために使用する対話型ツールも用意されています。
3.ヒューマンループ
ヒューマンループを使用して、人間によるレビュージョブが作成されます。人間によるレビュージョブごとに、1 つのデータオブジェクトをレビューするタスクを送信するワーカーの数を選択できます。例えば、イメージ分類ラベリングジョブに対するオブジェクトあたりのワーカー数を 3 に設定すると、3 人のワーカーが各入力イメージを分類します。オブジェクトあたりのワーカー数を増やすと、ラベルの精度を向上させることができます。
4.レビュー結果格納用のS3バケット
Amazon A2I は人間によるレビューの結果を Amazon S3 で管理します。
ハンズオン
構成要素をざっくり理解したところで、A2Iを実際に使用し、その使用感を確かめてみました。基本的にマネジメントコンソール上で検証を進めることができるため、みなさんも実際に手を動かしてみることをおすめします。
https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/a2i-get-started-console.html
レビュー結果格納用バケットの作成
前章で記述したとおり、Amazon A2I は人間によるレビューの結果を Amazon S3 で管理するため、A2I専用のS3バケットを作成します。レビュー結果格納用バケットであることが分かるようにNameを設定します。それ以外はデフォルト設定で問題ないです。
https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html
サンプル画像のアップロード
前項で作成したバケットにサンプル画像をアップロードします。
サンプル画像はAWS公式ドキュメント掲載のものを利用します。
https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/a2i/getting-started/sample-document-final.png
※S3バケットへのファイルアップロード手順
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/upload-objects.html
A2I用IAMポリシー・IAMロールの作成
人間によるワークフロー実行後、その結果をレビュー結果格納用バケットに出力できるようにする必要があります。そのため、レビュー結果格納用バケットの読み取り・出力権限を持つA2I用IAMポリシー・IAMロールを作成します。
A2I用IAMポリシー:A2IPolicy
- 許可ポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::xxxbucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::xxxbucket*"
]
}
]
}
A2I用IAMロール:A2IRole
- 信頼ポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSageMakerToAssumeRole",
"Effect": "Allow",
"Principal": {
"Service": "sagemaker.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
- 許可ポリシー
A2IPolicy
ワークチームの作成
上記で事前作業が完了です。続いて、Amazon A2I コンソールでワークチームを作成し、ワーカーレビュータスクをプレビューできるようにワーカーとして自分自身を追加してみましょう。なお、ワークチームはAmazon Mechanical Turk、ベンダー(AWS Marketplace)、プライベート(社内)を選択可能ですが、今回は使用感の確認が目的です。そのため、迅速に利用可能かつ、自身でタスク実行可能なプライベート(社内)を選択します。
作成が完了すると、以下のような招待メールがワーカー(今回は自分自身)に通知されます。
ワーカー画面にログインするとこんな感じ。英語が少し難しいですが、UIは非常に見やすいですね!
人間によるレビューワークフローを作成する
いよいよ人間によるレビューワークフローを作成します。人間によるレビューワークフローは特定のタスクタイプごとに作成します。今回はAmazon Textractを選択してみました。設定値は以下をご参照ください。
https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/a2i-get-started-console.html#a2i-get-started-console-step-2
ヒューマンループの開始
ヒューマンループを開始し、ワーカー(今回は自分自身)にタスク実行を依頼します。
ヒューマンループを開始するには、API オペレーションを使用する必要があります。
AWS API オペレーションの実行はAWS SDK for Python (Boto3)等の方法がありますが、今回はAWS CLI x Cloud Shellで実行してみました。
~ $ aws textract analyze-document \
> --document '{"S3Object":{"Bucket":"xxxbucket","Name":"sample.png"}}' \
> --feature-types 'TABLES' 'FORMS' \
> --human-loop-config '{"FlowDefinitionArn":"arn:aws:sagemaker:region:accountId:flow-definition/xxx-human-review-workflow","HumanLoopName":"xxx-human-loop","DataAttributes":{"ContentClassifiers":["FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent"]}}'
ヒューマンループが正常に開始され、ステータスが「実行中」になっていることを確認。
タスクの実行
ワーカー画面を確認すると、ジョブ(タスク)が追加されていたため、指示通り遂行します!
Amazon TranscribeでMail Adressを正しく認識できていなかったため、正しい値を入力しなおしました。指示文が英語のため多少戸惑いましたが、タスク内容がシンプルであれば実務導入可能かと感じました。
ヒューマンループのステータス確認
ワーカーのタスクが完了すると、ヒューマンループのステータスが「完了」になり、レビュー結果格納用バケットにoutput.jsonが格納されます。実際の運用では、output.jsonの内容をもとにデータ修正やモデル改善が行っていくことになります。そのデータ修正・改善方法は別途実装する必要があるかと思いますが、output.jsonの出力フォーマットは決まっており、レビュー後の改善も簡単に自動化することができるのではないかと感じました。
まとめ
というわけで、Amazon Augmented AIを実際に使用してみました。改めて、Amazon Augmented AI(A2I)は、機械学習モデルの予測結果の誤りを人間のレビューで補完し、精度向上や品質保証を効率的に実現するための強力なサービスです。今回のハンズオンを通して、特に以下のポイントが重要だと感じました。
-
利便性が高い
フルマネージドサービスとして提供され、複雑なレビューワークフローの構築や大規模レビュー担当者管理の負荷を大幅に軽減できる点は大きなメリットです。AWSマネジメントコンソール上で主な設定から運用までシームレスに行え、API連携も柔軟に対応しています。 -
柔軟なワークフロー構築が可能
組み込みタスクタイプ(TextractやRekognition)だけでなく、カスタムタスクタイプも利用できるため、多様な機械学習ユースケースに適用できます。必要に応じて社内ワークチームを設定し、ワーカーに人間レビューを割り当てることも可能です。 -
レビュータスクのユーザーインターフェース(UI)が使いやすい
実際のワーカー画面は操作しやすく、英語表示でもシンプルで直感的に理解できました。レビュー作業がスムーズに進むため、現場での導入障壁は低いと思います。 -
結果の管理と活用がしやすい
人間によるレビュー結果はS3バケットにJSON形式で保存されます。これを連携してモデル再学習やデータ検証フローに組み込むことで、継続的なモデル精度改善が可能になります。結果を自動処理できる設計ができれば運用の効率も大幅に向上します。
上記がどなたかのお力になれば幸いです。











