rubicon-ml은 매개변수 및 결과와 같은 모델 훈련 및 실행 정보를 반복 및 검색 가능한 방식으로 캡처하고 저장하는 데이터 과학 도구입니다. git
통합은 이러한 입력 및 출력을 이를 생성한 모델 코드와 직접 연결하여 개발자와 이해관계자 모두에게 완전한 감사 가능성과 재현성을 보장합니다. 실험하는 동안 대시보드를 사용하면 기록된 작업을 쉽게 탐색, 필터링, 시각화 및 공유할 수 있습니다.
ps Java/ObjC Python 브리지인 Rubicon을 찾고 있다면 여기를 방문하세요.
rubicon-ml은 세 부분으로 구성됩니다.
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
를 통해 Conda Forge에서, pip
통해 PyPi에서 사용할 수 있습니다.
conda config --add channels conda-forge
conda install rubicon-ml
또는
pip install rubicon-ml
이 프로젝트는 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
실행하세요. 이제 pre-commit
git 커밋 시 자동으로 실행되며 프로젝트 전체에서 일관된 코드 형식을 보장합니다. pre-commit run
통해 커밋하지 않고 포맷하거나 git commit --no-verify
사용하여 이러한 검사를 건너뛸 수 있습니다.