m3dev/gokart
Gokart solves reproducibility, task dependencies, constraints of good code, and ease of use for Machine Learning Pipeline.
何を解決するか
Gokartは再現性のある機械学習パイプラインの作成を簡素化します。ML開発における一般的な課題、たとえばタスクの依存関係の管理、シード固定による一貫した結果の確保、SOLID原則を促進することでコードベースをクリーンに保つことを解決します。
動作方法
Luigiのラッパーとして構築されたGokartは、MLワークフローを一連のタスクに整理します。各タスクのメタデータ(出力データ、モジュールバージョン、処理時間、ランダムシードなど)を自動で追跡し、ハッシュ値付きの別々のpickleファイルに保存します。タスクパラメータが変更されると、パイプラインは影響を受ける部分を自動的に再実行します。メモリ使用量を抑えるために、中間結果はファイルとしてやり取りされ、これらの結果のためのクラウドストレージ(GCSおよびS3)もサポートしています。また、I/O時にpandas DataFrameのカラムチェックを組み込みサポートしており、並列実行時にタスクをロックするためにRedisを使用します。
対象ユーザー
バッチ処理およびチーム開発に再現性の高い環境が必要な機械学習エンジニアおよびデータサイエンティスト。
特徴
- 自動再現性: numpyとrandomのシードを自動で固定し、すべてのモジュールバージョンとパラメータを追跡します。
- スマートな再実行: タスクパラメータが変更されると、パイプラインの再実行を自動的にトリガーします。
- クラウド統合: 中間結果のデータストアとしてS3およびGCSをネイティブにサポートしています。
- 型安全性: 型アノテーションとmypyプラグインをサポートし、パイプラインの堅牢性を確保し、タスク間の型エラーを防止します。
- メモリ効率: すべてのデータをメモリに保持するのではなく、中間ファイルを介してタスク間でデータをやり取りします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト