rubicon-ml 是一种数据科学工具,它以可重复和可搜索的方式捕获和存储模型训练和执行信息,例如参数和结果。它的git
集成将这些输入和输出直接与生成它们的模型代码相关联,以确保开发人员和利益相关者的完全可审计性和可重复性。在实验时,仪表板可以轻松探索、过滤、可视化和共享记录的工作。
ps 如果您正在寻找 Rubicon(Java/ObjC Python 桥梁),请访问此链接。
rubicon-ml 由三部分组成:
fsspec
支持的文件系统的模型输入、输出和分析dash
构建的记录数据的仪表板intake
使用rubicon_ml
捕获随时间变化的模型输入和输出。它可以轻松集成到现有的 Python 模型或管道中,并支持并发日志记录(因此可以并行记录多个实验)和与 S3 的异步通信(因此网络读写不会阻塞)。
同时,定期检查 Rubicon 仪表板中记录的数据,以引导模型调整过程朝正确的方向发展。仪表板可让您通过探索和过滤记录的结果来快速发现趋势,并可视化模型输入如何影响模型输出。
当模型准备好进行审查时,Rubicon 可以轻松地与模型审查者和利益相关者共享特定的数据子集,为他们提供完整模型审查和批准所需的上下文。
查看此 Binder 中的交互式笔记本,亲自尝试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
在 Conda Forge 上使用,通过pip
在 PyPi 上使用。
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 hook 脚本现在pre-commit
将在 git commit 上自动运行,并确保整个项目的代码格式一致。您可以通过pre-commit run
进行格式化而不进行提交,或者使用git commit --no-verify
跳过这些检查。