rubicon-ml es una herramienta de ciencia de datos que captura y almacena información de ejecución y entrenamiento de modelos, como parámetros y resultados, de forma repetible y con capacidad de búsqueda. Su integración git
asocia estas entradas y salidas directamente con el código modelo que las produjo para garantizar una total auditabilidad y reproducibilidad tanto para los desarrolladores como para las partes interesadas. Mientras experimenta, el panel facilita explorar, filtrar, visualizar y compartir el trabajo grabado.
PD: Si estás buscando Rubicon, el puente Java/ObjC Python, visita esto.
rubicon-ml se compone de tres partes:
fsspec
dash
intake
Utilice rubicon_ml
para capturar entradas y salidas del modelo a lo largo del tiempo. Se puede integrar fácilmente en modelos o canalizaciones de Python existentes y admite tanto el registro simultáneo (por lo que se pueden registrar múltiples experimentos en paralelo) como la comunicación asincrónica con S3 (para que las lecturas y escrituras de la red no se bloqueen).
Mientras tanto, revise periódicamente los datos registrados en el panel de Rubicon para dirigir el proceso de ajuste del modelo en la dirección correcta. El panel le permite detectar rápidamente tendencias explorando y filtrando los resultados registrados y visualiza cómo las entradas del modelo impactaron las salidas del modelo.
Cuando el modelo está listo para su revisión, Rubicon facilita compartir subconjuntos específicos de datos con los revisores del modelo y las partes interesadas, brindándoles el contexto necesario para una revisión y aprobación completa del modelo.
Consulte los cuadernos interactivos en esta Carpeta para probar rubicon_ml
usted mismo.
He aquí un ejemplo sencillo:
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 )
Luego explore el proyecto ejecutando el panel:
rubicon_ml ui --root-dir /rubicon-root
Para obtener una descripción general completa, visite los documentos. Si tiene sugerencias o encuentra un error, abra un problema.
La biblioteca Python está disponible en Conda Forge a través de conda
y PyPi a través de pip
.
conda config --add channels conda-forge
conda install rubicon-ml
o
pip install rubicon-ml
El proyecto utiliza conda para gestionar entornos. Primero, instale conda. Luego use conda para configurar un entorno de desarrollo:
conda env create -f environment.yml
conda activate rubicon-ml-dev
Finalmente, instale rubicon_ml
localmente en el entorno recién creado.
pip install -e " .[all] "
Las pruebas se dividen en pruebas unitarias y de integración. Se pueden ejecutar directamente en el entorno de desarrollo activado a través de pytest tests/unit
o pytest tests/integration
. O simplemente ejecutando pytest
para ejecutarlos todos.
Nota : algunas pruebas de integración están marked
intencionalmente para controlar cuándo se ejecutan (es decir, no durante CICD). Estas pruebas incluyen:
Pruebas de integración que escriben en sistemas de archivos físicos: locales y S3. Los archivos locales se escribirán en ./test-rubicon
en relación con el lugar donde se ejecutan las pruebas. También se debe proporcionar una ruta S3 para ejecutar estas pruebas. De forma predeterminada, estas pruebas están deshabilitadas. Para habilitarlos, ejecute:
pytest -m "write_files" --s3-path "s3://my-bucket/my-key"
Pruebas de integración que ejecutan cuadernos Jupyter. Estas pruebas son un poco más lentas que el resto de las pruebas de la suite, ya que necesitan iniciar servidores Jupyter. De forma predeterminada, están habilitados. Para deshabilitarlos, ejecute:
pytest -m "not run_notebooks and not write_files"
Nota : Cuando simplemente se ejecuta pytest
, -m "not write_files"
es el valor predeterminado. Por lo tanto, también debemos aplicarlo al desactivar las pruebas del portátil.
Instale y configure la confirmación previa para ejecutar automáticamente black
, flake8
e isort
durante las confirmaciones:
pre-commit install
para configurar los scripts de git hook Ahora pre-commit
se ejecutará automáticamente en la confirmación de git y garantizará un formato de código coherente en todo el proyecto. Puede formatear sin comprometerse mediante pre-commit run
u omitir estas comprobaciones con git commit --no-verify
.