Hugging Face Hub의 Storage Buckets: ML 아티팩트 관리를 위한 혁신적 저장소
요약
Storage Buckets는 S3와 유사한 뮤터블(mutable) 객체 스토리지를 제공하며, 특히 머신러닝 (ML) 아티팩트 관리에 최적화되었습니다. 기존의 Git 기반 버전 관리 시스템이 체크포인트나 데이터 파이프라인처럼 지속적으로 변화하는 콘텐츠를 다루기에는 부적합하다는 문제점을 해결합니다. Xet이라는 청크 기반 백엔드를 활용하여 중복된 데이터를 효율적으로 처리하고, 전송 속도와 비용을 절감하며, 재현 가능한 대규모 ML 워크로드를 구축할 수 있게 합니다.
핵심 포인트
- Storage Buckets는 사용자/조직 네임스페이스 아래에 위치하는 비(非)버전 관리형 컨테이너로, hf://buckets/username/my-training-bucket와 같은 핸들로 접근 가능합니다.
- Xet 기반의 청크 분할 및 중복 제거(Deduplication) 기능을 통해, 유사한 데이터셋이나 연속적인 모델 체크포인트 저장 시 대역폭과 비용을 획기적으로 절감합니다. (Enterprise 고객 대상)
- Pre-warming 기능을 지원하여, 컴퓨팅 리전 근처에 데이터를 미리 배치함으로써 분산 학습 및 대규모 파이프라인의 처리량(throughput)을 극대화할 수 있습니다.
- CLI 명령어(`hf buckets sync`, `hf buckets cp`) 외에도 Python (`huggingface_hub` v1.5.0+) 및 JavaScript를 통해 API로 통합 가능하며, fsspec 표준을 지원하여 Pandas, Polars 등 다양한 라이브러리에서 직접 접근할 수 있습니다.
Storage Buckets는 머신러닝(ML) 워크로드의 복잡하고 변화무쌍한 아티팩트 저장 요구사항에 맞춰 설계된 혁신적인 객체 스토리지 솔루션입니다. 기존의 Git과 같은 버전 관리 시스템은 학습 체크포인트, 반복적으로 처리되는 데이터 파이프라인 결과물, 에이전트 추적 기록(Agent traces) 등 지속적으로 쓰기/덮어쓰기가 발생하는 콘텐츠를 다룰 때 한계에 부딪힙니다.
💡 핵심 기술: Xet 기반의 효율성 증대
Buckets는 Hugging Face의 청크 기반 스토리지 백엔드인 Xet을 기반으로 구축되었습니다. 이 점이 가장 중요합니다. 일반적인 파일 시스템은 콘텐츠를 거대한 단일 블롭(monolithic blob)으로 취급하지만, Xet은 모든 콘텐츠를 작은 '청크(chunk)'로 분해하고 이를 전역적으로 중복 제거(deduplication)합니다.
- 효율성: 데이터셋의 원본과 처리된 버전이 유사하거나, 모델 체크포인트에서 큰 부분이 고정되어 있을 경우, Xet은 이미 존재하는 청크는 건너뛰고 새로운 청크만 전송합니다. 이는 대역폭(bandwidth) 절감, 빠른 전송 속도, 그리고 비용 효율적인 스토리지를 의미합니다.
- 비용 최적화: Enterprise 고객의 경우, 과금 기준이 중복 제거된 저장 공간을 기반으로 하므로, 공유되는 청크가 많을수록 실제 청구되는 사용량이 줄어듭니다.
🚀 ML 워크로드에 최적화된 기능들
- Pre-warming: 분산 학습이나 대규모 파이프라인에서 데이터 위치는 처리량(throughput)에 직접적인 영향을 미칩니다. Pre-warming 기능을 사용하면, 컴퓨팅 자원이 실행되는 클라우드 리전 근처로 필요한 데이터를 미리 가져와 놓을 수 있습니다. 이를 통해 매번 읽기 작업 시 여러 리전을 거쳐 이동하는 오버헤드를 제거하고 빠른 접근성을 보장합니다. (AWS 및 GCP 등 주요 클라우드 파트너십 진행 중)
- 접근성 및 사용 편의성: Buckets는 Hub 아래에 위치하며,
hf://buckets/username/my-training-bucket와 같은 핸들로 프로그램적으로 접근할 수 있습니다.
🛠️ 통합 방법 (CLI & API)
- CLI 활용:
hf buckets create,hf buckets sync ./local_path hf://...명령어를 사용하여 로컬 디렉토리를 Bucket으로 동기화(sync)할 수 있습니다. 대용량 전송 시에는--dry-run옵션이나--plan기능을 통해 사전에 계획을 확인하고 적용하는 것이 가능합니다. - Python 통합:
huggingface_hub라이브러리 (v1.5.0+)를 통해 Python 코드로 Bucket 생성, 동기화, 목록 조회 등을 수행할 수 있습니다. 또한, fsspec 호환성을 지원하여 Pandas나 Polars 같은 데이터 분석 라이브러리가hf://경로를 통해 데이터를 읽고 쓰는 것이 매우 직관적입니다. - 범용성: JavaScript (
@huggingface/hub) 및 fsspec 표준을 따르므로, 다양한 환경의 서비스(Node.js 웹 앱 등)에 쉽게 통합할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Hugging Face Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기