{"slug": "michelangelo-ai", "title": "Michelangelo AI", "summary": "Uber has published Michelangelo AI, an ML platform it says is proven at its own scale, handling 400+ active ML projects, 20K+ model training jobs per month, 5K+ models in production and 45M+ real-time predictions per second at peak. The platform ships feature management, model training, evaluation, deployment and monitoring, with feature management, evaluation and monitoring marked \"Coming Soon,\" and exposes a Python API built on the michelangelo.uniflow library with a Ray plugin for distributed training. The release gives developers a documented workflow for training and deploying models, though three of its five core modules are not yet available.", "body_md": "Proven at Uber Scale\n\n400+Active ML projects\n\n20K+Model training jobs / month\n\n5K+Models in production\n\n45M+Real-time predictions / sec (peak)\n\n## Everything you need for ML in production\n\n### Feature Management\n\nComing Soon\nCentralized feature store with versioning, lineage tracking, and real-time serving for consistent ML features across training and inference.\n\n### Model Training\n\nScalable distributed training with experiment tracking, hyperparameter tuning, and automatic resource management.\n\n### Evaluation\n\nComing Soon\nComprehensive model evaluation with automated metrics, A/B testing, and performance benchmarking across datasets.\n\n### Deployment\n\nOne-click deployment to production with canary releases, traffic splitting, and automatic rollback capabilities.\n\n### Monitoring\n\nComing Soon\nReal-time model monitoring with drift detection, alerting, and observability for production ML systems.\n\n## Simple, powerful API\n\nFrom training to production in minutes\n\n```\n1import michelangelo.uniflow.core as uniflow2from michelangelo.uniflow.plugins.ray import RayTask3\n4@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\n13@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\n20if __name__ == \"__main__\":21    ctx = uniflow.create_context()22    ctx.run(train_workflow, dataset=\"s3://data/training.parquet\")\n```\n\n", "url": "https://wpnews.pro/news/michelangelo-ai", "canonical_source": "https://michelangelo-ai.org/", "published_at": "2026-11-13 04:56:40+00:00", "updated_at": "2026-11-13 05:21:19.569781+00:00", "lang": "en", "topics": ["machine-learning", "mlops", "ai-infrastructure", "developer-tools"], "entities": ["Uber", "Michelangelo AI", "michelangelo.uniflow", "Ray", "XGBoostTrainer"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/michelangelo-ai", "markdown": "https://wpnews.pro/news/michelangelo-ai.md", "text": "https://wpnews.pro/news/michelangelo-ai.txt", "jsonld": "https://wpnews.pro/news/michelangelo-ai.jsonld"}}