DeepSeekのFire-Flyer File System
(github.com/deepseek-ai)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リポジトリをクローンしてソースコードを確認できます。
問題の報告
- 問題を報告するには、GitHub Issuesページを参照してください。
1件のコメント
Hacker Newsの意見
この設計はもともとここで発表されていた: リンク
3FSは、AI学習中に計算ノードでサンプルデータを一括読み込みするシナリオで使われる
3FSはLinuxベースのAIOとio_uringインターフェースを使ってサンプル読み込みを完了する
DeepSeekとOpenAI/Anthropicの違いは、実務家と学者の違いの一つでもある
分散ファイルシステムは最も厄介なソフトウェアの一つと見なされている
関連研究論文: リンク
FUSEベースの設計でどうやってその性能を得ているのか気になった
OpenAIなどもシステムに深く関与しているが、他ではこうした細やかさを見るのは難しい
彼らは間違いなく生産的だ
現在人気のあるシステムが、どこでどのように不足しているのかが明確ではない
K8sのようなオーケストレーターへ移植することに利点があるのか気になる
NIH症候群ではないと納得させられる人がいるのか気になる