NLP Hacks vol.4で発表したLTのスライドです。 Label Studioというアノテーションツールについて https://connpass.com/event/243929/
アノテーションツール「Label Studio」の紹介NSK @naohachi891
View Slide
aaa自己紹介● 経歴○ 機械学習エンジニア@リクルート○ 機械学習エンジニア、プロダクトマネージャー@ベンチャー企業● 趣味○ 🍺○ ストリートダンス・ダブルダッチ○ 機械学習コンペ■ 最近はKaggle Days ChampionshipというKaggler天下一武道会的なイベントにハマってます2
aaa今日お話すること● アノテーションの重要性と自然言語データにおけるアノテーションについて● アノテーションツール「Label Studio」について3
aaa機械学習プロジェクトのライフサイクルとアノテーション● 機械学習プロジェクトにおいてデータ収集は欠かせない要素○ プロジェクトによってはアノテーションは必要ないケースもあるが、そうでない場合は教師あり学習を行う上でアノテーションは必須● モデルの性能を向上させるには、良い学習データを収集することが重要○ アルゴリズムの改善よりも、データの収集と品質改善をすることによって大幅に精度を向上した事例が報告されている[1]○ -> 機械学習モデルの精度を向上させる上でアノテーションは非常に重要4データ収集プロジェクトのスコープ定義モデル学習 デプロイMLOps: From Model-centric to Data-centric AI より引用
● Spreadsheetで問題ないケースも多分にある○ 以下のようなケースでは恐らくspreadsheetでも十分■ 数クラスのテキスト分類タスクのアノテーション■ レビューを行わない/複数人のアノテーターが共同作業しないケース● 一方で、専用のアノテーションツールを使ったほうが効率的な場合もある○ クラス数が膨大な分類タスクのアノテーション○ 系列ラベリングタスクのような複雑な構造のラベルのアノテーション○ アノテーション結果のレビューを行うなど、複数人で共同作業するケース5Q. アノテーションが大事なのはわかったけど、Spreadsheetじゃだめなの?
aaa自然言語処理における主要なアノテーションタスク例タスク 概要 応用例分類/ラベリングテキストに対して 1:1 ないし 1:N でクラス/ラベルを付与するニュースのカテゴリ分類系列ラベリングテキストを単語などから成る系列とみなし、系列の構成要素に対してラベルを付与する 固有表現抽出Seq2Seqテキストを単語などから成る系列とみなし、与えられた系列に対して異なる系列を付与する機械翻訳要約Text2SQL6
aaaアノテーションツール「Label Studio」とは● OSS(&SaaS)の様々なデータ形式に対応するアノテーションツール○ テキスト、音声、画像、時系列、マルチモーダルに対応● 導入が容易○ コマンド一つでインストール可能● ビジネスユースに必要な機能を用意○ ユーザー管理、権限管理、etc● その他便利機能多数○ 豊富なアノテーションテンプレート、クラウドストレージ連携、Active Learning、Webhook連携、etc7
aaa製品プランと特徴● Community/Team/Enterpriseという3種の料金体系● Communityは無償& self hosted● Team/Enterpriseは有償& SaaS形式で提供https://heartex.com/ より引用。テキスト翻訳にgoogle翻訳を利用。 8
aaaデモ動画9こちらの動画をご覧くださいhttps://www.youtube.com/watch?v=nfI0qWY8JZw
aaaLabel Studioを用いたアノテーションプロセス1. プロジェクトの作成2. アノテーションインターフェースの設定3. データのインポート4. アノテーション5. (アノテーションのレビュー)6. アノテーションされたデータのエクスポート7. (Active Learningによるアノテーションすべきデータのサジェスト)8. -> 4に戻る※()付きはEnterprise版でのみ利用可能な機能 10
aaa1. プロジェクトの作成● アノテーションのプロジェクトを作成する● 複数のプロジェクトを作成し、プロジェクト単位でアノテーションするタスク・データを切り替えられる11
aaa2. アノテーションインターフェースの設定● Label Studio内で作成するプロジェクト単位でインターフェースを設定可能● インターフェースの記述はXMLで設定○ スクラッチでも記述可能だが、恐らく後述のテンプレートをカスタマイズするのが基本● 豊富なテンプレートが用意されており、テンプレートベースでの設定も可能○ NLPであればテキスト分類・質問応答・固有表現抽出・機械翻訳・要約・関係抽出などのテンプレートが用意されている12
aaa3. データのインポート● ファイルアップロード or Cloud Storage連携 or URL指定を行い、プロジェクトにデータをインポートできる● Cloud StorageはAWS・GCP・Azureなどの主要なパブリッククラウドで連携可能13
aaa4-1. アノテーション: 基本的な操作● 設定したアノテーションインターフェースに基づいてアノテーションを実施● アノテーション前・最中にガイドラインを表示することが可能● 判断に迷った場合はスキップ可能○ スキップしたタスクをフィルタして後からアノテートすることも可能14
aaa4-2. アノテーション: ショートカットによる効率化● ショートカットを利用し、効率的にアノテーションを進めることが可能○ スクショの固有表現抽出の例では、{1, 2, 3, 4}といったショートカットキーを押すと固有表現のラベルが選択できる15
aaa5. アノテーションのレビュー(Enterprise版のみ)● アノテーション済みのデータ(タスク)を他のアノテーターがレビューできる○ タスクに対してレビュー担当者を割り当てられる● なぜアノテーションのレビューが必要か?○ アノテーションの品質を担保できる○ 判別が難しいデータをスキルの高いアノテーターにアサインできる○ アノテーターの教育が出来る16
aaa6. アノテーションされたデータのエクスポート● アノテーション済みデータを様々なフォーマットで出力可能○ JSON、CSVなどの汎用的なものから、CoNLL2003などのタスク依存のものも用意● (本筋とは関係ないが)使いたいフォーマットがない場合のフィードバック先の動線があるのがgood17
aaa7-1. Active Learningによるサジェスト(Enterpriseのみ)● Active Learningとは○ 機械学習モデルの精度を効率的に向上させるために、アノテーションすべきデータを選定・優先順位づけする技術● 機械学習モデルをホスティングするML backendを設定すると、Active Learningを用いてアノテーションすべきデータがサジェストされる18https://labelstud.io/guide/active_learning.html#mainより引用
aaa7-2. Active Learningに関する補足: サンプリング戦略● 不確実性サンプリング○ モデルが確信を持って予測できていないデータを優先的にサンプルする戦略■ e.g. クラス分類でconfidenceの最大値が最も低いデータをサンプルする○ Label Studioにはこの戦略が搭載されている○ 決定境界を学習しやすいが多様性に欠けるリスクがある。また、モデルに依存してデータにバイアスがかかるリスクがある● 多様性サンプリング○ 学習データが多様になるようにサンプルする戦略■ e.g. multi lingual なデータセットにおいて多様な言語のデータをサンプルする○ 多様性は向上しやすいが決定境界が学習しにくくなる● それぞれ一長一短あり、上記の戦略とランダムサンプリングを組み合わせるのが良いらしい[2] 19
aaaその他のアノテーションツールについて20ツール名 特徴 提供体系doccano・チームコラボレーション機能・主要な自然言語タスクの他、画像分類もサポート・TIS社が開発OSSprodigy・チームコラボレーション機能・主要な自然言語タスクの他、画像・動画・音声など様々なデータ形式に対応・spaCyを提供するExplosion社が開発Personal: $390(買い切り)Company: $490 ~買い切り・無償アップグレードは12ヶ月まで
aaaまとめ● 自然言語データにおけるアノテーションについて紹介した○ タスクによってはSpreadsheetを用いたアノテーションが非効率なため、専用のアノテーションツールを利用する方が効率的● アノテーションツール「Label Studio」の機能・特徴について紹介した○ アノテーションを効率的に行うための便利機能を備えている他、ビジネスユースを意識した機能も搭載されている21
aaa参考文献● [1] Andrew Ng, MLOps: From Model-centric to Data-centric AI,https://www.deeplearning.ai/wp-content/uploads/2021/06/MLOps-From-Model-centric-to-Data-centric-AI.pdf● [2] Robert Monarch, Human-in-the-Loop Machine Learning,https://www.manning.com/books/human-in-the-loop-machine-learning22