データバージョン管理は、データセットを扱うための方法です。これは、従来のソフトウェア開発で使用されるバージョン管理システムに似ていますが、データ分析、研究、およびその他のあらゆる形態のデータ分析のコンテキストで、データの処理とコラボレーションをより良くできるように最適化されています。データバージョン管理には、大規模なデータセットやデータレイクでの作業を容易にするように設計された特定の機能や構成が含まれる場合もあります。[ 1 ]
1985年には早くも、研究者たちはデータベースの変更を追跡するために必要なデータベーステーブル内のタイミング属性を定義する必要性を認識していました。[ 2 ]この研究は1990年代まで続き、その理論はリレーショナルデータベースでのデータ管理のための実用的な方法に形式化され、[ 3 ]後にデータバージョン管理となるものの基礎概念の一部を提供しました。
2010年代初頭、データセットのサイズは急速に拡大し、リレーショナルデータベースでは組織が蓄積するデータ量を管理するには不十分になっていました。ストレージ層としてHDFSを用いたApache Hadoopエコシステムの台頭、そして後にオブジェクトストレージがビッグデータ運用において主流となりました。[ 4 ]データ管理ツールやデータバージョン管理システムの研究は、学術界、民間部門、公共部門の両方からのこうしたツールの需要とともに急増しました。[ 5 ]
最初のバージョン管理データベースは2012年にSciDBデータベース向けに提案され、従来の方式に伴うストレージサイズとアクセス速度の両方を削減しながら、データベースの異なるバージョンのチェーンやツリーを作成できることが実証されました。[ 6 ] 2014年には、これらの原則をあらゆるアプリケーションに使用できるプラットフォームに一般化する提案が行われました。[ 7 ]
2016年に、 Kaggleのコンペティション中にデータバージョン管理システムのプロトタイプが開発されました。このソフトウェアは後にAI企業で内部的に使用され、最終的にスタートアップとしてスピンオフされました。[ 8 ]それ以来、オープンソースとクローズドソースの両方のデータバージョン管理システムが多数開発され、商用で提供されています。[ 9 ]その中には、特に機械学習に特化したものもあります。[ 10 ]
天体物理学、地震学、生物学、医学、社会科学、経済学、その他多くの分野を含む幅広い科学分野で、大量のデータの自動分析が採用されています。再現性の原則は、科学分野における発見を形式化する上で重要な側面であり、データサイエンスの文脈では多くの課題があります。ほとんどのデータセットは、データの追加やデータの構造と形式の変更により常に変化しており、小さな変更でも実験結果に大きな影響を与える可能性があります。データバージョン管理により、特定の時点でのデータセットの正確な状態を記録できるため、実験結果の再現と理解が容易になります。[ 11 ]データ実務者がデータの現在の状態しか把握できない場合、問題のデバッグの困難さやデータ監査への対応の難しさなど、多くの課題に直面する可能性があります。
データバージョン管理は、大量のデータを扱うアプリケーションのテストや開発において利用されることがあります。一部のデータバージョン管理ツールでは、テスト目的で本番環境のレプリカを作成できます。この方法により、抽出、変換、ロード(ETL)などのデータ統合プロセスをテストし、本番データの利用者に悪影響を与えることなく、データに加えられた変更を把握することができます。
機械学習の文脈では、データバージョン管理はモデルのパフォーマンスを最適化するために使用できます。これにより、データセットの異なるバージョンで結果を分析するプロセスを自動化して、パフォーマンスを継続的に改善できます。[ 12 ]オープンソースのデータバージョン管理ソフトウェアは、機械学習エンジニアが使用できるようにGitやCI/CDなどのツールを拡張することで、独自のAIプラットフォームの必要性を排除できる可能性があります。[ 13 ]多くのオープンソースソリューションは、これらの機能を提供するためにGitのようなセマンティクスに基づいて構築されています。Git自体は小さなテキストファイル用に設計されており、非常に大きい典型的な機械学習データセットをサポートしていないためです。
CI/CD手法は、データ バージョン管理を使用してデータセットに適用できます。[ 14 ]バージョン管理により、ユーザーは自動化サーバーと統合して、データの CI/CD プロセスを確立できます。プロセスにテスト プラットフォームを追加することで、データ 製品の高い品質を保証できます。このシナリオでは、チームはデータに対して継続的インテグレーション (CI)テストを実行し、設定されたすべてのデータ品質とデータ ガバナンス基準が満たされた場合にのみデータが本番環境に昇格されるようにチェックを設定します。
本番データに影響を与えずにデータセットで実験を行うには、データバージョン管理を使用して本番環境のレプリカを作成し、そこでテストを実行できます。このようなレプリカを使用することで、データに安全に適用された変更をテストし、理解することができます。
データバージョン管理ツールは、時間とリソースを浪費するメンテナンス作業なしに、レプリケーション環境を実現します。これらのツールは、メタデータを使用してオブジェクトを共有することを可能にします。
データセットの継続的な変更は、特にアプリケーションがデータを使用している場合、機能上の問題を引き起こしたり、望ましくない結果につながることがあります。データバージョン管理ツールを使用すると、データセットを以前の状態にロールバックできます。これは、アプリケーションの機能を復元または改善したり、誤って含まれたエラーや不良データを修正したりするために使用できます。[ 15 ]
バージョン管理されたデータソース:
データレイクのデータバージョン管理:
データバージョン管理を実装するML-Opsシステム:
{{cite book}}: CS1メンテナンス: 場所の発行元が見つかりません (リンク) CS1メンテナンス: その他 (リンク)