データサイエンティスト 機械学習の専門家は、典型的なデータ サイエンス プロジェクトでさまざまな種類の大量のデータを扱います。 さまざまな構成と機能を備えた多数のモデルが開発されており、最適なパフォーマンスを得るためにパラメーター調整が複数回繰り返されています。
このようなシナリオでは、何が機能し、何が機能しなかったかを判断するために、すべてのデータ変更とモデル構築プロセスの調整を監視および測定する必要があります。 また、以前のエディションに戻って以前の結果を調査できることも重要です。
データ バージョン コントロール (DVC) は、データ、基礎となるモデルの管理、再現可能な結果の実行を支援し、これらすべての監視を可能にするテクノロジーの XNUMX つです。
この投稿では、データ バージョン管理と使用する最適なツールについて詳しく見ていきます。 さぁ、始めよう。
データのバージョン管理とは何ですか?
バージョン管理はすべての実稼働システムに必要です。 最新データへの単一アクセスポイント。 特に複数のユーザーによって同時に変更されることが多いリソースでは、すべての変更を追跡するために監査証跡を作成する必要があります。
バージョン管理システムは、チームの全員が同じ認識を持っていることを確認する責任があります。 これにより、チームの全員がファイルの最新バージョンで作業していることが保証され、さらに重要なことに、全員が一度に同じプロジェクトで共同作業していることが保証されます。
適切な機器があれば、最小限の労力でこれを達成できます。
信頼できるデータ バージョン管理戦略を使用すると、一貫したデータ セットとすべての研究の完全なアーカイブが得られます。 再現性、トレーサビリティ、ML モデル履歴を重視する場合、データ バージョニング ツールはワークフローにとって重要です。
これらは、データセットやモデルのハッシュなどのアイテムのバージョンを取得するのに役立ち、それを識別して比較するために使用できます。 このデータ バージョンは、多くの場合、モデル トレーニングがバージョン管理され、再現可能であることを保証するために、メタデータ管理ソリューションに入力されます。
最高のデータバージョン管理ツール
ここで、コードのあらゆる部分を追跡するために使用できる、利用可能な最も優れたデータ バージョン管理ソリューションを見てみましょう。
1. git-lfs
Git LFS プロジェクトは無料で使用できます。 Git 内では、オーディオ サンプル、ビデオ、データベース、写真などの大きなファイルはテキスト ポインターで置き換えられ、ファイルの内容は GitHub.com や GitHub Enterprise などのリモート サーバーに保存されます。
Git を使用して、最大数 GB のサイズの巨大なファイルをバージョン管理し、外部ストレージを利用して Git リポジトリでより多くのホストをホストし、大きなファイル リポジトリのクローン作成と取得をより迅速に行うことができます。 データ管理に関しては、これは非常に簡単なソリューションです。 Git を使用するために、追加のコマンド、ストレージ システム、ツールキットは必要ありません。
ダウンロードする情報の量が制限されます。 これは、リポジトリからの大きなファイルのクローン作成と取得が高速になることを意味します。 ポインタは軽量の素材で作られており、LFS を指します。
その結果、リポジトリをメイン リポジトリにプッシュすると、リポジトリはすぐに更新され、占有するスペースが少なくなります。
メリット
- ほとんどのビジネスの開発ワークフローに簡単に統合できます。
- Git リポジトリと同じ権限を使用するため、追加の権限を処理する必要はありません。
デメリット
- Git LFS では、データを保存するために専用サーバーを使用する必要があります。 その結果、データ サイエンス チームが拘束され、エンジニアリングの作業負荷が増加します。
- 非常に専門的であり、データ サイエンス ワークフローの後続のフェーズではさまざまなツールの使用が必要になる場合があります。
価格(英語)
どなたでも無料でご利用いただけます。
2. レイクFS
LakeFS は、S3 または GCS にデータを保存するオープンソースのデータ バージョニング ソリューションであり、ペタバイトまで拡張できる Git のような分岐およびコミット パラダイムを備えています。
この分岐戦略により、アトミックかつ瞬時に構築、マージ、ロールバックできる個別のブランチでの変更が可能になるため、データ レイクが ACID 準拠になります。
LakeFS を使用すると、チームは反復可能でアトミックでバージョン管理されたデータ レイク アクティビティを作成できます。 このシーンでは新参者だが、その力は侮れない。
Git のような分岐とバージョン管理のアプローチを使用して、 データレイク、最大ペタバイトのデータまで拡張可能。 エクサバイト規模でバージョン管理を確認できます。
メリット
- Git に似た操作には、分岐、コミット、マージ、復帰などがあります。
- プリコミット/マージフックは、データ CI/CD チェックに使用されます。
- S3 や GCS などの単純なクラウド ストレージに対して ACID トランザクションなどの複雑な機能を提供し、同時にフォーマットの中立性を維持します。
- データへの変更をリアルタイムで元に戻します。
- 容易に拡張できるため、非常に大規模なデータレイクに対応できます。 バージョン管理は、開発設定と運用設定の両方に提供できます。
デメリット
- LakeFS は新しい製品であるため、機能やドキュメントは以前のソリューションよりも早く変更される可能性があります。
- データのバージョン管理に重点を置いているため、データ サイエンス ワークフローのさまざまな部分でさまざまな追加ツールを利用する必要があります。
価格(英語)
どなたでも無料でご利用いただけます。
3. DVC
データ バージョン コントロールは、データ サイエンスおよび機械学習アプリケーション向けに設計された無料のデータ バージョン管理ソリューションです。 これは、任意の言語でパイプラインを定義できるプログラムです。
このツールは、大きなファイル、データ セット、機械学習モデル、コードなどを管理することにより、機械学習モデルの共有と再現を可能にします。 このプログラムは、Git に倣い、わずか数ステップでセットアップできるシンプルなコマンド ラインを提供します。
その名前が示すように、DVC はデータのバージョン管理だけを目的とするものではありません。 また、チームのパイプラインと機械学習モデルの管理も容易になります。
最後に、DVC は、チームのモデルの一貫性とその再現性の向上に役立ちます。 コード内で複雑なファイルサフィックスやコメントを使用する代わりに、 Gitブランチ 新しいアイデアを試すために。 旅行するには、紙と鉛筆の代わりに自動化された指標追跡を使用してください。
一貫したバンドルを送信するには 機械学習 モデル、データ、コードを運用環境、遠く離れたコンピューター、または同僚のデスクトップに移す場合は、アドホック スクリプトの代わりにプッシュ/プル コマンドを利用できます。
メリット
- これは軽量でオープンソースであり、すべての主要なクラウド プラットフォームとストレージの種類で動作します。
- 柔軟性があり、形式やフレームワークに依存せず、実装が簡単です。
- すべての ML モデルの進化全体は、そのソース コードとデータまで遡ることができます。
デメリット
- パイプライン管理と DVC バージョン管理は密接に関連しています。 チームがすでに別のデータ パイプライン製品を利用している場合は、冗長性が生じます。
- DVC は軽量であるため、よりユーザーフレンドリーにするために、チームは追加機能を手動で設計する必要がある場合があります。
価格(英語)
どなたでも無料でご利用いただけます。
4. デルタレイク
DeltaLake は、データ レイクの信頼性を高めるオープンソースのストレージ レイヤーです。 Delta Lake は、ストリーミングとバッチ データ処理に加えて、ACID トランザクションとスケーラブルなメタデータ管理をサポートします。
Apache Spark API と連携し、既存のデータ レイク上に配置されます。 デルタ シェアリングは、ビジネスにおける安全なデータ共有のための世界初のオープン プロトコルであり、コンピュータ システムから独立して他の企業と簡単にデータを交換できるようになります。
デルタ レイクは、ペタバイト規模のデータを簡単に処理できます。 メタデータはデータと同じ方法で保存され、ユーザーは Describe Detail メソッドを使用してメタデータを取得できます。 Delta Lake には、ストリーム データとバッチ データの両方を読み取ることができる単一のアーキテクチャがあります。
Upsert は Delta を使用して簡単に実行できます。 デルタ テーブルへのこれらの更新/挿入またはマージは、SQL マージに相当します。 これを使用して、別のデータ フレームのデータをテーブルに統合し、更新、挿入、削除を実行できます。
メリット
- ACID トランザクションや堅牢なメタデータ管理などの多くの機能を、現在のデータ ストレージ ソリューションで利用できます。
- Delta Lake は、ペタバイト規模の数十億のパーティションとファイルを含むテーブルを簡単に管理できるようになりました。
- 手動によるデータのバージョン管理やその他のデータに関する懸念が軽減され、開発者はデータ レイク上での製品の開発に集中できるようになります。
デメリット
- Delta Lake は Spark と巨大なデータを操作するように設計されているため、一般にほとんどのタスクに対して過剰な処理が行われます。
- 専用のデータ形式を使用する必要があるため、柔軟性が制限され、現在のフォームと互換性がなくなります。
価格(英語)
どなたでも無料でご利用いただけます。
5. ドルト
Dolt は、Git リポジトリと同じ方法でフォーク、クローン作成、分岐、マージ、プッシュ、プルを行う SQL データベースです。 バージョン管理データベースのユーザー エクスペリエンスを向上させるために、Dolt ではデータと構造を同期して変更できるようにしています。
これは、あなたと同僚が共同作業するための優れたツールです。 他の MySQL データベースに接続するのと同じ方法で Dolt に接続し、SQL コマンドを使用してクエリを実行したり、データを変更したりできます。
データのバージョン管理に関しては、Dolt は他に類を見ないものです。 Dolt は、データをバージョン管理するだけの他のソリューションとは対照的に、データベースです。 このソフトウェアは現在初期段階にありますが、近い将来、Git および MySQL と完全に互換性を持たせることが期待されています。
Git で使い慣れているコマンドはすべて、Dolt でも機能します。 Git バージョン ファイル、Dolt バージョン テーブル コマンド ライン インターフェイスを使用して、CSV ファイルをインポートし、変更をコミットし、リモートに公開し、チームメイトの変更をマージします。
メリット
- 軽量で オープンソース ある程度。
- より曖昧な選択肢と比較して、SQL インターフェイスを備えているため、データ アナリストにとってアクセスしやすくなっています。
デメリット
- 他のデータベース バージョン管理ツールと比較すると、Dolt はまだ開発中の製品です。
- Dolt はデータベースであるため、利点を得るにはデータをそこに転送する必要があります。
価格(英語)
コミュニティセッションはどなたでもご利用いただけます。 このプラットフォームはプレミアム価格を提供しません。 代わりに、プロバイダーに連絡する必要があります。
6. 厚皮
Pachyderm は、多くの機能を備えた無料のデータ サイエンス バージョン管理システムです。 Pachyderm Enterprise は、安全性の高い環境での大規模なコラボレーションのために設計された強力なデータ サイエンス プラットフォームです。
Pachyderm は、リストにある数少ないデータ サイエンス プラットフォームの XNUMX つです。 Pachyderm の目標は、完全なデータ サイクルを管理し、機械学習モデルの結果を簡単に複製できるプラットフォームを提供することです。 Pachyderm は、この文脈では「データの Docker」として知られています。 Pachyderm は、Docker コンテナを使用して実行環境をパッケージ化します。 これにより、同じ結果を簡単に複製できます。
データ サイエンティストと DevOps チームは、バージョン管理されたデータと Docker を組み合わせることで、自信を持ってモデルをデプロイできます。 効率的なストレージ システムのおかげで、ストレージ コストを最小限に抑えながら、ペタバイト規模の構造化データと非構造化データを維持できます。
パイプラインのフェーズ全体を通じて、ファイルベースのバージョン管理により、中間出力を含むすべてのデータとアーティファクトの完全な監査記録が提供されます。 ツールの機能の多くはこれらの柱によって駆動されており、チームがツールを最大限に活用するのに役立ちます。
メリット
- コンテナーに基づいて、データ環境は移植可能であり、クラウド プロバイダー間で簡単に転送できます。
- 堅牢で、小規模なシステムから非常に大規模なシステムまで拡張する能力を備えています。
デメリット
- Pachyderm の無料版を処理するために必要な Kubernetes サーバーなど、多くの可動要素があるため、学習曲線はさらに急になります。
- Pachyderm は多くの技術コンポーネントがあるため、企業の既存のインフラストラクチャに組み込むのが難しい場合があります。
価格(英語)
コミュニティ セッションでプラットフォームの使用を開始できますが、エンタープライズ エディションの場合はベンダーに連絡する必要があります。
7. ネプチューン
モデル構築メタデータは、MLOps スタックの重要な側面である ML メタデータ ストアによって管理されます。 すべての MLOps ワークフローにおいて、Neptune は一元化されたメタデータ ストレージとして機能します。
数千の機械学習モデルをすべて 25 か所で追跡、視覚化、比較できます。 これには、実験追跡、モデル レジストリ、モデル モニタリングなどの機能に加え、共同インターフェイスが含まれています。 これには、いくつかのモデル トレーニング ツールやハイパーパラメーター調整ツールなど、XNUMX を超えるさまざまなツールとライブラリが統合されています。
クレジット カードを使用せずに Neptune に参加できます。 Gmail アカウントで十分です。
メリット
- パイプライン、フロー、コードベース、またはフレームワークとの統合は簡単です。
- リアルタイムの視覚化、簡単な API、迅速なサポート
- Neptune を使用すると、すべての実験データの「バックアップ」を XNUMX か所に作成でき、後で復元できます。
デメリット
- 完全にオープンソースではありませんが、個人的な使用にはおそらく個別のバージョンで十分でしょうが、そのようなアクセスは XNUMX か月に制限されています。
- いくつかの小さな設計上の欠陥が見つかります。
価格(英語)
誰でも無料で使用できる個人プランでプラットフォームの使用を開始できます。 料金セクションは月額 150 ドルから始まります。
まとめ
この投稿では、最適なデータ バージョン管理ツールについて説明しました。 これまで見てきたように、各ツールには独自の機能セットがあります。 無料のものもあれば、有料のものもありました。 小規模なビジネス モデルに適したものもあれば、大規模なビジネス モデルにより適したものもあります。
したがって、メリットとデメリットを比較検討した上で、目的に応じて最適なソフトウェアを選択する必要があります。 プレミアム製品を購入する前に、無料試用版をテストすることをお勧めします。
コメントを残す