DeepSeekオープンソースウィークの最終日、DeepSeekはV3/R1モデルの全ライフサイクルデータアクセスニーズを支えるコアインフラストラクチャ——Fire-Flyer File System(3FS)をオープンソースにしました。また、その上に構築されたSmallpondデータ処理フレームワークもあります。3FSは、現代のSSDとRDMAネットワークの全帯域幅を十分に活用する並列ファイルシステムで、AIトレーニングと推論ワークロードの課題を解決するために設計され、高性能、強一貫性、汎用ファイルインターフェースなどの特徴を持ち、AIプロジェクトのパフォーマンスと効率を大幅に向上させることができます。
3FSのコア機能
パフォーマンスと可用性
- 分離型アーキテクチャ:3FSはディサグリゲートアーキテクチャを採用し、数千のSSDと数百のストレージノードのネットワーク帯域幅を組み合わせることで、アプリケーションが場所に制限されずにストレージリソースにアクセスできるようにし、高性能なデータアクセスを実現します。
- 強一貫性:チェーンレプリケーションと割り当てクエリ(CRAQ)プロトコルを実装することで、3FSはデータの強一貫性を保証し、アプリケーションの開発複雑性を大幅に簡素化します。
- 汎用ファイルインターフェース:3FSは、トランザクショナルキーバリューストア(FoundationDBなど)を基にしたステートレスメタデータサービスを提供し、汎用のファイルインターフェースを使用します。ユーザーは新しいストレージAPIを学ぶ必要がなく、使用のハードルを下げます。
多様なワークロードのサポート
- データ準備:3FSは、データ分析パイプラインの出力を効率的に組織し、大量の中間結果を管理することができ、AIトレーニングを強力にサポートします。
- データロード:計算ノード間のトレーニングサンプルのランダムアクセスをサポートし、データセットのプリフェッチやシャッフルの必要をなくし、データロードの効率を高めます。
- チェックポイントの保存:大規模トレーニングに高スループットの並列チェックポイント保存機能を提供し、トレーニングプロセスの安定性和信頼性を確保します。
- 推論KVCache:メモリキャッシュよりもコスト効果の高い代替手段を提供し、高スループットと大容量を備え、推論タスクのパフォーマンスを最適化します。
3FSのパフォーマンス
ピークスループット
180のストレージノードからなる大規模な3FSクラスターで、各ノードは2×200Gbps InfiniBandNICと16個の14TiB NVMe SSDを装備し、約500+クライアントノードで読み取り負荷テストを行った(各クライアントは1x200Gbps InfiniBandNICがある)。最終的に、集約読み取りスループットは約6.6 TiB/sに達し、トレーニングジョブのバックグラウンドトラフィック下でもこのパフォーマンスは依然として安定しています。
GraySort ベンチマークテスト
DeepSeekは、GraySortベンチマークテストに3FSベースのSmallpondを使用しました。これは、大規模データソートパフォーマンスを測定する標準テストです。テストクラスターは、25のストレージノード(各ノードに2つのNUMAドメイン、各NUMAに1つのストレージサービス、2×400GbpsのNIC)と50の計算ノード(各ノードに2つのNUMAドメイン、192つの物理コア、2.2 TiBのRAM、1×200GbpsのNIC)で構成されています。110.5 TiBのデータを8,192つのパーティションに分割してソートするのに30分14秒かかり、平均スループットは3.66 TiB/分に達しました。
KVCacheのパフォーマンス
KVCacheは、LLM推論プロセスを最適化するための关键技术です。これにより、デコーダーレイヤーで以前のトークンのキーと値のベクトルをキャッシュして、冗長な計算を避けることができます。3FSのKVCache実装は、顕著なパフォーマンス向上を提供し、すべてのKVCacheクライアントの読み取りスループットのピーク値は40 GiB/sに達し、効率的なガベージコレクションメカニズムを備えており、大規模な並列処理をサポートします。
3FSの使用
ソースコードの取得
# GitHubから3FSリポジトリをクローン
git clone https://github.com/deepseek-ai/3fs
# サブモジュールを初期化
cd 3fs
git submodule update --init --recursive
./patches/apply.sh
依存関係のインストール
# Ubuntu 20.04の場合
apt install cmake libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev libprocps-dev libdwarf-dev libunwind-dev \
libaio-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev clang-format-14 clang-14 clang-tidy-14 lld-14 \
libgoogle-perftools-dev google-perftools libssl-dev ccache libclang-rt-14-dev gcc-10 g++-10 libboost1.71-all-dev
# Ubuntu 22.04の場合
apt install cmake libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev libprocps-dev libdwarf-dev libunwind-dev \
libaio-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev clang-format-14 clang-14 clang-tidy-14 lld-14 \
libgoogle-perftools-dev google-perftools libssl-dev ccache gcc-12 g++-12 libboost-all-dev
他のビルド前提条件をインストールする必要があります:
libfuse
3.16.1または更新バージョン- FoundationDB 7.1または更新バージョン
- Rustツールチェーン
3FSのビルド
cmake -S . -B build -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_C_COMPILER=clang-14 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake --build build -j 32
設定ガイドの指示に従ってテストクラスターを実行できます。
Smallpondデータ処理フレームワーク
Smallpondは、DuckDBと3FSの上に構築された軽量級データ処理フレームワークで、以下の特徴があります:
- 高性能データ処理:DuckDBによってサポートされ、大規模データセットを効率的に処理できます。
- 拡張性:PBレベルのデータセットを処理することができ、大規模AIトレーニングのニーズを満たします。
- 使いやすさ:操作が簡単で、常時実行する必要のないサービスで、使用のハードルを下げます。
Smallpondのインストール
SmallpondはPython 3.8から3.12をサポートしています:
pip install smallpond
クイックスタート例
まず、サンプルデータをダウンロードします:
# サンプルデータをダウンロード
wget https://duckdb.org/data/prices.parquet
次に、以下のPythonコードを使用してデータを処理します:
import smallpond
# セッションを初期化
sp = smallpond.init()
# データを読み込む
df = sp.read_parquet("prices.parquet")
# データを処理する
df = df.repartition(3, hash_by="ticker")
df = sp.partial_sql("SELECT ticker, min(price), max(price) FROM {0} GROUP BY ticker", df)
# 結果を保存する
df.write_parquet("output/")
# 結果を表示する
print(df.to_pandas())
Smallpondは、GraySortベンチマークテストで評価され、50の計算ノードと25のストレージノードからなる3FSクラスター上で、110.5 TiBのデータを30分14秒でソートし、平均スループットは3.66 TiB/分に達しました。
まとめ
3FSとSmallpondを通じて、DeepSeekはAIトレーニングと推論タスク向けの高性能、強一貫性、使いやすいデータストレージと処理インフラストラクチャを提供しました。3FSの高性能と強一貫性の保証に加えて、Smallpondの効率的なデータ処理能力は、AIプロジェクトのパフォーマンスと効率を大幅に向上させ、大規模AIアプリケーションの開発と展開を強力にサポートします。
aiスピーキング
ドルフィンAIは言語学習アプリケーションのためのプロフェッショナルな発音評価API(pronunciation assessment api)ソリューションを提供します。音素、単語、文章、チャプター、発音矯正、単語矯正、クイズ、フリーダイアログ、多肢選択問題など幅広く提供しています。当社の発音評価製品(pronunciation assessment)は、英語と中国語、クラウドAPI、オンプレミス、オフラインデバイスの展開をサポートしています。当社の発音評価API(pronunciation assessment api)は、正確性、流暢性、完全性、リズムの次元をカバーする豊富な評価指標を提供し、音素、単語、文の異なるレベルの評価スコアも提供します。また、音素、単語、文の異なるレベルでの評価スコアも提供します。数千万人のユーザーに安定した効率的で安全なサービスを提供しています。ドルフィンAIの発音評価製品(pronunciation assessment)を試してみませんか?