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 sofware engineering practices for applications with machine learning components.
Feel free to take and share the survey!
These resources cover all aspects.
- Best Practices for Machine Learning Applications
- Hidden Technical Debt in Machine Learning Systems ๐โญ
- Machine Learning Engineering Best Practices โญ
- Rules of Machine Learning: Best Practices for ML Engineering โญ
- Software Engineering for Machine Learning: A Case Study ๐โญ
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
- 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
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 ๐
- How do you manage your Machine Learning Experiments?
- Machine Learning Testing: Survey, Landscapes and Horizons ๐
- 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
- Preliminary Systematic Literature Review of Machine Learning System Development Process ๐
- Software development best practices in a deep learning environment
- Testing and Debugging in Machine Learning
- What Went Wrong and Why? Diagnosing Situated Interaction Failures in the Wild ๐
How to deploy and operate your models in a production environment.
- Best Practices in Machine Learning Infrastructure
- Continuous Delivery for Machine Learning โญ
- Continuous Training for Production ML in the TensorFlow Extended (TFX) Platform ๐
- Fairness Indicators: Scalable Infrastructure for Fair ML Systems ๐
- Machine Learning Logistics
- Machine learning: Moving from experiments to production
- ML Ops: Machine Learning as an engineered disciplined
- Model Governance Reducing the Anarchy of Production ๐
- ModelOps: Cloud-based lifecycle management for reliable and trusted AI
- Operational Machine Learning
- Scaling Machine Learning as a Service๐
- TFX: A tensorflow-based Production-Scale ML Platform ๐
- The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction ๐
- Versioning for end-to-end machine learning pipelines ๐
How to organize teams and projects to ensure effective collaboration and accountability.
- Data Scientists in Software Teams: State of the Art and Challenges ๐
- How do teams work together on an automated machine learning project?
- Machine Learning Interviews
- Managing Machine Learning Projects
- Principled Machine Learning: Practices and Tools for Efficient Collaboration
- Team Data Science Process Documentation
- Responsible AI practices โญ
Tooling can make your life easier.
We only share open source tools, or commercial platforms that offer substantial free packages for research.
- Airflow
- Auto-PyTorch
- Ax
- Data Version Control (DVC)
- Facets Overview / Facets Dive
- Git Large File System (LFS)
- HParams
- Kubeflow
- Label Studio
- MLFlow
- Neptune.ai
- Neuraxle
- OpenML
- Spark Machine Learning
- Sacred
- TensorBoard
- Tensorflow Extended (TFX)
- Weights & Biases
Contributions welcomed! Read the contribution guidelines first