Hugging Face가 저장 효율을 높이기 위해 콘텐츠 정의 청킹을 도입합니다
Content-Defined Chunking Foundations
콘텐츠 정의 청킹(CDC)은 데이터 자체를 기반으로 가변 크기의 청크로 파일을 나누어 중복 제거와 세밀한 업데이트를 가능하게 합니다. 롤링 해시 알고리즘이 바이트 시퀀스를 스캔하며, 해시가 사전 정의된 조건을 충족하면 청크 경계를 설정합니다. 동일한 청크는 동일한 해시를 생성하므로 콘텐츠 주소 저장소에 하나의 복사본만 저장되어 내장된 중복 제거를 제공합니다.
Handling Insertions and Deletions
파일이 변경되면 CDC는 변경되지 않은 청크가 이미 저장소에 존재하기 때문에 수정된 청크만 업로드 및 저장할 수 있습니다. 예를 들어, 반복되는 "transformers" 시퀀스에 "super" 문자열을 삽입하면 하나의 새로운 청크만 저장하면 되고, 기존의 두 개의 "transformers" 청크는 재사용됩니다.
Real-World Benchmark (CORD-19 Dataset)
CDC 기반 저장소(Xet)를 사용하면 50개의 증분 업데이트가 있는 CORD-19 데이터셋에 대해 Git LFS보다 저장 및 전송 비용이 감소했습니다. 평균 다운로드 시간은 51분에서 19분으로, 평균 업로드 시간은 47분에서 24분으로 감소했으며, 사용된 저장소는 8.9GB에서 3.52GB로 줄어들어 메트릭 전반에 걸쳐 일관되게 약 50% 개선을 보였습니다.
Implications for the Hugging Face Hub
허브 파일에 CDC를 적용하면 상당한 저장 공간 절감 효과를 볼 수 있습니다. openai-community/gpt2 저장소의 model.safetensors 파일 두 버전에 대해 Git LFS는 총 1.2GB가 필요하지만, Xet 기반 저장소는 645MB만 필요하여 53% 감소하며, 압축으로 추가로 10% 절감이 예상됩니다. 허브 전반에서 파인튜닝된 모델과 모델 체크포인트는 중복 제거 비율이 30%에서 85% 사이를 보이며, PyTorch 모델 체크포인트만 약 200TB를 차지하므로 50% 중복 제거 시 즉시 최대 100TB를 절약하고 thereafter 월 평균 7-8TB를 추가로 절약할 수 있습니다. 청크 수준 중복 제거는 수정된 청크만 전송되므로 업로드/다운로드 속도도 향상되어 사용자와 기계의 대기 시간이 줄어듭니다.
Future Work
Xet 팀은 허브를 위한 Xet 기반 저장소의 개념 증명(PoC)을 완료하고 있으며, 2025년 초에 일부 Xet 기반 저장소를 출시할 계획입니다. 향후 작업은 전 세계에 분산된 저장소 전반에 걸쳐 CDC를 확장하고, 네트워크 성능을 균형 있게 유지하며, 개인정보 경계를 관리하고, 청킹 알고리즘을 병렬화하는 데 중점을 둘 것입니다.