Awesome Software Engineering for Machine Learning 

Software Engineering for Machine Learning are techniques and guidelines for building ML applications that do not concern the core ML problem -- e.g. the development of new algorithms -- but rather the surrounding activities like data ingestion, coding, testing, versioning, deployment, quality control, and team collaboration. Good software engineering practices enhance development, deployment and maintenance of production level applications using machine learning components.
⭐ Must-read
🎓 Scientific publication
Based on this literature, we compiled a survey on the adoption of software engineering practices for applications with machine learning components.
Feel free to take and share the survey and to read more!
Contents
- Broad Overviews
- Data Management
- Model Training
- Deployment and Operation
- Social Aspects
- Governance
- Tooling
Broad Overviews
These resources cover all aspects. - AI Engineering: 11 Foundational Practices ⭐ - Best Practices for Machine Learning Applications - Engineering Best Practices for Machine Learning ⭐ - Hidden Technical Debt in Machine Learning Systems 🎓⭐ - Rules of Machine Learning: Best Practices for ML Engineering ⭐ - Software Engineering for Machine Learning: A Case Study 🎓⭐
Data Management
How to manage the data sets you use in machine learning.
- A Survey on Data Collection for Machine Learning A Big Data - AI Integration Perspective_2019 🎓
- Automating Large-Scale Data Quality Verification 🎓
- Data management challenges in production machine learning
- Data Validation for Machine Learning 🎓
- How to organize data labelling for ML
- The curse of big data labeling and three ways to solve it
- The Data Linter: Lightweight, Automated Sanity Checking for ML Data Sets 🎓
- The ultimate guide to data labeling for ML
Model Training
How to organize your model training experiments.
- 10 Best Practices for Deep Learning
- Apples-to-apples in cross-validation studies: pitfalls in classifier performance measurement 🎓
- Fairness On The Ground: Applying Algorithmic FairnessApproaches To Production Systems🎓
- How do you manage your Machine Learning Experiments?
- Machine Learning Testing: Survey, Landscapes and Horizons 🎓
- Nitpicking Machine Learning Technical Debt
- On Comparing Classifiers: Pitfalls to Avoid and a Recommended Approach 🎓⭐
- On human intellect and machine failures: Troubleshooting integrative machine learning systems 🎓
- Pitfalls and Best Practices in Algorithm Configuration 🎓
- Pitfalls of supervised feature selection 🎓
- Preparing and Architecting for Machine Learning