허깅 페이스 Xet 스토리지 통합
허깅 페이스는 Xet 스토리지를 허브에 통합하여, Git LFS에서 첫 번째 모델 및 데이터셋 저장소 세트를 마이그레이션했습니다. 이 전환은 바이트 수준 중복 제거를 가능하게 하는 콘텐츠 정의 청킹(CDC)을 도입하여, 대용량 파일을 업데이트하는 데 필요한 시간과 대역폭을 크게 줄였습니다.
Xet 스토리지 아키텍처
Xet 스토리지는 콘텐츠 정의 청킹(CDC)을 사용하여 파일 수준 중복 제거를 바이트 수준 중복 제거로 대체합니다. Git LFS는 대용량 파일의任何 변경 사항을 전체 파일을 다시 업로드해야 하는 요구 사항으로 취급하지만, Xet은 데이터를 약 64KB 청크로 분할합니다. 변경된 청크만 전송됩니다.
예를 들어, 5GB SQLite 데이터베이스에 1MB의 데이터를 추가하는 경우, LFS에서는 전체 5GB를 다시 업로드해야 하지만, Xet에서는 새로운 데이터만 푸시됩니다. 내부 테스트에서 이 방법은 50Mb/s에서 업로드 시간을 13분에서 0.1초로 줄였습니다.
시스템 구성 요소
- Xet-aware Client: 데이터를 약 64KB 청크로 분할하고, 로컬에서 동일한 청크를 중복 제거하며, 업로드 전에 약 64MB 블록으로 집계합니다.
- Hugging Face Hub: 라우팅, 인증, 보안 보장을 관리합니다.
- Content Addressed Store (CAS): 전송에 대한 청크 기반 중복 제거를 적용합니다. 비-Xet 클라이언트에 대한 하위 호환성을 보장하기 위해 전통적인 LFS 서버처럼 작동하는 LFS Bridge를 포함합니다.
- Amazon S3: 최종 지속성 계층으로 작동하며, 블록(파일 내용)과 샤드(재구성 메타데이터)를 저장합니다.
생산 마이그레이션 및 검증
2025년 2월 20일, 허깅 페이스는 대상 저장소의 4.5TB 데이터를 Xet 스토리지로 마이그레이션했습니다. 이 마이그레이션으로 허브 전체 다운로드 트래픽의 약 6%가 Xet 인프라로 이동하여, 시스템의 신뢰성과 성능을 실제 환경에서 검증할 수 있는 기반을 제공했습니다.
기술적 과제 및 최적화
마이그레이션 후 분석에서 두 가지 주요 기술적 병목 현상이 아키텍처 업데이트를 통해 해결되었습니다:
다운로드 오버헤드 및 블록 포맷
초기 메트릭에 따르면 Content Addressed Store (CAS)는 클라이언트에 반환하는 데이터보다 S3에서 4배 더 많은 데이터를 다운로드했습니다. 이는 Xet의 블록 경계와 맞지 않는 10MB 범위의 hf_transfer 요청으로 인해 발생했습니다. 블록 포맷에 압축되지 않은 청크 길이가 없어서, CAS는 요청된 데이터를 찾기 위해 블록 전체를 처음부터 스트리밍해야 했습니다.
Solution: 허깅 페이스는 청크 길이 메타데이터를 저장하도록 블록 포맷을 업데이트했습니다.これにより CAS는 각 요청에 필요한 특정 데이터만 다운로드할 수 있게 되어 GET 지연 시간이 약 35% 감소하고 다운로드-전송 데이터 비율이 균형을 이루게 되었습니다.
Pod 부하 불균형
팀은 CAS 클러스터의 einzelne pods가 수백 개의 활성 업로드를 처리하는 반면 다른 pods는 유휴 상태인 예기치 않은 부하 스파이크를 관찰했습니다. 이는 검증 중에 임시 파일에 대한 쓰기를 OS 페이지 캐시가 버퍼링하면서 fsync를 호출하지 않아 발생했습니다. 높은 업로드 볼륨은 메모리 압력을 일으키고 AWS EBS 블록 스토리지에서 처리량 제한을 유발하여 지연과 백로그의 순환을 만들었습니다.
Solution: 팀은 각 기계가 허용하는 동시 업로드 수에 제한을 두었습니다. pod가 제한에 도달하면 요청은 클러스터의 다른 pod로 푸시되며, 모든 pod가 포화 상태이면 자동 스케일링 정책이 트리거됩니다.
사용자를 위한 구현
사용자는 대기열에 참여하여 Xet 지원 스토리지에 접근할 수 있습니다. 수락되면 새로운 저장소는 자동으로 Xet을 사용하고, 기존 저장소는 마이그레이션됩니다.
- Tooling:
hf_xetPython 패키지가huggingface_hub에 통합되고 있습니다.transformers또는datasets사용자는 환경에hf_xet를 설치하여 이점을 활용할 수 있습니다. - Compatibility: 레거시 클라이언트는 LFS Bridge를 통해 호환성을 유지하지만, 전체 성능 향상을 달성하려면
hf_xet로 업그레이드가 필요합니다.
Sources
- OriginalXet is on the Hub