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
跳過這些檢查。