Git LFS에서 Xet으로의 Hugging Face Hub 마이그레이션
Hugging Face는 Git LFS에서 Xet으로 500,000개의 리포지토리와 20 PB의 데이터를 마이그레이션했습니다. Xet은 AI 빌더의 방대한 데이터 요구에 맞춰 확장하도록 설계된 새로운 스토리지 백엔드입니다. 이 전환을 통해 사용자는 기존 워크플로를 변경하지 않고도 더 빠른 전송과 향상된 확장성을 얻을 수 있습니다.
Git LFS Bridge를 통한 원활한 하위 호환성
‘하드 컷오버’를 피하고 사용자 방해를 최소화하기 위해, Hugging Face는 Xet이 활성화된 리포지토리가 Xet 파일과 LFS 파일을 모두 포함할 수 있는 시스템을 구현했습니다. 이 호환성의 핵심은 Git LFS Bridge이며, 이를 통해 오래된 클라이언트를 사용하는 사용자도 Xet 기반 파일과 상호 작용할 수 있습니다.
Git LFS Bridge 작동 방식
비‑Xet 인식 클라이언트(예: 오래된 버전의 huggingface_hub 또는 huggingface.js)가 resolve 엔드포인트를 통해 파일을 요청하면, Git LFS Bridge는 다음을 수행합니다:
- LFS 프로토콜을 모방하는 단일 프리사인드 URL을 생성하고 반환합니다.
- S3에 보관된 콘텐츠에서 파일을 재구성합니다.
- 재구성된 파일을 요청자에게 반환합니다.
Xet 인식 클라이언트 워크플로
Xet을 인식하는 클라이언트(예: hf-xet 또는 huggingface_hub의 Xet 통합)는 브리지를 우회하고 전체 Xet 스택을 사용합니다:
- 업로드: 파일은 콘텐츠 정의 청크 방식을 사용해 청크로 분할되고, Content Addressed Store(CAS)로 전달되어 S3에 저장됩니다.
- 다운로드: 클라이언트는 파일 재구성 정보를 요청하고 CAS를 통해 S3에서 특정 청크 범위를 가져옵니다.
백그라운드 마이그레이션 프로세스
Hugging Face는 리포지토리 잠금을 요구하거나 활성 업로드·다운로드를 방해하지 않고 LFS에서 Xet으로 데이터를 이동하기 위해 백그라운드 마이그레이션 프로세스를 활용합니다.
파일이 마이그레이션될 때, 웹훅이 오케스트레이터가 처리하는 분산 큐를 트리거합니다. 오케스트레이터는 리포지토리에서 Xet을 활성화하고, LFS 리비전을 가져와 파일을 작업 단위(1,000 파일 또는 500 MB)로 배치합니다. 마이그레이션 워커 팟은 LFS 파일을 다운로드한 뒤 xet-core를 사용해 Xet CAS에 업로드합니다.
확장성 도전 과제 및 성능 향상
42,000개의 리포지토리에 걸쳐 최대 6.1 PB의 데이터를 보유한 파워 유저들의 대규모 마이그레이션 동안, Hugging Face는 여러 기술적 병목 현상을 식별하고 해결했습니다:
- 디스크 공간: 전역 중복 제거를 위한 임시 샤드 파일이 Xet 캐시와 다른 마운트 지점인
/tmp에 기록되어No space left on device오류가 발생하던 문제를 수정했습니다. - 리소스 할당: 마이그레이션 워커의 급증하는 업로드를 처리하도록 CAS 크기를 조정했으며, 이는 Llama 4와 같은 주요 모델 릴리스 시 나타나는 일반적인 급증 다운로드 패턴과 달랐습니다.
- I/O 병목: 네트워크 및 EBS I/O 병목을 해소하기 위해 워커 노드 사양을 업그레이드했습니다.
CAS 처리량 개선
이러한 최적화 덕분에 Content Addressed Store(CAS)의 처리량이 크게 증가했습니다:
- 초기 마이그레이션: 약 35 Gb/s를 지속 (일반 Hub 트래픽 약 5 Gb/s 포함).
- 최신 마이그레이션: 기본 부하 약 40 Gb/s를 제공하면서 최대 약 300 Gb/s에 도달했습니다.
향후 로드맵 및 가용성
2025년 7월 현재, Xet은 신규 사용자와 조직의 기본 설정입니다. Hugging Face는 이제 모든 사용자에게 Xet 접근을 확대하고 있으며, 여기에는 기존 모든 리포지토리를 LFS에서 Xet으로 자동 마이그레이션하는 것이 포함됩니다.
예정된 개발 사항은 다음과 같습니다:
- 청크 기반 지원 브라우저 기반 업로드/다운로드 및 Git을 위한 지원.
- 오픈소스화 Xet 프로토콜 및 전체 인프라 스택.
SUMMARY: Hugging Face는 AI 워크로드에 맞춰 확장하도록 설계된 콘텐츠 주소 지정 스토리지 시스템인 Xet으로 Git LFS에서 500,000개의 리포지토리와 20 PB의 데이터를 마이그레이션했습니다.
TITLE: Git LFS에서 Xet으로의 Hugging Face Hub 마이그레이션