DeepSeek의 Fire-Flyer File System

2 weeks ago 4

Fire-Flyer 파일 시스템

Fire-Flyer 파일 시스템(3FS)은 AI 학습 및 추론 작업의 문제를 해결하기 위해 설계된 고성능 분산 파일 시스템임. 최신 SSD와 RDMA 네트워크를 활용하여 분산 애플리케이션 개발을 단순화하는 공유 스토리지 계층을 제공함.

성능 및 사용성

  • 분리된 아키텍처: 수천 개의 SSD와 수백 개의 스토리지 노드의 네트워크 대역폭을 결합하여 애플리케이션이 지역성에 구애받지 않고 스토리지 리소스에 접근할 수 있게 함.
  • 강력한 일관성: Chain Replication with Apportioned Queries (CRAQ)를 구현하여 강력한 일관성을 제공하며, 애플리케이션 코드를 단순하고 이해하기 쉽게 만듦.
  • 파일 인터페이스: 트랜잭션 키-값 저장소(예: FoundationDB)를 기반으로 하는 상태 비저장 메타데이터 서비스를 개발함. 파일 인터페이스는 널리 알려져 있으며 어디서나 사용됨. 새로운 스토리지 API를 배울 필요가 없음.

다양한 작업 부하

  • 데이터 준비: 데이터 분석 파이프라인의 출력을 계층적 디렉토리 구조로 조직하고 대량의 중간 출력을 효율적으로 관리함.
  • 데이터로더: 컴퓨트 노드 전반에 걸쳐 학습 샘플에 대한 무작위 접근을 가능하게 하여 데이터셋의 사전 로드나 셔플링이 필요하지 않음.
  • 체크포인팅: 대규모 학습을 위한 고속 병렬 체크포인팅을 지원함.
  • KVCache for Inference: DRAM 기반 캐싱에 대한 비용 효율적인 대안을 제공하며, 높은 처리량과 상당히 큰 용량을 제공함.

성능

1. 피크 처리량

  • 3FS 클러스터의 대규모 읽기 스트레스 테스트에서 약 6.6 TiB/s의 최종 집계 읽기 처리량을 달성함.

2. GraySort

  • 대규모 데이터셋의 정렬 성능을 측정하는 GraySort 벤치마크를 사용하여 평가함. 110.5 TiB의 데이터를 8,192개의 파티션으로 정렬하는 데 30분 14초가 소요되었으며, 평균 처리량은 3.66 TiB/분을 달성함.

3. KVCache

  • LLM 추론 프로세스를 최적화하기 위해 KVCache 기술을 사용함. 디코더 레이어의 이전 토큰의 키와 값 벡터를 캐싱하여 중복 계산을 피함. 피크 처리량은 최대 40 GiB/s에 도달함.

문서

  • 설계 노트
  • 설정 가이드
  • USRBIO API 참조
  • P 사양

소스 코드 확인

  • GitHub에서 3FS 저장소를 복제하여 소스 코드를 확인할 수 있음.

문제 보고

Read Entire Article