rubicon-ml は、パラメーターや結果などのモデルのトレーニングと実行の情報を、反復可能かつ検索可能な方法で取得して保存するデータ サイエンス ツールです。そのgit
統合により、これらの入力と出力がそれらを生成したモデル コードに直接関連付けられ、開発者と関係者の両方にとって完全な監査可能性と再現性が保証されます。実験中、ダッシュボードを使用すると、記録された作業を簡単に探索、フィルタリング、視覚化、共有できます。
ps Java/ObjC Python ブリッジである Rubicon をお探しの場合は、代わりにここにアクセスしてください。
rubicon-ml は 3 つの部分で構成されます。
fsspec
を利用したファイルシステムへのモデルの入力、出力、分析を保存および取得するための Python ライブラリdash
で構築されたログデータを探索、比較、視覚化するためのダッシュボードintake
を活用して、ログに記録されたデータの選択されたサブセットを共同作業者またはレビュー担当者と共有するプロセスrubicon_ml
使用して、モデルの入力と出力を経時的にキャプチャします。既存の Python モデルまたはパイプラインに簡単に統合でき、同時ログ (複数の実験を並行してログに記録できる) と S3 との非同期通信 (ネットワークの読み取りと書き込みがブロックされない) の両方をサポートします。
その間、Rubicon ダッシュボード内のログ データを定期的に確認して、モデル調整プロセスを正しい方向に導きます。ダッシュボードを使用すると、ログに記録された結果を探索してフィルタリングすることで傾向をすばやく特定し、モデルの入力がモデルの出力にどのような影響を与えたかを視覚化できます。
モデルをレビューする準備ができたら、Rubicon を使用すると、データの特定のサブセットをモデルのレビュー担当者や関係者と簡単に共有できるようになり、モデルの完全なレビューと承認に必要なコンテキストが得られます。
このバインダーのインタラクティブなノートブックをチェックして、 rubicon_ml
実際に試してみてください。
簡単な例を次に示します。
from rubicon_ml import Rubicon
rubicon = Rubicon (
persistence = "filesystem" , root_dir = "/rubicon-root" , auto_git_enabled = True
)
project = rubicon . create_project (
"Hello World" , description = "Using rubicon to track model results over time."
)
experiment = project . log_experiment (
training_metadata = [ SklearnTrainingMetadata ( "sklearn.datasets" , "my-data-set" )],
model_name = "My Model Name" ,
tags = [ "my_model_name" ],
)
experiment . log_parameter ( "n_estimators" , n_estimators )
experiment . log_parameter ( "n_features" , n_features )
experiment . log_parameter ( "random_state" , random_state )
accuracy = rfc . score ( X_test , y_test )
experiment . log_metric ( "accuracy" , accuracy )
次に、ダッシュボードを実行してプロジェクトを探索します。
rubicon_ml ui --root-dir /rubicon-root
完全な概要については、ドキュメントを参照してください。提案がある場合、またはバグを見つけた場合は、問題を開いてください。
Python ライブラリは、 Conda Forge ではconda
経由で、PyPi ではpip
経由で利用できます。
conda config --add channels conda-forge
conda install rubicon-ml
または
pip install rubicon-ml
プロジェクトは環境を管理するために conda を使用します。まずはcondaをインストールします。次に、conda を使用して開発環境をセットアップします。
conda env create -f environment.yml
conda activate rubicon-ml-dev
最後に、 rubicon_ml
新しく作成した環境にローカルにインストールします。
pip install -e " .[all] "
テストは単体テストと統合テストに分かれています。これらはpytest tests/unit
またはpytest tests/integration
を介して、アクティブ化された開発環境で直接実行できます。または、単純にpytest
実行してすべてを実行します。
注: 一部の統合テストは、いつ実行されるかを制御するために意図的にmarked
ます (つまり、CICD 中ではありません)。これらのテストには次のものが含まれます。
物理ファイルシステム (ローカルおよび S3) に書き込む統合テスト。ローカル ファイルは、テストが実行される場所に関連する./test-rubicon
に書き込まれます。これらのテストを実行するには、S3 パスも提供する必要があります。デフォルトでは、これらのテストは無効になっています。それらを有効にするには、次を実行します。
pytest -m "write_files" --s3-path "s3://my-bucket/my-key"
Jupyter ノートブックを実行する統合テスト。これらのテストは、Jupyter サーバーを起動する必要があるため、スイート内の残りのテストよりも少し遅くなります。デフォルトでは、これらは有効になっています。それらを無効にするには、次を実行します。
pytest -m "not run_notebooks and not write_files"
注: 単にpytest
を実行する場合、 -m "not write_files"
がデフォルトです。したがって、ノートブックのテストを無効にするときにも適用する必要があります。
コミット中にblack
、 flake8
、およびisort
自動的に実行するように、事前コミットをインストールして構成します。
pre-commit install
実行して git フック スクリプトをセットアップしますpre-commit
git commit 時に自動的に実行され、プロジェクト全体で一貫したコード形式が保証されます。 pre-commit run
を使用してコミットせずにフォーマットすることも、 git commit --no-verify
を使用してこれらのチェックをスキップすることもできます。