피드로 돌아가기
XetHub is joining Hugging Face!
Hugging Face BlogHugging Face Blog
Backend

Hugging Face가 XetHub를 인수하여 Git LFS 기반 Hub 저장소를 자체 최적화 저장소로 전환하여 청크 파일 및 중복 제거로 대규모 파일 업로드 효율 극대화

XetHub is joining Hugging Face!

2024년 8월 8일7intermediate

Context

Hugging Face Hub는 2020년 Git LFS를 저장소 백엔드로 채택했으나, AI 분야의 매우 큰 파일(수십GB~수백GB)을 처리하기에는 Git LFS가 설계되지 않았다는 한계가 있었다. 현재 Hub는 12PB의 LFS 저장 데이터(280M 파일)와 1일 10억 건의 요청을 처리 중이므로 더 효율적인 저장 및 버전 관리 전략이 필요했다.

Technical Solution

  • Git LFS에서 자체 최적화 저장소로 전환: Hugging Face가 XetHub의 기술을 Hub 저장소의 저장소 백엔드로 통합
  • 청크 파일 기반 저장: 파일을 작은 청크로 분할하여 부분 변경 시 전체 파일 대신 변경된 청크만 재업로드
  • 중복 제거 기술 적용: 동일한 청크 데이터는 한 번만 저장하여 스토리지 효율성 증대
  • Git 스케일 아웃: XetHub의 기술로 Git이 테라바이트 규모의 저장소 처리 가능
  • 데이터셋 및 모델 협업 기능 강화: 대규모 데이터와 모델의 변화를 시각화하고 팀 협업을 지원

Impact

  • 10GB Parquet 파일에 1행 추가 시: 현재는 10GB 전체 재업로드 필요 → 향후에는 변경된 청크 몇 개만 업로드
  • GGUF 모델 메타데이터 수정 시: Llama 3.1 405B 저장소에서 수 킬로바이트 규모 단일 청크만 재업로드 가능

Key Takeaway

대규모 파일 저장소 관리에서 범용 도구(Git LFS)의 한계를 인식하고 도메인 특화 기술(청크 기반 중복 제제거)로 전환할 때, 파일 크기의 수십~수백 배 업로드 효율 개선이 가능하다는 점을 보여준다.


대규모 데이터셋이나 모델 파일을 관리하는 ML 협업 플랫폼에서는 단순 파일 저장소 대신 청크 분할 및 내용 기반 중복 제거(content-addressable deduplication)를 저장소 백엔드에 구현하면, 부분 변경 시 재업로드 데이터량을 원본 파일 대비 1~10% 수준으로 감소시킬 수 있다.

원문 읽기