概要
本記事では Google Cloud Platform (GCP)のフルマネージドな ML ワークフローをサポートしている Vertex AI の、ML データセットのラベリングを行う機能である Vertex AI Labeling Tasks の概要についてまとめます。
Vertex AI Labeling Tasks とは
Vertex AI Labeling Tasks とは Vertex AI で使用するデータセットのラベリングタスクを実施・管理する機能です。このサービスを利用することで、ラベリングされていない Vertex AI Datasets のデータに対してチームでラベリングタスクを振り分け、実施の管理をすることができます。
また、本来であればこのサービスは Google のラベリングチームに作業を依頼するサービスですが、現在コロナの関係で依頼が不可となっています。
メリット
- Vertex AI 上でラベリングを行うことができるため、他の機能を使用する際にスムーズである
- クセのないツールでラベリングタスクを実施することができる
- チームでラベリングタスクを分担し、進捗を確認できる
デメリット
- 扱えるデータ形式は画像、表形式、テキスト、動画の4つのみ
- 料金がかかる
- グループ管理画面が分かりにくく、使いにくい。挙動がおかしいところがある
- ラベリングタスク作成時やラベリングタスク完了後に謎のエラーが発生する
- タスク作成や進捗が反映されるまでに時間がかかる
- ラベリング作業を外部に依頼することもできるが、現在コロナの状況のため利用不可
料金
現在ラベリングを依頼することができないため、使用するならばカスタムラベラー機能を使用することになります。カスタムラベラー機能ではどのデータ形式でも、ラベラー 1 人ごとに 1000 データ単位で$80 となっています。
料金例
2500 枚の画像データに対し、Object Detection のラベリングを実施した場合、以下の通りとなります。
- 2500(枚) × $80(/1000 枚) × 133.72(USD/JPY) = 26,744(円)
使用方法
Labeling Tasks 作成手順
- Define labeling task

Labeling Task の定義情報を入力します。
- Name : Labeling Task 名を入力します。
- Dataset : ラベリングを行う対象の Dataset を選択します。
- Annotation set : ラベリングで生成するアノテーションファイル名を入力します。
- Use active learning : 部分的に人の手でラベリングを行い、残りを ML で自動的にラベリングする機能の有無を設定します。
- Encryption : 暗号化の方式を選択します。
- Set up labels

ラベルの定義を行います。
データセットのタスクの種類によって異なります。
- Object Detection の場合、対象のクラスに合わせて Others も入れておくことが推奨となっています。
- Set up instructions

ラベリング方法を説明した pdf を指定します。
ラベリングタスクを行うユーザーへの説明資料として配布されます。
cloud storage に配置していなければならず、そのパスをブラウズして入力します。
- Customize labelers

ラベリングタスクを行うユーザーを定義します。
Google-managed labelers に依頼することもできるようですが、コロナの関係で現在使用できません。
補足:インポートファイルの作成
手順 4 で大量のデータを PC よりインポートするのは時間がかかりすぎるため、インポートファイルを作成するのが現実的である。
インポートするデータのパスを示した jsonl ファイルを作成する。
作成方法は以下を参照。
Vertex AI で使用するトレーニング データを準備する
まとめ
- Vertex AI Datasets を使用することで Vertex AI でのワークフローで使用するデータセットの管理を行うことができる。
- データの形式やタスクは限定的である。
- データのインポートにはインポートファイルを作成する必要がある。
- 本来 Google のラベリングチームに作業を依頼するサービスとなっているが、現在はコロナのため依頼機能は停止となっている。
- カスタムラベラー機能を使用するときも料金が発生する。(1000 データにつき$80)
参照