|
Googleは先週、開発者が多次元データの保存と操作に使用できるオープンソースのC++およびPythonライブラリ「TensorStore」を紹介するブログ記事を公開しました。このライブラリは、大規模データセットの管理と処理を改善することで、科学計算における主要なエンジニアリング課題の解決を目指しています。 今日、コンピュータサイエンスや機械学習の様々なアプリケーションは、単一の座標系にまたがる多次元データセットを操作しています。これらのアプリケーションでは、単一のデータセットにペタバイト規模のストレージが必要になる場合があり、ユーザーがさまざまなスケールや予測不可能な間隔でデータを送受信する可能性があるため、このようなデータセットの処理は大きな課題となります。 TensorStore は、大規模なデータ配列の読み込みと処理のためのシンプルな Python API を提供します。TensorStore は、正確なシャードが要求されるまで実際のデータをメモリに読み込んだり保存したりしないため、データセット全体をメモリに保存することなく、任意の大きさのデータセットを読み込んで操作できます。これは、NumPy 演算で使用される構文と基本的に同じインデックスと操作構文によって実現されます。 TensorStoreは、Google Cloud、ローカルファイルシステム、ネットワークファイルシステムなど、様々なストレージシステムをサポートしています。zarrやN5などの様々な配列型の読み書きのための統一APIを提供します。強力な原子性、独立性、一貫性、永続性(ACID)保証に加え、このライブラリは読み書きキャッシュとトランザクションも提供します。 さらに、TensorStore の並行性により、多数のマシンが同じデータセットにアクセスする場合でも、並列処理の安全性が確保されます。パフォーマンスに大きな影響を与えることなく、基盤となる様々なストレージレイヤーとの互換性を維持します。 研究者たちは、大規模な数値データセットの処理と分析には膨大な計算リソースが必要であると指摘しています。通常、これは複数のデバイスに分散された多数のCPUまたはアクセラレータコア間での並列処理によって実現されます。TensorStoreの基本的な目標は、個々のデータセットを安全に並列処理し、並列アクセスによる破損や不整合を防ぎながら、高いパフォーマンスを維持することです。実際、Googleデータセンター内で行われたテストでは、読み取りと書き込みのパフォーマンスがCPUの数にほぼ比例して向上することが明らかになりました。 TensorStore には非同期 API も備わっており、他のタスクの実行中でもプログラムはバックグラウンドで読み取りや書き込みを継続できます。また、TensorStore は Apache Beam や Dask などの並列コンピューティング フレームワークと統合されているため、TensorStore の分散コンピューティングは多くの既存のデータ処理ワークフローと互換性があります。 TensorStore の使用例には、トレーニング中にモデル パラメータを効率的に読み書きできる言語モデルや、脳のニューロンを描写した高解像度のマップを保存する脳マッピングなどがあります。 プロジェクトの GitHub アドレス: https://github.com/google/tensorstore この記事はOSCHINAから転載したものです。 記事タイトル: Google、大規模データの読み書き用に設計されたTensorStoreをオープンソース化 この記事のアドレス: https://www.oschina.net/news/211942/google-tensorstore |