DeepSeek の Smallpond:DuckDB と 3FS を基盤とした新しい分散データフレームワーク

BigGo Editorial Team
DeepSeek の Smallpond:DuckDB と 3FS を基盤とした新しい分散データフレームワーク

データエンジニアリングの領域は、特定のユースケース向けに設計された専門ツールとともに進化し続けています。 DeepSeek が最近リリースした smallpond は、ローカルデータ処理と分散コンピューティングのニーズの間のギャップを埋めることを目指し、開発者コミュニティで大きな議論を巻き起こしています。

Smallpond とは何か?

Smallpond は、 DuckDB と 3FS の上に構築された軽量データ処理フレームワークです。一般的なデータ処理ではなく、特にトレーニングパイプライン向けに設計されています。コミュニティでの議論によると、このフレームワークは Ray を使用して並列化し、ワーカーにトレーニングデータのバッチを提供することに特化しています。その主な強みは、(エポック間のシャッフルを実装するために必要な)ランダムリード、 Pandas DataFrame とのゼロコピー操作のための Arrow サポート、および効率的なチェックポイントメカニズムにあります。

Smallpond の主な機能

  • DuckDB を活用した高性能データ処理
  • PB スケールのデータセットを処理可能な拡張性
  • 長時間実行サービスを必要としない簡単な操作
  • Python 3.8 から 3.12 までのサポート
  • 並列処理のための Ray との統合
  • ML トレーニングパイプライン向けに特化

GraySort ベンチマークのパフォーマンス

  • ソートされたデータ: 110.5TiB
  • 所要時間: 30分14秒
  • 平均スループット: 3.66TiB/分
  • インフラ: 50台の計算ノードと25台のストレージノードで3FSを実行

3FS との関連性

smallpond のアーキテクチャの重要な要素は、 DeepSeek 自体よりも前から存在する分散ファイルシステム 3FS です。コミュニティメンバーによれば、3FS は少なくとも2019年から存在しており、中国のテックブログで言及されています。このファイルシステムは、 smallpond がペタバイト規模のデータセットを処理できる鍵となっているようです。しかし、一部のユーザーは、3FS がなければ、ネットワークファイルシステムのパフォーマンスがボトルネックとなり、 smallpond の有用性が大幅に低下する可能性があると指摘しています。

「データが10TB以上ない場合、あるいは3FS(これは導入が難しそう)を立ち上げない限り、 duckdb に比べて本当のメリットはないと思います。」

3FS のインフラ要件は、もう一つの制限となっています。コミュニティメンバーは、主要な米国クラウドプロバイダーが InfiniBand のサポートが限られていることを強調しました。これは 3FS のパフォーマンスにとって重要であるように見え、パブリッククラウドインフラに依存する企業の間で smallpond の採用を制限する可能性があります。

パフォーマンスとベンチマーク

Smallpond のパフォーマンス主張は印象的で、GraySort ベンチマークでは、50のコンピュートノードと25のストレージノードを使用したクラスターで、わずか30分強で110.5TiBのデータをソートできることを示しています。これは平均スループット3.66TiB/分に相当します。興味深いことに、 smallpond のコードのコミュニティ分析によると、GraySort ベンチマークでは、 DuckDB を直接使用するのではなく、デフォルトで実際のソートを処理するために Polars にディスパッチしていることが明らかになりました。

データエコシステムにおける位置づけ

smallpond の出現は、データエンジニアリングにおけるより広範なトレンド - 特定のワークロード向けの専門的なクエリエンジンの開発 - を反映しています。 DuckDB 、 Polars 、マネージドクラウドソリューションのような汎用ツールが何年も前から存在していますが、 smallpond は機械学習のための非常に大規模なデータセットの分散処理が必要なニッチを対象としているようです。

10TB未満のデータセットを持つほとんどのユーザーにとって、コミュニティの意見では、 DuckDB 単体などの既存ツールに比べて smallpond のメリットは限定的かもしれません。本当のメリットは、分散処理が必要になるより大きな規模で発揮されます。

データエンジニアリングが進化し続ける中、 smallpond のようなツールは、分散データ処理の複雑さの一部を抽象化する、より専門的で目的に合わせて構築されたソリューションへの一歩を表しています。これが、一部のコミュニティメンバーが期待するように、バックエンドテクノロジーのより広範な抽象化の始まりを表すのか、あるいは単に特定のトレードオフを持つ別のツールに過ぎないのかは、今後の展開を見守る必要があります。

参考:smallpond - DuckDB と 3FS 上に構築された軽量データ処理フレームワーク