허깅페이스 허브 스토리지 버킷 심층 분석

허깅페이스 허브 스토리지 버킷 소개

최근 허깅페이스(Hugging Face)는 버킷 스토리지를 새롭게 선보였습니다. 허깅페이스 허브는 모델 및 데이터셋을 공유하고 협업하는 데 매우 중요한 플랫폼으로 자리 잡았습니다. 하지만 딥러닝 모델의 훈련 과정에서는 체크포인트, 옵티마이저 상태, 처리된 데이터 조각 등과 같이 빈번하게 변경되고 버전 관리가 필요하지 않은 중간 파일들이 대량으로 생성됩니다. 이러한 파일들은 기존의 Git 기반 저장 방식으로는 관리하기에 적합하지 않았습니다. 허깅페이스는 이러한 문제점을 인식하고 버킷 스토리지를 개발하여 생산성 향상과 효율적인 데이터 관리를 지원하고자 합니다.

버킷 스토리지는 수정 가능하며 S3와 유사한 객체 스토리지를 제공하며, 허브에서 브라우징하고 Python 스크립트를 통해 활용할 수 있습니다. 특히 Xet 기술을 기반으로 하여 파일 간에 중복되는 내용이 많은 ML 아티팩트를 효율적으로 관리할 수 있다는 장점을 가지고 있습니다. 이를 통해 대역폭 감소, 빠른 전송 속도, 효율적인 저장 공간 활용이 가능하며, 엔터프라이즈 고객의 경우 중복 제거를 통해 과금 규모를 줄일 수 있습니다.

왜 버킷 스토리지인가?

훈련 클러스터가 체크포인트와 옵티마이저 상태를 지속적으로 기록하고, 데이터 파이프라인이 원시 데이터를 반복적으로 처리하고, 에이전트가 추적 정보, 메모리 및 공유 지식 그래프를 저장할 때 Git은 최적의 추상화가 아닐 수 있습니다. 버킷 스토리지는 이러한 요구 사항을 해결하기 위해 설계되었습니다. 버킷은 버전이 없는 저장 컨테이너로, 사용자 또는 조직 네임스페이스 하위에 존재하며 표준 허깅페이스 권한을 따르고, 공개 또는 비공개로 설정할 수 있으며, 브라우저에서 열 수 있는 페이지를 가지고, hf://buckets/username/my-training-bucket와 같은 핸들을 사용하여 프로그래밍 방식으로 주소 지정할 수 있습니다.

Xet 기술의 중요성

버킷 스토리지는 Hugging Face의 척 단위 저장 백엔드인 Xet을 기반으로 구축되었으며, 이는 간과할 수 없는 중요한 부분입니다. Xet은 파일을 단일 블롭으로 처리하는 대신 콘텐츠를 청크로 나누고 이들 간에 중복 제거를 수행합니다. 처리된 데이터 세트를 원시 데이터 세트와 거의 유사하게 업로드하면 많은 청크가 이미 존재합니다. 모델의 대부분이 동결된 후속 체크포인트를 저장하면 동일한 상황이 발생합니다. 이렇게 하면 대역폭이 줄어들고 전송 속도가 빨라지며 저장 공간을 보다 효율적으로 사용할 수 있습니다.

이러한 특성은 ML 워크로드에 자연스럽게 적합합니다. 훈련 파이프라인은 지속적으로 관련 아티팩트 패밀리를 생성합니다. 원시 및 처리된 데이터, 후속 체크포인트, 에이전트 추적 및 파생 요약이 있으며 Xet은 이러한 중복을 활용하도록 설계되었습니다. 엔터프라이즈 고객의 경우 청구는 중복 제거된 저장 공간을 기준으로 하므로 공유 청크는 직접적으로 청구되는 규모를 줄입니다. 중복 제거는 속도와 비용 모두에 도움이 됩니다. 버킷 스토리지는 이러한 기술적 이점을 제공합니다.

데이터를 계산에 가깝게 이동시키기: 프리워밍

버킷 스토리지는 허브에 존재하며 기본적으로 글로벌 스토리지를 사용합니다. 그러나 모든 워크로드가 언제 어디에 있는지에 관계없이 데이터를 가져올 여유가 없으므로 분산 훈련 및 대규모 파이프라인의 경우 저장 위치는 처리량에 직접적인 영향을 미칩니다. 프리워밍을 사용하면 핫 데이터를 컴퓨트가 실행되는 클라우드 공급자 및 영역에 더 가까이 가져갈 수 있습니다. 데이터를 읽을 때마다 지역 간에 데이터를 이동시키는 대신 필요한 위치를 선언하면 버킷 스토리지가 작업이 시작될 때 데이터를 이미 준비해 둡니다. 이것은 특히 대규모 데이터 세트 또는 체크포인트에 빠른 액세스가 필요한 훈련 클러스터와 파이프라인의 서로 다른 부분에서 서로 다른 클라우드에서 실행되는 멀티 리전 설정에서 유용합니다. 현재 AWS 및 GCP와 파트너십을 맺고 있으며 앞으로 더 많은 클라우드 공급자가 추가될 예정입니다.

시작하기

hf CLI를 사용하여 2분 이내에 버킷을 설정하고 실행할 수 있습니다. 먼저 다음 명령어를 통해 설치하고 로그인합니다:

curl -LsSf https://hf.co/cli/install.sh | bash
hf auth login

프로젝트에 대한 버킷을 만듭니다:

hf buckets create my-training-bucket --private

훈련 작업이 ./checkpoints 로컬 디렉터리에 체크포인트를 쓰는 경우 다음 명령어를 사용하여 해당 디렉터리를 버킷에 동기화합니다:

hf buckets sync ./checkpoints hf://buckets/username/my-training-bucket/checkpoints

대규모 전송의 경우, 먼저 실행 내용을 확인하는 것이 좋습니다. –dry-run 옵션은 실제 동작을 수행하지 않고 계획만 출력합니다:

hf buckets sync ./checkpoints hf://buckets/username/my-training-bucket/checkpoints --dry-run

계획을 파일에 저장하여 검토하고 나중에 적용할 수도 있습니다:

hf buckets sync ./checkpoints hf://buckets/username/my-training-bucket/checkpoints --plan sync-plan.jsonl
hf buckets sync --apply sync-plan.jsonl

작업이 완료되면 다음 명령어를 통해 버킷을 검사합니다:

hf buckets list username/my-training-bucket -h

또는 브라우저에서 다음 주소로 직접 액세스할 수 있습니다: https://huggingface.co/buckets/username/my-training-bucket. 버킷 스토리지를 활용하여 효율적인 데이터 관리와 협업을 경험해보세요.

Python에서 버킷 사용

위의 모든 작업은 v1.5.0부터 사용할 수 있는 huggingface_hub의 Python API를 통해 수행할 수 있습니다. API는 동일한 패턴을 따릅니다: 생성, 동기화, 검사. 다음은 예제 코드입니다:

from huggingface_hub import create_bucket, list_bucket_tree, sync_bucket

create_bucket("my-training-bucket", private=True, exist_ok=True)

sync_bucket(
    "./checkpoints",
    "hf://buckets/username/my-training-bucket/checkpoints",
)

for item in list_bucket_tree(
    "username/my-training-bucket",
    prefix="checkpoints",
    recursive=True,
):
    print(item.path, item.size)

파일 시스템 통합

버킷 스토리지는 또한 huggingface_hub의 fsspec 호환 파일 시스템인 HfFileSystem을 통해 작동합니다. 즉, 표준 파일 시스템 작업을 사용하여 버킷 콘텐츠를 나열, 읽기, 쓰기 및 글로빙할 수 있습니다. fsspec을 지원하는 모든 라이브러리는 추가 설정 없이 버킷 스토리지에 직접 액세스할 수 있습니다. 예를 들어, pandas, Polars, Dask와 같은 라이브러리는 hf:// 경로를 사용하여 버킷 스토리지에서 직접 읽고 쓸 수 있습니다.

버킷에서 버전 관리된 리포지토리로

버킷 스토리지는 작업 중인 파일이 있는 빠른 수정 가능한 공간입니다. 무언가가 안정적인 제공 가능한 항목이 되면 일반적으로 버전 관리된 모델 또는 데이터 세트 리포지토리에 속합니다. 향후 계획에서는 버킷 스토리지와 리포지토리 간의 직접 전송을 지원하여 최종 체크포인트 가중치를 모델 리포지토리로 홍보하거나 파이프라인이 완료되면 처리된 조각을 데이터 세트 리포지토리로 커밋할 수 있습니다. 작업 계층과 게시 계층은 분리되지만 하나의 Hub-네이티브 워크플로에 적합합니다.

출시 파트너의 신뢰

모두에게 버킷을 공개하기 전에 작은 그룹의 출시 파트너와 비공개 베타를 실행했습니다. Jasper, Arcee, IBM, PixAI에 감사드립니다. 초기 버전을 테스트하고 버그를 발견하고 피드백을 공유하여 이 기능의 모양을 직접 형성했습니다.

결론 및 자료

버킷 스토리지는 허브에 누락된 저장 계층을 제공합니다. 체크포인트, 처리된 데이터, 에이전트 추적, 로그 등 최종 결과물 이전에 유용한 모든 것을 위한 Hub-네이티브 장소를 제공합니다. Xet을 기반으로 구축되었으므로 기존의 Git을 강제하는 것보다 사용하기 쉽고 AI 시스템이 지속적으로 생성하는 관련 아티팩트 유형에 대해 더 효율적입니다. 즉, 대역폭 감소, 빠른 전송 속도, 엔터프라이즈 계획의 경우 중복된 규모로 청구할 수 있습니다. 기존 허브 사용자는 하나의 장소에서 더 많은 워크플로를 유지할 수 있습니다. S3 스타일 스토리지를 사용하는 경우 허브에서 최종 게시에 대한 명확한 경로를 통해 친숙한 모델을 제공합니다.

버킷 스토리지는 기존 허브 저장 계획에 포함되어 있습니다. 무료 계정은 시작할 수 있는 저장 공간을 제공하며 PRO 및 엔터프라이즈 계획은 더 높은 제한을 제공합니다. 자세한 내용은 저장 페이지를 참조하세요.

`)

심층 분석 및 시사점

Array

원문 출처: Introducing Storage Buckets on the Hugging Face Hub

OpenAI, 거버넌스 개편 및 250억 달러 투자로 AI 안전망 구축AI 뉴스 & 트렌드

OpenAI, 거버넌스 개편 및 250억 달러 투자로 AI 안전망 구축

OpenAI의 거버넌스 개편 및 250억 달러 투자: AI 시대의 새로운 지평을 열다 인공지능(AI) 기술의 발전은…
2026년 03월 07일 Read More
로봇 AI를 임베디드 플랫폼에 적용하다: 데이터셋 기록, VLA 미세 조정 및 온디바이스 최적화AI 뉴스 & 트렌드

로봇 AI를 임베디드 플랫폼에 적용하다: 데이터셋 기록, VLA 미세 조정 및 온디바이스 최적화

로봇 AI를 임베디드 플랫폼에 적용하다: 데이터셋 기록, VLA 미세 조정 및 온디바이스 최적화 로봇 AI를…
2026년 03월 08일 Read More
NVIDIA의 오픈 데이터 구축 방식: AI 개발을 위한 협력AI 뉴스 & 트렌드

NVIDIA의 오픈 데이터 구축 방식: AI 개발을 위한 협력

인공지능(AI) 기술의 발전은 모델의 성능과 효율성에 초점을 맞추는 경향이 있습니다. 하지만 AI 모델의 동작 방식은…
2026년 03월 10일 Read More