# Michelangelo AI

> Source: <https://michelangelo-ai.org/>
> Published: 2026-11-13 04:56:40+00:00

Proven at Uber Scale

400+Active ML projects

20K+Model training jobs / month

5K+Models in production

45M+Real-time predictions / sec (peak)

## Everything you need for ML in production

### Feature Management

Coming Soon
Centralized feature store with versioning, lineage tracking, and real-time serving for consistent ML features across training and inference.

### Model Training

Scalable distributed training with experiment tracking, hyperparameter tuning, and automatic resource management.

### Evaluation

Coming Soon
Comprehensive model evaluation with automated metrics, A/B testing, and performance benchmarking across datasets.

### Deployment

One-click deployment to production with canary releases, traffic splitting, and automatic rollback capabilities.

### Monitoring

Coming Soon
Real-time model monitoring with drift detection, alerting, and observability for production ML systems.

## Simple, powerful API

From training to production in minutes

```
1import michelangelo.uniflow.core as uniflow2from michelangelo.uniflow.plugins.ray import RayTask3
4@uniflow.task(config=RayTask(head_cpu=2, worker_instances=2))5def train(train_data, validation_data, params: dict):6    """Distributed training with Ray."""7    trainer = XGBoostTrainer(8        params=params,9        datasets={"train": train_data, "validation": validation_data},10    )11    return trainer.fit()12
13@uniflow.workflow()14def train_workflow(dataset: str):15    """End-to-end ML training pipeline."""16    train_data, val_data = load_and_split(dataset)17    result = train(train_data, val_data, params={"max_depth": 5})18    return result19
20if __name__ == "__main__":21    ctx = uniflow.create_context()22    ctx.run(train_workflow, dataset="s3://data/training.parquet")
```


