Huggy Lingo: 使用機器學習改進 Hugging Face Hub 語言中繼資料
Hugging Face 正在使用機器學習來自動偵測 Hugging Face Hub 上缺少語言中繼資料的資料集的語言,並利用 Librarian-Bot 提交拉取請求進行這些更新。此舉旨在提升資料集的可發現性,並協助社群識別 Hub 上語言代表性的不足。
缺少語言中繼資料的挑戰
語言中繼資料對使用者篩選並尋找特定用例的相關資料集至關重要,例如訓練代表性不足語言的開源大型語言模型(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 活動動態追蹤。