AWS Startup ブログ

【開催報告&資料公開】ML@Loft 第12回 「アノテーション」(オンライン開催)

AWS 機械学習ソリューションアーキテクトの宇都宮 ( Twitter: @shokout ) です。本ブログでは、2020年4月30日に実施された ML@Loft 第12回  「アノテーション」の開催概要を報告いたします。平日夜19:00-のオンライン開催ということもあり、120名以上と多くの方にご参加いただきました。

ML@Loft は AWS 上で機械学習を開発・運用しているデベロッパー・データサイエンティストのための、コミュニティイベントです。2019年より月に1回、目黒の AWS Loft Tokyo で開催しておりましたが、第11回よりオンライン開催に切り替えて実施しています。第12回は「アノテーション」について、アノテーションに関する開発をされている3名の方にご登壇いただきました。AWS でも、Amazon SageMaker Ground Truth というアノテーションサービスを提供しており、製造、インターネットメディア、リテールなどあらゆる業界の方々にご利用いただいており、アノテーションは非常に関心の高いテーマです。

前半は、Toyota Research Institute – Advanced Development (TRI-AD) の Lead of ML Tools, Software Platform 谷内出さん、来栖川電算 CTO 山口さん、ABEJA  Head of Dataset Division/Dataset事業責任者 桐谷さんより、それぞれ10分ずつの LT 形式、後半は視聴者の皆様から slido でいただいたご質問をもとにパネルディスカッションを行いました。

1.  LT セッション

谷内出 悠介 氏 (Toyota Research Institute – Advanced Development) 「多品種大量製品向けAnnoOpsの紹介」

谷内出さんは、TRI-AD の Software platform チームで、MLOps 基盤開発や AnnoOps (アノテーション基盤開発)とサービス提供、Arene という車向けのソフトウエア開発を手がけるチームリードをされています。Toyota Research Institute – Advanced Development (以下TRI-AD)とは、自動運転技術の実用化に向けた高品質なソフトウェアを提供するため、2018年3月、日本橋に設立されました。ビジョンとして「Mobility to Love, Safety to Live」を、またミッションとして「世界で最も安全なモビリティを様々なお客様へお届けする」を掲げていて、MLTools チームのミッションとしては、いかに「ML モデルを簡単に車載デプロイ」できるかというところになります。

TRI-AD では、画像を中心に、Lidar ビデオなど実に数千枚〜数十万枚といった大量のデータに対して、物体検出やセグメンテーションなど20程度のプロジェクトについて1%以下の精度でアノテーションすることが求められています。そこで、複数のアノテーションベンダーを使いこなし、ベンダーフリーのアノテーションルールを構築することが課題になっています。

アノテーションプロセスは、大まかにこの5つのプロセスがあります

1.     Rule making: アノテーションするための指示書を作成

2.     Project creation: アノテーションプロジェクトを作成

3.     Annotation: アノテーションの実施

4.     Inspection: アノテーションデータの検品

5.     Delivery: アノテーションデータのリリース

その中でも今回は特に、2と4における課題として、アノテーション品質の平準化、ベンダーフリーを目指した基盤と、スムーズなアノテーションデータの出力に絞ってお話いただきました。というのも、2におけるルールと、4における検品は表裏一体で、ルールが悪いと不良品になるし、不良品の例はルールに速やかに反映する必要があるからです。異なる特性を持ったアノテーションベンダーを複数使い分ける際に、ベンダーフリーのルールと個別のルール(事例集)を切り分けて考えることが求められます。いずれのベンダーも数100人規模のアノテータを抱えており、各アノテータの主観を統一化するは困難となります。そこで、例えばフローチャートのような形で言語フリーの共通ルールを決めて、主観でいい部分(おおよその機械学習者がその基準を明確に守っている)を明確化し共通ルール化とすることで、アノテーションルールをブラッシュアップしていきます。

ベンダーごとに最適化するアノテーションルールについては、例えば、ベンダーA(生産力は普通・高精度)、ベンダーB(生産力は高い・中精度)など、ベンダーの素性を深掘りしていく必要があります。検品の結果の NG 例を事例集に加えていき、ベンダーごとの生産性の向上と NG 率の現象を目指します。また、ベンダーフリーを目指した基盤も構築しています。ベンダー毎に異なる入出力フォーマットを吸収し、アノテーション単位(ポイントアノテと BBox アノテを同時にできる)の違いも吸収するように、共通化できる単位のジョブをバッチ化して実行できるような設計にしています。また、アノテーションデータをそのまま MLOps につなげて学習ができるようなフォーマットの統一化にも取り組んでいます。

このように、TRI-AD では、多品種・大量のアノテーションデータの生成要求に対して、特徴の異なる複数ベンダーを効率よく活用できるようなアノテーションルール・基盤作成を行っており、7-8人程度で運用できるような MLOps に取り組んでいるそうです。

 

山口 陽平 氏 (来栖川電算)「AnnoFab 開発企業が考えるアノテーションの課題と対策」

来栖川電算は、AI 技術の研究開発から応用まで幅広いサービスを提供する名古屋工業大学発ベンチャー(2003 年設立)です。CTO 山口さんより、来栖川電算が正しいと考えるアノテーションプロセス、それを体現するアノテーションツールである AnnoFab についてご紹介いただきました。

深層学習が登場して以来、データの質の改善によるモデルの改善が見込めるなど、アノテーションの重要性についても注目されてきました。例えば、街のスナップショットの中で「人を BOX で囲ってください」という一見単純そうな指示があったとしても、その写真の中にはマネキンが写っていたりポスターが写っていたり、その意図(ML で解きたい問題)を知らないと判断に悩む場合が多々あります。しかしそれは、問題に対する理解が足りていないために、どんな機械学習モデルを作っていいのかわからない、どんなアノテーションを実行したら良いのかわからない、といった機械学習の本質的な難しさそのものであり、データや実験結果を観察して問題に対する理解を深めて訂正していく必要があります。

そこで来栖川電算では、ユーザー(機械学習者)がモデルの理解を深められるように積極的にアノテーションプロセスの観察改善に関与し、アノテーション管理者によるユーザー支援を行っています。しかし分割統治をすると仕様の解釈に方言が生まれるために、チェッカーによるアノテータのランダム検査、教育と理解の統一といった方式をとっています。複雑なアノテーションタスクになると、ワーカーからのフィードバックを素早く受け取れるような仕組みを構築しています。

これらの仕組みを汎用化し、来栖川電算では AnnoFab としてクラウドで提供しています。登録から開始まで3分、無料で使うことができます。コメントの自動検索や検査コメントの挿入なども可能な、柔軟なカスタマイズ性、きめ細かな課題管理ができ、自動的な計測もできる、リッチで生産的なエディタです。プライベートなデータは Amazon S3 に保存して、よりセキュアに使うこともできます。

また、現状のAnnoFabに更に手を加えると使えるようになる、より高度なアノテーションの工夫についてもお話いただきました。

  • 目視サンプリング: 動画の中から着目したいシーンを目視で特定し、ランダムサンプリングによりアノテーションを行うことで、レアな物体へのアノテーションがより効率的になる。
  • 特定物体の時系列検査: 複数の物体が写っている動画のアノテーションにおいて、物体検出器を用いて検出枠に物体  ID を付与することで、着目したい物体について分析しやすくなる。
  • 擬似  3D on 前方画像: 車の 3D の Bounding Box をつける代わりに、接地線を書くことで擬似的な 3D アノテーションを行い物体の姿勢を求めることができる。
  • 擬似  3D on 鳥観画像: LiDAR データから鳥観画像を作り、画像アノテーションを行う。天井と床を除去、点群を自国で色分、カメラ画像を付与するとアノテーションがしやすくなる

このような、ユーザーのニーズに沿った高度なアノテーションを実現しようとすると、より柔軟なアノテーション仕様で、多段の工程を記述できるようにする必要があります。AnnoFab ではこれらのカスタマイズに柔軟に対応できるように工夫されています。最後にアドバイスとして、追加投入で何度も実行される MLOps はスクリプト化し、サンプリングしたフレームには追跡可能なように ID を付与すべし、ということを述べていただきました。

 

桐谷 豪 氏 (ABEJA) 「ABEJA PLATFORM上でのアノテーションと運用上の課題について」

桐谷さんは2019年より株式会社 ABEJA に入社され、アノテーション事業を行なっている Dataset 事業責任者です。株式会社 ABEJA では、様々な業界のお客様と共に AI の社会実装に取り組まれています。その中で溜まったアノテーションのノウハウと、高品質なデータセットを作成する為に、ABEJA Platform Annotation のサービスにおけるアノテーション作業から品質チェック、管理進行までの業務プロセスの課題と対策を紹介していただきました。

ABEJA Platform では、アノテーション委託とアノテーションツールという2軸でサービス提供されています。多種多様なデータが公開・取得されるようになりつつある中で、大量かつ良質なデータをいかに効率的に得ることができるかが喫緊の課題になっており、データ収集やアノテーションの現場で起こっている課題やそのアプローチに着目し、精度・速度の効率化を実現する方法をご紹介いただきました。

機械学習においては、データの収集、アノテーションが学習、推論の後行程の精度を向上させる上でも非常に重要なものになります。データ収集においては、現実的には下記のような課題があります。

1.     データソースドメインの偏り(収集環境と運用環境の差異による)

2.     データの分布の偏り(異常検知における異常データの頻度が少ない)

3.     データのトレンド変化(広告やファッション領域におけるデータの更新性)

4.     プライバシー情報の取り扱い(生体情報等の個人情報の取り扱い)

具体的には、2. 不良品検品のモデル作成の際に不良品のデータが極端に少ない、またはクラス分類の際にそれぞれのクラスのデータにばらつきが大きい場合、3. トレンド変化が非常に早い広告やファッション領域は、最新のデータがないと、良いモデルとして提供できないといったような課題です。

また、アノテーションのポイントとしては、下記のような課題への対処が必要となります。

1.     アノテーションの定義の曖昧さ(カットソーとスウェットの違い)

2.     アノテーション実施者の感性(美しさのような完成情報、テキスト情報のポジネガ判定)

3.     エキスパートの必要性(医療画像の疾患判定)

4.     認知容量を超える規模(カテゴリ数が1000を超えるアノテーション)

5.     ケアレスミスへの対処(作業者のミスタッチ)

それぞれの課題について、魔法の杖のようなものはなく、1,2については正しい判断軸とサンプルの提示、作業精度(打点数など)の明確化、3については専門性を考慮した効率の良いアサインメントの調整、4については BPO パートナーへのアウトソーシングによるスケール、5についてはレビュー体制や機能的なチェックにより、マニュアル作成時には想定しきれなかったルールを見出すフィードバックを行い、作業者が理解できるようなフィードバックループを作成して品質管理を行うなど、多方面から上記の課題を解決されています。レビュー体制としては、専門の PM が要件定義を行い、専門アノテータをアサイン、アノテーション作業ののち  PM  が改めて作業結果を確認、品質に問題がないことを確認して納品することで納品物の品質管理を行われています。

このように、利用可能なデータの選別、アノテーションの判断基準や作業精度の品質の統一化、品質を担保するためのレビュー体制の構築といった3つの柱で、ABEJA Platform  におけるアノテーションの精度速度の向上と品質担保されていることをお話しいただきました。

 

2.  パネルディスカッション

後半のお悩み相談会は、視聴者からのご質問、ディスカッションしたい項目を slido で募りながら、AWS 針原 (twitter: @_hariby) のファシリテートによりパネルディスカッション形式で行いました。普段直接聞く機会も多くはないアノテーション開発者の方々へのご関心は非常に高いようで、人気の高い質問の中からピックアップし、 LTer の方々にお答えいただく形式で、後半のディスカッションも大変盛り上がりました。

個人情報の取り扱いについて

Q: 人の顔や車のナンバーなど、個人情報が含まれるようなデータを外部ベンダに委託する際に困ることはありませんか?

(TRI-AD 谷内出氏:2回目以降敬称略)ベンダーとインシデントが発生した場合の契約を結んで実行しているのでこれまで特に問題はなかった。重要度が高いもののアノテーションについては、IP アドレスでホワイトリスティングすることでアクセス制限をかけるなど、ネットワーク的に絞ったりしている。

(来栖川電算 山口氏)顔写真や車のナンバーのような個人情報については、マスキングツールなどは提供したりすることもある。ただ、量が多いとそれも大変になるので、基本的には契約で縛るのが良い。

 

アノテーションベンダーの選定

Q: 具体的にはどのようなベンダーをお使いでしょうか?

(谷内出)名前は出せないが、自分たちでアノテーターと直接会話できるようなところ、クラウドソーシングをハンドルしているような大きな会社など。いろんなベンダーの差異を吸収できるようにしている。

(ABEJA 桐谷氏)みなさまのご質問から、どんなベンダーを選ぶのかというところに興味がおありのようですが、自分自身もベンダーの選定の基準を聞いてみたいです。

(谷内出)同じデータで品質のベンチマークを行ない評価を実施したことがある。自分たちが loop の中に改善できる場合もあり、運用フローなどの比較検討もしている。

Q: アノテーション中にルール変更が発生した場合、処理済みの画像も再度アノテーションするのでしょうか?

(桐谷)ABEJA ではルール変更がある前提でオペレーションを組んでいる。ルールが明確でない場合、処理済にならないようにスキップをするなど、二度手間がかからないようにしている。

(山口)アノテーションルールの変更が早期に発見できるように、二度手間が起きないようにしている。どうしても変更が必要な場合に変更範囲がわかりそうなものについては、最低限の変更で差し戻しを行う。

(AWS針原)アノテーションの変更が必要な場合、どのような切り分けをされていますか?

(山口)例えば人の顔を含む複数のオブジェクトについてアノテーションを行う場合、顔の取り扱いが変わってしまった、といった場合に、人についてのみのアノテーションを再度行う、といった切り分けを行う。自動でできる場合は一括で編集を行う場合もある。

能動学習と自動ラベリング

Q: アノテーションデータをもとに Active Learning などされていますか?

(谷内出)TRI-AD では、アプリケーションを持っている部署がそれぞれで Active Learningを するパターンと、ML Platform を提供する側で Active Learning を提供するパターンとの両方がある。

(山口)来栖川電算でも Active Learning を使うプロジェクトはある。ただ、単純に Confidence  ベースの  Active Learning だけでは、似たようなものが集まってしまうモデルになってしまうことがあるため、diversity samplingと合わせて行う必要がある。

(針原)山口さんからActive Learning における confidenceとdiversity いう話がありましたが、Active Learning について勉強するのに参考になる資料はありますか?

(谷内出)Human in the loop という本が最近出ている。

Q: 自動ラベリングによるバイアスの影響をどうやって排除していますか?

(山口)例えば人を検出するモデルで、夜間の人が検出しづらい場合に昼間のデータばかりをサンプリングしてしまうといった課題がある。それにアノテーションしたところで意味がないこともあるので、データセットとしては必ずサービスとして使う場合と同じ比率のデータセットを準備することが重要。レアシーンは擬似的に作成する場合もある。

(桐谷)ABEJA でもデータの偏りについては本番と同じようになるように注意をしており、バイアスについては、自動でラベリングした時の精度が人間と比べてどうかを注意している。完全自動にはしておらず、Human in the loop をとって、必要があれば修正を行うようにしている。

自動運転におけるアノテーションについて

Q: 自動運転というと一般的なラベル付け以上に高精度なラベルが求められる印象ですが、ラベルの精度を高めるためにどのような工夫をされているか伺いたいです。

(谷内出)プロジェクトにかなり依存しており、精度が求められる場合にはアプリ開発者とともにアノテーションベンダーとともに精度向上の目標が達成できるまで繰り返し議論を続ける。

(山口)精度が出ない要因として、例えばアノテーションの品質がブレるという場合は、その要因をあぶり出すことが求められる。複数アノテータに同じアノテーションを実施させて、アノテーションのブレを観察するようなルールのデバッグを実施したりする。

(桐谷)アノテータのアサインに関して、例えば専門性を持ったアノテータを同じアノテーションにアサインし続けることで、精度やスピードを向上させることもある。

Q: [TRI-ADさん] アノテーションの省力化のために機械学習による自動ラベリングなどの検討ってされたことありますか?アノテーションの厳密なルール化を行うと、自動ラベリングのチェックにも工数が取られそうで悩ましいなと感じました

(谷内出)自動ラベリングは検討してみたが、パイプラインとして回せるようなMVPに注力していたので、Active Learningも含めたHuman in the loopの検討はこれから。

Q: モデルの開発精度とアノテーションの精度との切り分けについてはどう考えれば良いでしょうか?

(山口)これらは別で、モデルの精度はアノテーションの精度までしか上がらない。アノテーションの精度を求めて、モデルの精度の上限を事前に知ることで、モデルの精度向上の目安に使ったりしている。

Q: 正確性向上のため、多数のアノテーターが同じアノテーションタスクを行うときには、アノテーターが同時に作業してそれから多数決を取るパターンと、前の人がやった結果を2人目がレビューをする形式と両方されていますでしょうか。もしそうであった場合には、それらをどのように決定していますでしょうか。

(山口)完成を使うような、細かくを定義を書きづらい場合は多数決を取る場合もある。そうでない場合は、二人が互いにレビューをすることが多く、アノテータの教育にもなるので良い手法だと考えている。

Q: アノテーションコストに見合うほどのリターンってちゃんとあるのでしょうか?

(山口)研究者が1ヶ月頑張ってモデル精度を上げるのと、アノテーションの精度を上げるのでは、後者の方が精度が上がりやすいと思う。

(針原)つまり、リターンは十分大きいということですね。

Q: LiDARデータのアノテーションのイメージが湧きません。カメラの画像のように扱うのでしょうか

(谷内出)Object detection であれば、3次元の箱を置いて軸の方向を回転させながら枠の大きさをフィットさせていくような、3次元 Bounding Box アノテーションを行なっている。

AnnoFabについて

Q:素朴な疑問なのですが、なぜそこまでリッチなアノテーションツールを基本無料で提供することになったのですか…?

(山口)たくさんお金を出してくれるパトロンがいるから、ということでしょうか… 今はいろんな人に使ってもらってブラッシュアップしてもらいたいと思っています。

Q: アノテーションベンダーごとの精度の差というのは例えばどのような要因があると思われますか?まだあまりイメージが出来ておらず伺いたいです。

(谷内出)ベンダーごとの料金体系として、一タスク毎の単価支払いと、精度向上も含めて一括で支払いをする場合との2パターンがあるが、例えば前者の場合はできるだけ多く数をこなそうとすると質が落ちたり、また後者の場合は差し戻しを避けるために精度を担保しようという効果が働いたり、といったことがある。

(桐谷)コストの差にも関わってくる。大人数で一気に裁く場合もあれば、セキュリティセンターのようなものを構えて PM が品質管理をしながら少人数で行う場合など体制の違いが一つ。また、日本食のアノテーションで、海鮮丼とちらし寿司の違いが海外のアノテータにはわかりづらい、といった例のように、アノテーションのタスクによって専門知識を保有するアノテータが必要なタスクどうか、専門家を保有しているかどうかにもよる。

Q: AnnoFabは今後、言語アノテーションに対応する予定はありますか?

(山口)少しそういうご要望をいただいていて、対応できるように準備している。ユーザーがエディタを作ってAnnoFabのプラグインに入れられるように考えており、様々なアノテーションがAnnoFab上でいろんな機能と連携できるようになる予定です。

Q: 精度の評価はどのように行うのでしょうか?特に画像のセグメンテーションの時など。

(山口)例えばセグメンテーションでマスキングしたい場合などは、多少多めにマスクしていても問題はないので、recall 重視で評価している。エッジが重要な場合は境界部分を中心に評価する場合もあり、使い方によるかと思う。セグメントの結果をそのまま使うことは少なく、フリースペースを鳥瞰図に落とした時にそこを走ることができるのか、などの評価まで含めて評価をしている。

(桐谷)ABEJA でも精度検討は課題。単純にアノテーションデータの精度そのものを評価するだけではなく、モデルも同時に見直す必要がある。ABEJA Platform ではモデル開発もクイックに行えるため、アノテーション、モデル開発どちらに問題があるのかを行ったり来たり試行錯誤できるような構成になっている。

アノテーションの MLOps

Q: 最近アノテーションをパイプラインのようにタスクを順々に行い、前工程の結果を後工程に渡すなどのケースが多い(テキストをラベル付けして、そのラベル付けしたものに絞ってキーワードを抽出するなど)のですが、そのような複雑なケースはありましたでしょうか。もしありましたら、どのように対応しているかお聞きしたいです。

(針原)アノテーションのパイプラインの事例などはありますか?

(桐谷)ある物体に対してセグメンテーション+ラベル付けをするというタスクがあった。後者のラベルづけについては専門性が必要で、前者のセグメンテーションは自社で、後者のラベルづけはアウトソースという切り分けを実施したケースがあった。

Q: 最近アノテーションをパイプラインのようにタスクを順々に行い、前工程の結果を後工程に渡すなどのケースが多い(テキストをラベル付けして、そのラベル付けしたものに絞ってキーワードを抽出するなど)のですが、そのような複雑なケースはありましたでしょうか。もしありましたら、どのように対応しているかお聞きしたいです。

(針原)先ほどの自動ラベリングの話で説明があったかと思うが、他に手法があったりしますか?

(山口)基本的には自動ラベリングで行う。非常に専門性の高いアノテーションが求められるケースでは、ある程度モデルが賢くなってくると、モデルの方が人よりも精度が良い場合も出てくるので、そういった場合は積極的に自動ラベリングを使っている。

 

3. おわりに

アノテーションに関して専門性も高く深い知見のある3名の方々から開発視点でのリアルなお話を伺うことで、アノテーションに関する知見がより深まったように思います。会場からも多くの質問をいただき、登壇者の方々からも親身にご回答いただきました、みなさまどうもありがとうございました。今後もオンライン開催も含め継続していきますので、twitter (#mlloft ハッシュタグ)や connpass  (ML@Loft) などでも情報をウォッチしていただければと幸いです。

 

このブログの著者

宇都宮 聖子 (Shoko Utsunomiya)

AWS 機械学習ソリューションアーキテクト。自動運転、AI ヘルスケア・ライフサイエンス、ゲーム、スタートアップのお客様を中心に、機械学習と量子コンピュータのワークロードをサポートさせていただいています。好きなサービスは Amazon SageMaker と Amazon Braket。( Twitter: @shokout )