Huggy Lingo: 使用機器學習改進 Hugging Face Hub 語言中繼資料

Hugging Face 正在使用機器學習來自動偵測 Hugging Face Hub 上缺少語言中繼資料的資料集的語言,並利用 Librarian-Bot 提交拉取請求進行這些更新。此舉旨在提升資料集的可發現性,並協助社群識別 Hub 上語言代表性的不足。

缺少語言中繼資料的挑戰

語言中繼資料對使用者篩選並尋找特定用例的相關資料集至關重要,例如訓練代表性不足語言的開源大型語言模型(LLM)。然而,Hub 上的許多資料集缺少此資訊。

  • 目前狀況:在約 50,000 個公開資料集中,只有約 13% 在其 YAML 標頭中指定了語言中繼資料。大約 87% 的資料集未提供此資訊。
  • 語言分布:英語 (en) 是最常見的語言,佔已指定語言的資料集約 19%。排除英語後,會看到幾種主要語言的集中,隨後頻率平滑下降。
  • 中繼資料不一致:現有的語言標籤常常不一致,有些資料集使用 enengenglishEnglish 等變體來描述同一種語言。

語言預測的機器學習工作流程

為了解決缺少的中繼資料問題,Hugging Face 實施了一個管道,結合 API 存取與機器學習模型來預測資料集的語言。

透過 Dataset Viewer API 取得資料

為了避免在本地下載完整的資料集,Hugging Face 使用 dataset viewer API。這使系統能夠在不完整下載的情況下取樣文字資料。流程包括:

  1. 欄位過濾:系統會識別可能包含文字的欄位(例如名稱為 textprompt 且具有 string 特徵的欄位),並忽略非文字欄位(例如 image)。
  2. 取樣:系統會從這些識別出的欄位中檢索 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 活動動態追蹤。

Sources