허기 링고: 머신러닝을 사용한 허깅 페이스 허브 언어 메타데이터 개선

허깅 페이스는 머신러닝을 고용하여 허깅 페이스 허브에서 언어 메타데이터가 없는 데이터셋의 언어를 자동으로 감지하고, Librarian-Bot을 사용하여 이러한 업데이트를 위한 풀 리퀘스트를 제출합니다. 이 이니셔티브는 데이터셋 발견 가능성을 향상시키고 커뮤니티가 허브 전반에서 언어 표현의 격차를 식별하도록 돕는 것을 목표로 합니다.

누락된 언어 메타데이터의 도전

언어 메타데이터는 사용자가 특정 사용 사례에 관련된 데이터셋을 필터링하고 찾는 데 중요합니다. 예를 들어, 충분히 표현되지 않은 언어를 위한 오픈소스 대형 언어 모델(LLM) 훈련과 같은 경우입니다. 그러나 허브의 데이터셋 상당 부분이 이 정보를 누락하고 있습니다.

  • 현재 상태: 약 50,000개의 공개 데이터셋 중 약 13%만이 YAML 헤더에 언어 메타데이터를 지정합니다. 대략 87%의 데이터셋은 이 정보를 제공하지 않습니다.
  • 언어 분포: 영어(en)가 가장 일반적인 언어로, 언어를 지정한 데이터셋의 약 19%를 차지합니다. 영어를 제외하면 몇 가지 주요 언어가 그룹화된 후 빈도가 부드럽게 감소합니다.
  • 메타데이터 불일치: 기존 언어 태그는 종종 일관성이 없으며, 일부 데이터셋은 동일한 언어를 설명하기 위해 en, eng, english, 또는 English와 같은 변형을 사용합니다.

언어 예측을 위한 머신러닝 워크플로우

누락된 메타데이터를 해결하기 위해 허깅 페이스는 API 접근과 머신러닝 모델의 조합을 사용하여 데이터셋의 언어를 예측하는 파이프라인을 구현했습니다.

Dataset Viewer API를 통한 데이터 획득

로컬에서 전체 데이터셋을 다운로드하지 않도록 하기 위해 허깅 페이스는 데이터셋 뷰어 API를 활용합니다. 이로 인해 시스템은 전체 다운로드 없이 텍스트 데이터를 샘플링할 수 있습니다. 프로세스는 다음과 같습니다:

  1. 컬럼 필터링: 시스템은 텍스트를 포함할 가능성이 높은 컬럼을 식별합니다(예: text 또는 prompt 이름의 컬럼과 string 특징을 가진 경우). 비텍스트 컬럼(예: image)은 무시합니다.
  2. 샘플링: 시스템은 식별된 이러한 컬럼에서 텍스트 데이터 20행을 검색하여 예측 모델에 전달합니다.

언어 식별 모델

예측 작업에서 허깅 페이스는 No Language Left Behind 프로젝트의 일부로 Meta가 개발한 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을 통해 허브로 다시 통합됩니다.

Librarian-Bot은 예측된 언어 메타데이터를 데이터셋 카드에 추가하기 위해 자동으로 풀 리퀘스트를 엽니다.これにより 데이터셋 소유자는 병합을 검토하고 승인할 수 있으며, 매 데이터셋마다 수동 인간 노동 없이 메타데이터를 효율적으로 업데이트할 수 있습니다. 진행 상황은 Librarian-Bot 활동 피드를 통해 추적할 수 있습니다.

Sources