huggingface/xet-core

xet client tech, used in huggingface_hub

해결하는 문제

대규모 머신러닝 파일(모델, 데이터셋)은 공통 코드, 반복 매개변수, 중복 데이터 등 동일한 청크를 공유하는 경우가 많습니다. 중복 제거가 없으면 모든 업로드 또는 다운로드 시 이러한 중복 청크가 다시 전송되고 저장되어 대역폭과 저장 공간이 낭비됩니다. xet-core는 파일을 청크로 분할하고 중복을 식별하여 이러한 낭비를 제거하므로 고유한 청크만 전송되고 저장됩니다.

작동 방식

xet-core는 파일을 청크로 나누고 각 청크를 MerkleHash로 해시합니다. Hugging Face Hub의 콘텐츠 주소 지정 저장소(CAS) 백엔드와 통신하여 어떤 청크가 이미 존재하는지 확인한 다음 새 청크만 업로드합니다. 다운로드 시 로컬 디스크 캐시를 사용하여 동일한 청크를 두 번 가져오지 않도록 하면서 청크에서 파일을 재구성합니다. 속도를 위해 Rust로 작성되었으며 huggingface_hub가 원활하게 사용할 수 있도록 Python 바인딩을 제공합니다. 이 라이브러리에는 Git LFS 호환 명령줄 도구와 다양한 계층(클라이언트, 데이터 파이프라인, 핵심 구조, 런타임)을 위한 여러 Rust 크레이트도 포함되어 있습니다.

대상 사용자

huggingface_hub를 사용하여 대규모 모델과 데이터셋을 업로드하거나 다운로드하는 최종 사용자. 그들은 xet-core와 직접 상호 작용하지 않으며 huggingface_hub가 내부적으로 사용합니다. huggingface_hub 또는 유사한 스토리지 통합의 개발자는 Rust 크레이트를 직접 사용할 수도 있습니다.

주요 기능

  • 청크 기반 중복 제거 는 파일 간 중복 데이터 전송 및 저장을 방지합니다.
  • 로컬 디스크 캐시 는 이전에 다운로드한 청크를 재사용하여 반복 작업 속도를 높입니다.
  • Python 바인딩 은 huggingface_hub 내에서 바로 사용할 수 있게 합니다(hf-xet PyPI 패키지 통해).
  • Hugging Face Hub의 CAS 서버와의 동시 네트워크 통신 으로 빠른 전송을 지원합니다.
  • Git LFS 호환성 은 git-xet CLI 도구를 통해 제공됩니다.
  • 개인정보 보호 중심 텔레메트리 는 바이트 수와 성능 지표만 보고하며 파일 이름, 경로, 해시, 사용자 ID는 포함하지 않으며 비활성화할 수 있습니다.

관련