Skip to content

HPCI-Lab/yProv4ML_MLflow_Plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HPCI Lab Logo

yProv4ML MLflow Plugin

An MLflow plugin that integrates provenance tracking with sustainability metrics for ML experiments built on the yProv4ML library.

Report Bug · Request Feature


Contributors Forks Stars Issues GPLv3 License

An MLflow plugin that integrates W3C PROV-compliant provenance tracking with sustainability metrics for machine learning experiments built on the yProv4ML (prov4ml) library.

🚀 Installation

Prerequisites

  • Python 3.9 or higher
  • pip package manager
  • Git (for installing from source)

Installation (Recommended)

pip install -r requirements.txt
# Clone the repository
git clone https://github.com/yourusername/yProv4ML_MLflow_Plugin.git
cd yProv4ML_MLflow_Plugin

# Install the plugin in development mode
pip install .

Verify Installation

# Check that the plugin is registered
python -c "import mlflow; print(mlflow.__version__)"

# Verify prov4ml is installed
python -c "import prov4ml; print('prov4ml installed successfully')"

# Check plugin entry points
python -c "from importlib.metadata import entry_points; eps = [ep for ep in entry_points().get('mlflow.tracking_store', []) if 'yprov' in ep.name]; print(f'Found {len(eps)} yprov entry points')"

# Test basic functionality
python -c "import mlflow; mlflow.set_tracking_uri('yprov+file:///tmp/test'); print('✅ Plugin activated successfully')"

⚡ Quick Start

The plugin activates automatically when you use the yprov+ URI scheme:

import mlflow

# 🔑 CRITICAL: Use yprov+ prefix to activate the plugin
mlflow.set_tracking_uri("yprov+file:///path/to/mlruns")

# Standard MLflow code - no changes needed!
mlflow.set_experiment("my_experiment")

with mlflow.start_run(run_name="example_run"):
    # Log parameters
    mlflow.log_param("learning_rate", 0.001)
    mlflow.log_param("batch_size", 32)
    
    # Log metrics
    for epoch in range(5):
        mlflow.log_metric("loss", 0.5 - epoch * 0.05, step=epoch)
        mlflow.log_metric("accuracy", 0.7 + epoch * 0.05, step=epoch)
    
    # Log artifacts
    mlflow.log_artifact("model.pt", artifact_path="models")

# ✅ PROV JSON automatically generated in data/prov/my_experiment/

🙏 Acknowledgments


About

An MLflow plugin that integrates W3C PROV-compliant provenance tracking for ML experiments built on the yProv4ML library.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages