MLの裏側を支えるアノテーション組織運営の実践禄

はじめまして!
機械学習チームでプロダクトマネジメントを担当している、井上といいます。

今回はCADDiにおけるアノテーションの組織づくりについて紹介します。

アノテーションについて調べると、データ生成や品質改善のノウハウはよく目にするものの、アノテーションを行う組織体制づくりに関する情報は中々見つかりません。弊社のアノテーション組織づくりがその一事例として、参考材料になればいいなと思います。

「紹介します」なんて言うとさもよくできた事例のように聞こえそうですが、実際は試行錯誤の日々です.....💦


アノテーションってなんなの?

アノテーションとは一体何なのか。まずは簡単に説明しようと思います。 「それくらい知っておるわい!」という方は生暖かく読み飛ばしてくださってOKです👍

アノテーションとは、データにラベルを付けてその意味を明確にする作業のことです。アノテーションされたデータは、おもに機械学習・AIをつくるための教師データとして活用されます。とくに画像・動画認識の分野において欠かせないタスクです。

……という言葉だけ見ても分かりづらいですし、具体例をみていきましょう!

↑ここに金魚の絵があります。
これ自体はただの絵でしかなく、それが何を意味するかという情報を持っていません。このときAIにとって、この絵は一体なんであるかを理解することができません。

画像に対して “金魚” というタグを付与し、様々なパターンを学習することによって、「これは金魚の画像なんだな」とAIが判断できるようになるという仕組みです。

アノテーションは、AIの教師データを作るために欠かせない作業です。教師データがあれば、AIはデータのパターンを学び、未知のデータに対して予測や分類を行うことができます。ただし、そのためには正確なアノテーションが必要です。間違ったタグをつけてしまうと、AIは誤った学習をしてしまいます。

機械学習コンペなどでは大抵、ラベルがつけられたデータが用意されています。しかし、現場で機械学習を利用するときは多くの場合、ラベル付けから始めるのが実情です。

アノテーションの組織づくりが必要になる背景

自社や業界に特有のノウハウをとりいれた機械学習モデル/AIを作ろうとすると、避けて通れないのがアノテーション。

アノテーションの質はモデルの精度に大きく影響します。質の良いデータを作るためには、データ解析とドメイン知識の両面からデータを眺める必要があります。ときにはエンジニア自身がアノテーションを行うことがあったり、ドメイン知識を習得しにいくことがあったりして、手間もかかるし要求される専門性も高い。ゆえにアノテーションがAI開発のボトルネックになることは珍しくありません。

アノテーションのボトルネック化を解決する手段として、定番の一手は外部に委託すること。しかしアノテーションを委託できない場合も多いのではないでしょうか? たとえば元となるデータの表現パターンが多様なため判断基準を網羅した要件を定めるのが困難であったり、要求されるドメイン知識の専門度が高くてインストールが大変だったり、第三者に渡せないくらいにセキュリティ要件の厳しいデータがあったり。。。

そうした場合に「自社でアノテーション組織をつくろう!」となるわけですが、困ったことに、アノテーションの組織づくりについては参考となる事例がとても少ない。ドメインに深く根ざすバーティカルSaaSでは利用できるオープンデータが少なく、より一層悩みやすい問題のはずです。

体系的にまとまったものと言えば、昨年末に翻訳本が出版された『Human-in-the-Loop機械学習』くらいではないでしょうか。結構いいお値段しますが、希少な良著です。

www.kyoritsu-pub.co.jp

CADDiのアノテーション体制

弊社のアノテーション体制は以下の構成となっています。

  • 機械学習エンジニア
  • プロダクトマネージャー
  • オペレーションマネージャー
  • アノテーター

アノテーター以外の登場人物が多く、少し役割や専門性が分かりづらいかもしれませんね。これから詳しく説明していきます。まずそれぞれのスキルセットは以下の表のとおりです。各々の強いところを持ち寄ると、開発・ドメイン・オペレーションの3領域をカバーできる形になります。

  • 機械学習エンジニア
    • アノテーションデータを用いた機械学習モデルの開発
    • 初期フェーズでのアノテーションルール設計(with プロダクトマネージャー)
      • とくにデータ解析観点で、望ましいアノテーションデータの型や必要なデータ量の目安を提示する。
    • テクニカルな手法でアノテーションの効率改善:プリアノテーション・ツール提供等


  • プロダクトマネージャー
    • 機械学習が関わるプロダクトの企画
    • アノテーションの優先順位や、モデルの目標精度の設定
    • 初期フェーズでのアノテーションルール設計(with エンジニア)
      • とくにドメイン観点で、望ましいモデルの精度やアノテーションの取得方法を提示する。
    • アノテーションのイレギュラーパターンへの対応や、オペレーション状況に応じたルールの微修正(with オペレーションマネージャー)


  • オペレーションマネージャー
    • アノテーターチームのマネジメント:評価・育成・相談受け
    • アノテーションの業務設計・品質と生産性の改善
    • アノテーションのイレギュラーパターンへの対応や、オペレーション状況に応じたルールの微修正(with プロダクトマネージャー)


  • アノテーター
    • アノテーションの実行・報告
    • 不明点やお困りごとの問題提起
    • 現場視点での改善ポイント・企画の提案

連携を図に示すとこんな感じ


もちろん登場人物が増えている分、コミュニケーションコストが発生します。

理想としては、機械学習の開発・ドメインに紐づく要件定義・オペレーション設計・ピープルマネジメントを満遍なくできる人がいれば最速最良のアノテーションが実現できるのですが、そんなパーフェクトヒューマンは滅多にいません。ある程度分業したほうが、再現性が高く、業務負荷的にも持続可能なアノテーション体制になると考えています。

CADDiのアノテーション業務サイクル

アノテーションからモデルができるまでのサイクルは、ざっくりと下図のとおりです。

意識しているポイントは、アノテーションルール・定義の見直しを、作業を進めながら頻繁に行っている点です。望ましくは事前にヌケモレなくアノテーションルールを定義できたら良いのですが、それは製造業×図面というドメインにおいては非現実的です。我々がとりあつかう図面というのは、兎にも角にも自由な書き方がなされています。どれだけ製造業に詳しい人であっても、すべての表記パターンを前もって洗い出すことができないほどです。

そこで弊社では、表記の多様性を後工程でキャッチして軌道修正する方法を採択しています。もちろん事前になるべく表記パターンを挙げてアノテーションの方法を定めるのですが、代表的な表記やイレギュラーパターンを洗い出した時点でアノテーションを開始しています。 ただ後工程で表記の多様性をキャッチする方法は、注意して運用しなくてはなりません。

  • アノテーターの質問にスピーディーに解消しなければ作業が停滞する
  • ルール改善と周知を徹底的にやらないとデータ品質が落ちる
  • アノテーターとの信頼関係ができていないとサイクルが回らなくなる

質問回答のスピード・ルール改善の強度・疑問が解消される安心感、いずれを損ねても途端にうまくいかなくなります。こうした課題に対して、弊社では以下のような対策を打っています。

  • 質問回答のスピードUP
    • アノテーションツールとSlackを連携する。
    • 質疑応答をSlack上で回答でき、管理しやすくなる。
    • プロダクトマネージャーやオペレーションマネージャーは、アノテーターからの質問を歓迎する。かつ、なるべくレスポンシブに回答する。(対策とも言いがたい泥臭いやり方ですが.....)


  • ルール改善と周知の徹底
    • アノテーターの中で役割分担をして、一定ルールの取りまとめる人・工数を確保する。
    • 変更点を管理するスライドを用意して日次でアノテーターに展開 + 週次で今週のハイライトを展開する。かつ、読了しているかのチェックをとって追跡する。
    • 日次で15分程度の疑問解消会をもうける


  • 信頼醸成
    • プロダクトマネージャーやオペレーションマネージャーは、アノテーターからの質問を歓迎する。かつ、なるべくレスポンシブに回答する。(本日2回目)
      • 地道ながら、コツコツとした積み重ねが信頼貯金をつくります。
    • 評価で報いる。人事評価基準の明示と、きちんとした報酬。
    • アノテーションデータを用いた成果の共有と、感謝の言葉かけ。
      • アノテーションは作業だけ切り取ると自己効力感を得にくいです。なるべく目に見える形で、事業成果だったり、モデルのデモだったりを提示しています。

これを見てどう感じたでしょうか?
ウェットなチーム運営だなぁとか、人のケアってそんな必要なのかなぁとか、
そう感じた方もいらっしゃるのではないでしょうか? 私もそう思ってた時期がありました

しかし人手によるアノテーションを行う限りは、必ずピープルマネジメントに向き合うことになります。もしアノテーターとの連携や信頼関係が崩れると、現場からのフィードバックが途絶え、離職率が上がって専門性の高い人材が育たず、作業効率も落ちます。結果として、良質なアノテーションデータを手に入れることができなくなってしまいます。

今時点ではこういった仕組みでアノテーションを回していますが、もちろんこれがベストだとは思っていません。まだまだ試行錯誤の道半ば。これからもっと良いアノテーション体制を作ってまいります!

まとめ

CADDiにおけるアノテーション業務について、どのような体制で取り組んでいるのかをご紹介いたしました。私達は製造業を対象としていますが、他の業界に尖ったモデル開発でも、きっと同じようにドメインとデータの交差点で悩むことが多かろうと思います。

アノテーションの組織づくりや運用体制はまだまだベストプラクティスのない分野です。必要なデータの量と質の担保のために様々な人の協力が必要でありながら、中々認知を獲得しにくい分野だとも思います。この投稿を見たどなたかがアノテーションの組織づくりに興味を持って、各々の会社で役立てていただけると嬉しい限りです!


さて、最後に宣伝です。

CADDiではモデルの開発もアノテーションの改善も、やりたいことはもりだくさん!機械学習を推進してくださるエンジニアも、アノテーションを進化させていただけるオペレーション企画も募集しています。機械学習自体の開発サイクルにも興味のある方は、こちらの記事に詳しく書かれておりますので、ぜひご一読いただけますと幸いです。

これまでは2Dの図面が中心だったのですが、これからは図面以外の文書データや3Dデータも解析していきます。いろんなデータに触れられるのは、きっと面白いと思いますよ!

興味本位でお話するだけでもウェルカムなので、ぜひ気軽にご連絡ください 🙌

CADDi の ML/MLOpsエンジニアの技術やチームの紹介です!


エンジニア向け採用情報

オペレーションマネージャー採用情報