허깅페이스 허브 스토리지 재아키텍처
허깅페이스는 허브의 스토리지 백엔드를 재아키텍처하여 불투명 블롭 전송을 콘텐츠 주소 저장소(CAS)로 대체하고 있습니다. 이 변화는 플랫폼이 파일을 바이트 수준에서 분석할 수 있게 하여, 대용량 모델 가중치 및 데이터 세트의 전송을 크게 개선하는 중복 제거 및 압축을 가능하게 합니다.
콘텐츠 주소 저장소(CAS)로의 전환
허깅페이스는 AWS CloudFront의 50GB 파일 크기 제한과 파일을 불투명 블롭으로 취급하는 비효율성을 극복하기 위해 '덤 읽기와 스마트 쓰기' 철학을 기반으로 한 커스텀 프로토콜을 구현하고 있습니다.
읽기 경로(덤 읽기)
높은 처리량과 낮은 지연을 유지하기 위해 읽기 경로는 간단하게 설계되었습니다. 파일 요청은 필요한 재구성 정보를 제공하는 CAS 서버로 라우팅됩니다. 실제 데이터는 us-east-1 지역의 S3 버킷에 저장된まま 유지되며, 계속해서 AWS CloudFront를 통해 CDN으로 제공됩니다.
쓰기 경로(스마트 쓰기)
쓰기 경로는 전체 파일이 아닌 청크 단위로 작동하여 속도와 보안을 최적화합니다. 사용자가 데이터를 업로드할 때, CAS 서버는 기존 청크를 식별하고 클라이언트(예: huggingface_hub)에게 새로운 고유 청크만 전송하도록 지시합니다. 이러한 청크는 S3 백업 스토어에 업로드되기 전에 CAS에서 검증됩니다.
기술적 최적화 및 기능
파일을 바이트 수준에서 관리함으로써, 허깅페이스는 업로드 시간을 줄이기 위해 형식별 최적화를 적용할 수 있습니다.
- Tensor Files: 팀은 텐서 파일(예: Safetensors)에 대한 압축을 조사 중이며,これにより 업로드 속도가 잠재적으로 10-25% 감소할 수 있습니다.
- Parquet Files: 아키텍처는 Parquet 파일의 중복 제거를 향상시킵니다.
- Enterprise Security: 파일 전송을 위한 컨트롤 플레인을 삽입함으로써 플랫폼은 악성 또는 잘못된 데이터 업로드를 방지하고 인프라 팀에 대한 상세한 감사 로그 및 원격 분석을 제공합니다.
글로벌 인프라 설계
지연을 최소화하고 비용을 균형 있게 하기 위해, 허깅페이스는 88개국의 업로드 트래픽 분석을 기반으로 세 가지 전략적 AWS 리전에 CAS 노드를 배포하고 있습니다.
us-east-1(북미 및 남미): 4 노드eu-west-3(유럽, 중동 및 아프리카): 4 노드ap-southeast-1(아시아 및 오세아니아): 2 노드
이 배포는 업로드_volume의vast majority를 담당하는 지역을 대상으로 하며, 미국과 유럽이 업로드 바이트의 78.4%를 차지하고 아시아가 21.6%를 차지합니다.
구현 로드맵
허깅페이스는 2024년 말까지 단일 CAS를 us-east-1에 배치하여 새로운 인프라를 프로덕션으로 이동할 예정이며, 단계별 접근 방식을 따를 것입니다.
- 내부 벤치마킹: 새로운 시스템에 내부 리포지토리를 복제하여 전송 성능을 테스트합니다.
- 지역 확장: 추가 PoP(존재 지점)에 CAS를 복제합니다.
- 완전 통합: 2025년에 스토리지 백엔드 전환을 완료합니다.