rubicon-ml adalah alat ilmu data yang menangkap dan menyimpan informasi pelatihan dan eksekusi model, seperti parameter dan hasil, dengan cara yang dapat diulang dan dicari. Integrasi git
mengaitkan masukan dan keluaran ini secara langsung dengan kode model yang menghasilkannya guna memastikan kemampuan audit dan reproduktifitas penuh bagi pengembang dan pemangku kepentingan. Saat bereksperimen, dasbor memudahkan untuk menjelajahi, memfilter, memvisualisasikan, dan berbagi rekaman karya.
ps Jika Anda mencari Rubicon, jembatan Java/ObjC Python, kunjungi ini.
rubicon-ml terdiri dari tiga bagian:
fsspec
dash
intake
Gunakan rubicon_ml
untuk menangkap masukan dan keluaran model dari waktu ke waktu. Ini dapat dengan mudah diintegrasikan ke dalam model atau pipeline Python yang ada dan mendukung pencatatan log secara bersamaan (sehingga beberapa eksperimen dapat dicatat secara paralel) dan komunikasi asinkron dengan S3 (sehingga pembacaan dan penulisan jaringan tidak akan diblokir).
Sementara itu, tinjau data yang dicatat secara berkala di dasbor Rubicon untuk mengarahkan proses penyesuaian model ke arah yang benar. Dasbor memungkinkan Anda melihat tren dengan cepat dengan menjelajahi dan memfilter hasil log Anda dan memvisualisasikan bagaimana masukan model memengaruhi keluaran model.
Saat model siap untuk ditinjau, Rubicon memudahkan untuk membagikan subkumpulan data tertentu kepada peninjau model dan pemangku kepentingan, sehingga memberi mereka konteks yang diperlukan untuk peninjauan dan persetujuan model secara lengkap.
Lihat buku catatan interaktif di Binder ini untuk mencoba rubicon_ml
sendiri.
Berikut ini contoh sederhananya:
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 )
Kemudian jelajahi proyek dengan menjalankan dasbor:
rubicon_ml ui --root-dir /rubicon-root
Untuk ikhtisar lengkap, kunjungi dokumen. Jika Anda mempunyai saran atau menemukan bug, silakan buka terbitannya.
Pustaka Python tersedia di Conda Forge melalui conda
dan PyPi melalui pip
.
conda config --add channels conda-forge
conda install rubicon-ml
atau
pip install rubicon-ml
Proyek ini menggunakan conda untuk mengelola lingkungan. Pertama, instal conda. Kemudian gunakan conda untuk menyiapkan lingkungan pengembangan:
conda env create -f environment.yml
conda activate rubicon-ml-dev
Terakhir, instal rubicon_ml
secara lokal ke lingkungan yang baru dibuat.
pip install -e " .[all] "
Pengujian dipisahkan menjadi pengujian unit dan pengujian integrasi. Mereka dapat dijalankan langsung di lingkungan pengembang yang diaktifkan melalui pytest tests/unit
atau pytest tests/integration
. Atau cukup dengan menjalankan pytest
untuk menjalankan semuanya.
Catatan : beberapa pengujian integrasi sengaja marked
untuk mengontrol kapan pengujian tersebut dijalankan (yaitu bukan selama CICD). Tes-tes ini meliputi:
Tes integrasi yang menulis ke sistem file fisik - lokal dan S3. File lokal akan ditulis ke ./test-rubicon
sesuai dengan tempat pengujian dijalankan. Jalur S3 juga harus disediakan untuk menjalankan pengujian ini. Secara default, pengujian ini dinonaktifkan. Untuk mengaktifkannya, jalankan:
pytest -m "write_files" --s3-path "s3://my-bucket/my-key"
Tes integrasi yang menjalankan notebook Jupyter. Pengujian ini sedikit lebih lambat dibandingkan pengujian lainnya dalam suite karena pengujian ini perlu meluncurkan server Jupyter. Secara default, keduanya diaktifkan. Untuk menonaktifkannya, jalankan:
pytest -m "not run_notebooks and not write_files"
Catatan : Saat menjalankan pytest
, -m "not write_files"
adalah defaultnya. Jadi, kita perlu menerapkannya juga saat menonaktifkan tes notebook.
Instal dan konfigurasikan pra-komit untuk menjalankan black
, flake8
, dan isort
secara otomatis selama komit:
pre-commit install
untuk menyiapkan skrip git hook Sekarang pre-commit
akan berjalan secara otomatis di git commit dan akan memastikan format kode yang konsisten di seluruh proyek. Anda dapat memformat tanpa melakukan melalui pre-commit run
atau melewati pemeriksaan ini dengan git commit --no-verify
.