mlflow

    mlflow/mlflow

    The open source developer platform to build AI agents and models with confidence. Enhance your AI applications with end-to-end tracking, observability, and evaluations, all in one integrated platform.

    ai
    data-engineering
    llm
    machine-learning
    observability
    agentops
    agents
    ai-governance
    apache-spark
    evaluation
    langchain
    llm-evaluation
    llmops
    ml
    mlflow
    mlops
    model-management
    open-source
    openai
    prompt-engineering
    Python
    Apache-2.0
    24.3K stars
    5.3K forks
    24.3K watching
    Updated 3/14/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    75

    Weekly Growth

    +0

    +0.0% this week

    Contributors

    1

    Total contributors

    Open Issues

    2.0K

    Generated Insights

    About mlflow

    MLflow logo

    Open-Source Platform for Productionizing AI

    MLflow is an open-source developer platform to build AI/LLM applications and models with confidence. Enhance your AI applications with end-to-end experiment tracking, observability, and evaluations, all in one integrated platform.


    🚀 Installation

    To install the MLflow Python package, run the following command:

    pip install mlflow
    

    📦 Core Components

    MLflow is the only platform that provides a unified solution for all your AI/ML needs, including LLMs, Agents, Deep Learning, and traditional machine learning.

    💡 For LLM / GenAI Developers

    Tracing

    🔍 Tracing / Observability

    Trace the internal states of your LLM/agentic applications for debugging quality issues and monitoring performance with ease.

    Getting Started →

    LLM Evaluation

    📊 LLM Evaluation

    A suite of automated model evaluation tools, seamlessly integrated with experiment tracking to compare across multiple versions.

    Getting Started →

    Prompt Management

    🤖 Prompt Management

    Version, track, and reuse prompts across your organization, helping maintain consistency and improve collaboration in prompt development.

    Getting Started →

    MLflow Hero

    📦 App Version Tracking

    MLflow keeps track of many moving parts in your AI applications, such as models, prompts, tools, and code, with end-to-end lineage.

    Getting Started →

    🎓 For Data Scientists

    Tracking

    📝 Experiment Tracking

    Track your models, parameters, metrics, and evaluation results in ML experiments and compare them using an interactive UI.

    Getting Started →

    Model Registry

    💾 Model Registry

    A centralized model store designed to collaboratively manage the full lifecycle and deployment of machine learning models.

    Getting Started →

    Deployment

    🚀 Deployment

    Tools for seamless model deployment to batch and real-time scoring on platforms like Docker, Kubernetes, Azure ML, and AWS SageMaker.

    Getting Started →

    🌐 Hosting MLflow Anywhere

    Providers

    You can run MLflow in many different environments, including local machines, on-premise servers, and cloud infrastructure.

    Trusted by thousands of organizations, MLflow is now offered as a managed service by most major cloud providers:

    For hosting MLflow on your own infrastructure, please refer to this guidance.

    🗣️ Supported Programming Languages

    🔗 Integrations

    MLflow is natively integrated with many popular machine learning frameworks and GenAI libraries.

    Integrations

    Usage Examples

    Experiment Tracking (Doc)

    The following examples trains a simple regression model with scikit-learn, while enabling MLflow's autologging feature for experiment tracking.

    import mlflow
    
    from sklearn.model_selection import train_test_split
    from sklearn.datasets import load_diabetes
    from sklearn.ensemble import RandomForestRegressor
    
    # Enable MLflow's automatic experiment tracking for scikit-learn
    mlflow.sklearn.autolog()
    
    # Load the training dataset
    db = load_diabetes()
    X_train, X_test, y_train, y_test = train_test_split(db.data, db.target)
    
    rf = RandomForestRegressor(n_estimators=100, max_depth=6, max_features=3)
    # MLflow triggers logging automatically upon model fitting
    rf.fit(X_train, y_train)
    

    Once the above code finishes, run the following command in a separate terminal and access the MLflow UI via the printed URL. An MLflow Run should be automatically created, which tracks the training dataset, hyper parameters, performance metrics, the trained model, dependencies, and even more.

    mlflow ui
    

    Evaluating Models (Doc)

    The following example runs automatic evaluation for question-answering tasks with several built-in metrics.

    import mlflow
    import pandas as pd
    
    # Evaluation set contains (1) input question (2) model outputs (3) ground truth
    df = pd.DataFrame(
        {
            "inputs": ["What is MLflow?", "What is Spark?"],
            "outputs": [
                "MLflow is an innovative fully self-driving airship powered by AI.",
                "Sparks is an American pop and rock duo formed in Los Angeles.",
            ],
            "ground_truth": [
                "MLflow is an open-source platform for productionizing AI.",
                "Apache Spark is an open-source, distributed computing system.",
            ],
        }
    )
    eval_dataset = mlflow.data.from_pandas(
        df, predictions="outputs", targets="ground_truth"
    )
    
    # Start an MLflow Run to record the evaluation results to
    with mlflow.start_run(run_name="evaluate_qa"):
        # Run automatic evaluation with a set of built-in metrics for question-answering models
        results = mlflow.evaluate(
            data=eval_dataset,
            model_type="question-answering",
        )
    
    print(results.tables["eval_results_table"])
    

    Observability (Doc)

    MLflow Tracing provides LLM observability for various GenAI libraries such as OpenAI, LangChain, LlamaIndex, DSPy, AutoGen, and more. To enable auto-tracing, call mlflow.xyz.autolog() before running your models. Refer to the documentation for customization and manual instrumentation.

    import mlflow
    from openai import OpenAI
    
    # Enable tracing for OpenAI
    mlflow.openai.autolog()
    
    # Query OpenAI LLM normally
    response = OpenAI().chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": "Hi!"}],
        temperature=0.1,
    )
    

    Then navigate to the "Traces" tab in the MLflow UI to find the trace records OpenAI query.

    💭 Support

    • For help or questions about MLflow usage (e.g. "how do I do X?") visit the documentation.
    • In the documentation, you can ask the question to our AI-powered chat bot. Click on the "Ask AI" button at the right bottom.
    • Join the virtual events like office hours and meetups.
    • To report a bug, file a documentation issue, or submit a feature request, please open a GitHub issue.
    • For release announcements and other discussions, please subscribe to our mailing list ([email protected]) or join us on Slack.

    🤝 Contributing

    We happily welcome contributions to MLflow!

    Please see our contribution guide to learn more about contributing to MLflow.

    ⭐️ Star History

    Star History Chart

    ✏️ Citation

    If you use MLflow in your research, please cite it using the "Cite this repository" button at the top of the GitHub repository page, which will provide you with citation formats including APA and BibTeX.

    👥 Core Members

    MLflow is currently maintained by the following core members with significant contributions from hundreds of exceptionally talented community members.

    Discover Repositories

    Search across tracked repositories by name or description