Hugging Face Xet-기반 저장소: 블록 수준 집계를 통한 허브 전송 가속화
Hugging Face는 xet-core와 hf_xet로 구동되는 새로운 청크 기반 중복 제거 시스템을 구현하여 일부 경우에 허브에서의 파일 업로드 및 다운로드 속도를 2-3배 가속화은 합니다. 이 시스템은 전통적인 파일 중심 전송에서 벗어나 데이터를 이동 및 저장하는 방식을 최적화하는 콘텐츠 주소 저장소(CAS) 모델로 이동하여 AI 빌더의 빠른 반복을 지원합니다.
블록 수준 집계를 통한 중복 제거 확장
순수 청크 기반 중복 제거는 허깅 페이스 허브(거의 2백만 개의 저장소에 걸쳐 약 45PB를 호스팅)에서 CAS에 수십억 개의 개별 항목을 생성하므로 확장 가능하지 않습니다. 평균적으로 약 64KB인 청크만 사용하는 단순한 접근 방식은 약 6900억 개의 청크를 초래하여 수백만 개의 개별 요청으로부터 지속 불가능한 네트워크 오버헤드를 초래하고, S3나 DynamoDB와 같은 서비스에서 메타데이터 관리에 대한 인프라 비용을 금지 수준으로 만듭니다.
이를 해결하기 위해 Hugging Face는 집계를 사용하여 통신 및 저장 전략이 청크 수에 1:1로 확장되지 않도록 합니다:
- Blocks: 중복 제거 후 데이터는 최대 64MB 크기의 블록으로 묶입니다. 이러한 블록은 콘텐츠 주소 방식을 유지하여 CAS 항목 총 수를 1,000배 줄입니다.
- Shards: Shards는 파일을 청크에 매핑하고それ들을 포함하는 블록을 참조합니다.これにより、システムはファイルの特定の変更された部分を特定し、CASに既に存在するチャンクへの転送をスキップすることができます。
키 청크와 공간 지역성을 이용한 전송 최적화
업로드 중에 각 청크마다 네트워크 쿼리를 수행하지 않도록 하기 위해 Hugging Face는 키 청크를 사용합니다. 키 청크는 청크 해시를 기반으로 한 모듈로 조건에 따라 선택된 모든 청크의 0.1% 부분 집합입니다.
이러한 키 청크와 그들이 속한 샤드의 전역 인덱스를 유지함으로써, 키 청크가 쿼리될 때 관련 샤드를 검색할 수 있습니다. 이는 동일한 샤드에 참조된 청크가 유사할 가능성이 높기 때문에 공간 지역성을 활용하는 메커니즘입니다. 이 메커니즘은 청크가 이미 업로드되었는지 확인하기 위해 필요한 네트워크 및 데이터베이스 요청 수를 크게 줄입니다.
양자화 모델에 대한 성능 영향
양자화 모델(예: .gguf 파일)은 가중치 행렬 값을 더 작은 정수 범위로 제한하여 다양한 양자화 변형(예: Q4_K, Q3_K, Q5_K) 간에 높은 반복과 중복을 생성하는 양자화의 특성으로 인해 이 시스템의 주요 수혜자입니다.
bartowski/gemma-2-9b-it-GGUF 저장소를 사용한 실제 테스트에서, 총 191GB의 29가지 양자화를 포함하고 있는 이 저장소에서 Xet-기반 접근 방식은 상당한 효율성 향상을 보여주었습니다:
- Storage Reduction: 저장소는 1,515개의 고유 블록만 저장하여 191GB에서 약 97GB로 줄어들었습니다(약 94GB 절약).
- Upload Speed: 전송 속도가 50MB/s일 때 업로드 시간이 509분에서 258분으로 감소하여 거의 2배의 속도 향상을 나타냈습니다.
- Download Efficiency: 로컬 청크 캐싱은 파일이 업데이트되거나 새로운 양자화가 추가될 때 변경되지 않은 청크만 다운로드하도록 보장하여, 전체 파일을 다운로드해야 하는 파일 기반 접근 방식과 다릅니다.
가용성
Hugging Face는 앞으로 몇 주 및 몇 달 동안 첫 번째 Xet-기반 저장소를 출시하여 허브의 모든 빌더에게 파일 전송을 '보이지 않게' 만드는 것을 목표로 합니다.