AutoNLPとProdigyによるアクティブラーニング

Hugging Faceは、自動化されたモデルトレーニングのためのAutoNLPと、反復的なデータラベリングのためのProdigyを使用して、機械学習におけるアクティブラーニングを実装するワークフローを実証しました。このパイプラインにより、ユーザーはモデルのアーキテクチャやハイパーパラメータのチューニングではなく、データラベリングに人間の労力を集中させることで、最先端(SOTA)のモデルを作成できます。

AutoNLPによる自動モデルトレーニング

AutoNLPは、最小限のコーディングでSOTAのディープラーニングモデルを構築するために設計されたフレームワークです。transformersdatasets、およびinference-apiライブラリを含む、Hugging Faceの既存のエコシステムを活用しています。

AutoNLPの主な機能は以下の通りです:

  • 幅広いタスクサポート: 二値分類、回帰、多クラス分類、トークン分類(NERや品詞タグ付けなど)、質問応答、および要約をサポートしています。
  • 多言語サポート: 英語、フランス語、ドイツ語、スペイン語、ヒンディー語、およびオランダ語を含む言語をサポートしており、サポートされていない言語についてはカスタムモデルとトークナイザーのオプションがあります。
  • 自動最適化: AutoNLPは、モデルの選択、ハイパーパラメータのチューニング、および最適なパフォーマンスを発揮するモデルを特定するための複数のモデル候補のトレーニングを自動的に処理します。

Prodigyによるリアルタイム・データアノテーション

Explosionによって開発されたProdigyは、リアルタイムのデータラベリングを可能にする商用のウェブベースのアノテーションツールです。主にNERやテキスト分類などのNLPタスクに使用されますが、コンピュータビジョンやカスタムタスクの作成もサポートしています。アクティブラーニングのパイプラインにおいて、Prodigyは、人間が未加工のテキストを反復的にラベリングして、AutoNLPが必要とするトレーニングセットを作成するためのインターフェースとして機能します。

ケーススタディ:BBC News ClassificationとNER

Hugging Faceは、このパイプラインを実証するために、KaggleのBBC News Classificationデータセット(businessentertainmentpoliticssport、およびtechの5つのクラスに分類されたニュース記事を含む)にこれらのツールを適用しました。

多クラス分類

AutoNLPを使用して、既存のカテゴリに基づいて分類モデルがトレーニングされました。プロセスには、データセットのアップロードとAutoNLPによる15種類の異なるモデルのトレーニングが含まれます。結果として得られた最良のモデルは、98.67%の精度(accuracy)を達成しました。

アクティブラーニングによる命名エンティティ認識(NER)

BBCデータセットにはエンティティのラベルが不足していたため、NER機能(ラベル:PERSONORGPRODUCTLOCATION)を追加するためにアクティブラーニングのプロセスが実装されました:

  1. 初期ラベリング: 約20個のサンプルをProdigyでラベリングしました。初期のAutoNLPモデルは、精度(accuracy)が86%でしたが、適合率(precision)と再現率(recall)は0であり、モデルがまだパターンを学習していないことを示していました。
  2. 反復的な成長: ラベリングされたデータセットが70個のサンプルに増えると、精度(accuracy)は92%に上昇し、適合率(precision)は0.52、再現率(recall)は0.42となりました。
  3. パフォーマンスの飛躍: 約150個のサンプルで、モデルは精度(accuracy)が95.7%、適合率(precision)が0.64、再現率(recall)が0.76に達し、未知のテキストにおけるエンティティの検出能力が大幅に向上しました。
  4. 最終的な最適化: 約250個のサンプルをラベリングした後、プロセスは精度(accuracy)約95.9%、適合率(precision)0.73、再現率(recall)0.79という最適な結果のプラトー(停滞期)に達しました。

技術的な実装とワークフロー

ProdigyはAutoNLPを直接AutoNLP形式でエクスポートできないため、spacyprodigy.components.dbを使用したカスタムPythonスクリプトを使用して、ProdigyのアノテーションをJSONLファイルに変換しました。このファイルは、その後「Token Classification」タスクとしてAutoNLPにアップロードされます。

このワークフローは、技術的な負担をモデルエンジニアリングからデータ品質へとシフトさせます。AutoNLPを使用することで、開発者はオプティマイザー、スケジューラー、または手動での前処理・後処理を個別に選択する必要がなくなり、ラベリングされたデータの品質に完全に集中することができます。

Sources

関連

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch