Huggy Lingo: MLを使ったHugging Face Hubの言語メタデータの改善
Hugging Faceは機械学習を使用して、言語メタデータが欠如しているHugging Face Hub上のデータセットの言語を自動的に検出し、Librarian-Botを使ってこれらの更新のためにプルリクエストを提出しています。このイニシアチブは、データセットの検出可能性を向上させ、Hub全体での言語表現のギャップをコミュニティが特定できるようにすることを目的としています。
言語メタデータが欠如している課題
言語メタデータは、ユーザーが特定のユースケースに関連するデータセットをフィルタリングして見つけるために不可欠です。たとえば、代表されていない言語向けのオープンソースのLarge Language Models (LLM)のトレーニングなどです。ただし、Hubのデータセットの相当な部分がこの情報を欠いています。
- 現在の状況: 約50,000の公開データセットのうち、約13%のみがYAMLヘッダーで言語メタデータを指定しています。残りの約87%のデータセットはこの情報を提供していません。
- 言語分布: 英語 (
en) が最も一般的な言語で、言語を指定しているデータセットの約19%を占めています。英語を除外すると、いくつかの主要言語のグループが見られ、その後頻度がなだらかに減少します。 - メタデータの不一致: 既存の言語タグはしばしば一貫性がなく、一部のデータセットでは同じ言語を表すために
en、eng、english、Englishなどのバリエーションが使用されています。
言語予測のための機械学習ワークフロー
欠落しているメタデータに対処するため、Hugging FaceはAPIアクセスと機械学習モデルの組み合わせを使用してデータセットの言語を予測するパイプラインを実装しました。
Dataset Viewer API を介したデータ取得
ローカルでデータセット全体をダウンロードするのを避けるため、Hugging Faceは dataset viewer API を利用します。これにより、フルダウンロードせずにテキストデータをサンプリングすることが可能になります。プロセスは以下の通りです:
- 列フィルタリング: システムはテキストを含む可能性のある列(たとえば、
textまたはpromptという名前でstring特徴を持つ列)を特定し、テキスト以外の列(たとえば、image)を無視します。 - サンプリング: システムはこれらの特定された列からテキストデータの20行を取得し、予測モデルに渡します。
言語識別モデル
予測タスクのため、Hugging FaceはMetaのNo Language Left Behindプロジェクトの一部として開発された facebook/fasttext-language-identification モデルを使用します。このモデルは217言語を検出することができます。
予測のフィルタリングと検証
メタデータの提案の正確性を確保するため、システムは20個の個別行予測にいくつかのフィルタを適用します:
- 周波数フィルタ: サンプルされた行の20%未満で言語が予測された場合、その予測は破棄されます。
- 信頼度フィルタ: 言語の平均スコアが80%以上である場合のみ、予測が受け入れられます。
- 言語コードマッピング: モデルはISO 639-3コード(たとえば、
kor_Hangは韓国語)を返します。システムはスクリプト情報を削除し、可能な限りこれらをISO 639-1コード(Hub UIでのサポートが優れている)に変換します。ISO 639-1相当のコードが存在しない場合は、手動マッピングが使用されます(たとえば、標準アラビア語のarbをアラビア語のarにマッピング)。マッピングが不可能な場合は、メタデータは提案されません。
Librarian-Bot を介した自動メタデータ更新
言語が予測および検証されたら、その情報は Librarian-Bot を介してHubに再統合されます。
Librarian-Botは、予測された言語メタデータをデータセットカードに追加するためにプルリクエストを自動的に開きます。これにより、データセットの所有者はマージをレビューおよび承認でき、毎回のデータセットに対して手動の人間の労力を必要とせずにメタデータを効率的に更新することができます。進捗状況は、Librarian-Botのアクティビティフィードを通じて追跡できます。