Nannyml
nannyml: post-deployment data science in python
Install / Use
/learn @NannyML/NannymlREADME
💡 What is NannyML?
NannyML is an open-source python library that allows you to estimate post-deployment model performance (without access to targets), detect data drift, and intelligently link data drift alerts back to changes in model performance. Built for data scientists, NannyML has an easy-to-use interface, interactive visualizations, is completely model-agnostic and currently supports all tabular use cases, classification and regression.
The core contributors of NannyML have researched and developed multiple novel algorithms for estimating model performance: confidence-based performance estimation (CBPE) and direct loss estimation (DLE). The nansters also invented a new approach to detect multivariate data drift using PCA-based data reconstruction.
If you like what we are working on, be sure to become a Nanster yourself, join our community slack <img src="https://raw.githubusercontent.com/NannyML/nannyml/main/media/slack.png" height='15'> and support us with a GitHub <img src="https://raw.githubusercontent.com/NannyML/nannyml/main/media/github.png" height='15'> star ⭐.
☔ Why use NannyML?
NannyML closes the loop with performance monitoring and post deployment data science, empowering data scientist to quickly understand and automatically detect silent model failure. By using NannyML, data scientists can finally maintain complete visibility and trust in their deployed machine learning models. Allowing you to have the following benefits:
- End sleepless nights caused by not knowing your model performance 😴
- Analyse data drift and model performance over time
- Discover the root cause to why your models are not performing as expected
- No alert fatigue! React only when necessary if model performance is impacted
- Painless setup in any environment
🧠 GO DEEP
| NannyML Resources | Description | | --------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | ☎️ NannyML 101 | New to NannyML? Start here! | | 🔮 Performance estimation | How the magic works. | | 🌍 Real world example | Take a look at a real-world example of NannyML. | | 🔑 Key concepts | Glossary of key concepts we use. | | 🔬 Technical reference | Monitor the performance of your ML models. | | 🔎 Blog | Thoughts on post-deployment data science from the NannyML team. | | 📬 Newsletter | All things post-deployment data science. Subscribe to see the latest papers and blogs. | | 💎 New in v0.13.1 | New features, bug fixes. | | 🧑💻 Contribute | How to contribute to the NannyML project and codebase. | | <img src="https://raw.githubusercontent.com/NannyML/nannyml/main/media/slack.png" height='15'> Join slack | Need help with your specific use case? Say hi on slack! |
🔱 Features
1. Performance estimation and monitoring
When the actual outcome of your deployed prediction models is delayed, or even when post-deployment target labels are completely absent, you can use NannyML's CBPE-algorithm to estimate model performance for classification or NannyML's DLE-algorithm for regression. These algorithms provide you with any estimated metric you would like, i.e. ROC AUC or RSME. Rather than estimating the performance of future model predictions, CBPE and DLE estimate the expected model performance of the predictions made at inference time.
<p><img src="https://raw.githubusercontent.com/NannyML/nannyml/main/docs/_static/tutorials/performance_calculation/regression/tutorial-performance-calculation-regression-RMSE.svg"></p>NannyML can also track the realised performance of your machine learning model once targets are available.
2. Data drift detection
To detect multivariate feature drift NannyML uses PCA-based data reconstruction. Changes in the resulting reconstruction error are monitored over time and data drift alerts are logged when the reconstruction error in a certain period exceeds a threshold. This threshold is calculated based on the reconstruction error observed in the reference period.
<p><img src="https://raw.githubusercontent.com/NannyML/nannyml/main/docs/_static/how-it-works/butterfly-multivariate-drift-pca.svg"></p>NannyML utilises statistical tests to detect univariate feature drift. We have just added a bunch of new univariate tests including Jensen-Shannon Distance and L-Infinity Distance, check out the comprehensive list. The results of these tests are tracked over time, properly corrected to counteract multiplicity and overlayed on the temporal feature distributions. (It is also possible to visualise the test-statistics over time, to get a notion of the drift magnitude.)
<p><img src="https://raw.githubusercontent.com/NannyML/nannyml/main/docs/_static/drift-guide-joyplot-distance_from_office.svg"><img src="docs/_static/Related Skills
tmux
334.1kRemote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
claude-opus-4-5-migration
82.1kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
model-usage
334.1kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
blogwatcher
334.1kMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
