피드로 돌아가기
Large-scale Near-deduplication Behind BigCode
Hugging Face BlogHugging Face Blog
AI/ML

BigCode와 BigScience가 MinHash LSH, SimHash, Suffix Array 등 3가지 알고리즘을 조합해 대규모 데이터셋에서 중복 제거로 훈련 데이터 크기를 17M(65.86GB)으로 압축

Large-scale Near-deduplication Behind BigCode

2023년 5월 16일12intermediate

Context

대규모 언어 모델 훈련 시 중복된 학습 데이터가 모델의 과적합, 벤치마크 오염, 프라이버시 공격 취약성을 야기합니다. BigScience와 BigCode는 수백GB에서 수TB 규모의 텍스트 및 코드 데이터셋에서 이를 제거해야 했습니다.

Technical Solution

  • URL 기반 정확 일치 제거: OpenWebText2에서 URL 중복을 먼저 제거해 193.89GB에서 초기 필터링 수행
  • MinHash LSH 알고리즘 적용: 문서 수준 근사 중복을 (10, 0.5) 파라미터로 검출해 OpenWebText2를 65.86GB(17M 문서)로 압축, Pile-CC를 227.12GB(55M 문서)로 감소
  • Suffix Array 기반 부분 문자열 중복 제거: C4, Real News, LM1B, WIKI40B에 50-토큰 단위로 적용해 0.39%~19.4% 데이터 감소
  • SimHash 알고리즘 멀티언어 적용: BigScience ROOTS 코퍼스에 6-gram 기반 해밍 거리 4로 설정해 0.07%~2.7%(문서) + 10.61%~32.30%(부분 문자열) 감소
  • 다단계 조합 전략: URL 정확 일치 + 문서 근사 일치 + 부분 문자열 일치를 순차적으로 적용해 언어별·데이터셋별 최적 파라미터 조정

Impact

OpenWebText2 중복 제거로 입력 193.89GB에서 65.86GB로 66% 감소(17M 문서 유지), Pile-CC 306GB에서 227.12GB로 25.8% 감소(55M 문서), C4 806.92GB(364M)에서 3.04%~7.18% 훈련 데이터 감소, Real News 약 120GB에서 13.63%~19.4% 훈련 데이터 감소, BigScience ROOTS 코퍼스에서 문서 수준 0.07%~2.7%, 부분 문자열 수준 10.61%~32.30% 감소

Key Takeaway

수백GB 이상 대규모 데이터셋의 중복 제거는 단일 알고리즘이 아닌 (정확 일치 → 근사 일치 → 부분 문자열) 다층 파이프라인으로 구축하되, 데이터셋 특성(언어, 도메인, 크기)에 따라 MinHash LSH·SimHash·Suffix Array 파라미터를 별도로 튜닝해야 효과적이며, 이를 통해 동일한 모델 성능을 더 적은 훈련 스텝으로 달성할 수 있습니다.


대규모 텍스트 또는 코드 데이터셋을 수집하는 팀은 MinHash LSH(파라미터 bands=10, rows=0.5 기준)를 문서 수준 중복 제거에, Suffix Array를 50-토큰 부분 문자열 중복 제거에, SimHash를 다국어 처리에 순차 적용하면, 중복 제거 후에도 모델 성능을 유지하면서 훈련 시간과 스토리지 비용을 25%~66% 절감할 수 있습니다.

원문 읽기