Skip to content

Latest commit

 

History

History
208 lines (141 loc) · 33.4 KB

README.md

File metadata and controls

208 lines (141 loc) · 33.4 KB

Awesome open data-centric AI

Open source tooling for data-centric AI on unstructured data

Awesome

Data-centric AI (DCAI) is a development paradigm for ML-based solutions. The term was coined by Andrew Ng who gave the following definition:

Data-centric AI is the practice of systematically engineering the data used to build AI systems.

At Renumics, we believe DCAI is an important puzzle piece for building real-world AI systems that generate value. We like the following definition:

Data-centric AI means to improve training datasets systematically and iteratively by leveraging information from trained ML models.

Tools that can be efficiently used in day-to-day applications are the most important ingredient for the DCAI paradigm. This curated link collection is intended to help you discover useful open source tools for your data-centric AI workflows.

🔎 Scope

We include useful tools that have an open-source license and are actively maintained in this collection. All tools mentioned are useful for building DCAI workflows on unstructured data (e.g. images, audio, video, time-series, text).

We also collect workflow snippets into a data-centric AI playbook that show how typical tasks can be solved with open source tooling.

In order to keep a useful focus and to prevent duplicate work, we exclude some topics from this list such as tooling for tabular data, dedicated labeling tools, MLOps tooling as well as research papers. Please check out the further reading section to find awesome lists for these topics.

👐 Contributing

Do you think something is missing? Please help contribute to this list by contacting us or adding a pull request.

🧰 Tooling

📒 Categories

Data versioning

Logo Name Description Popularity License
Data version control (DVC) Data Version Control or DVC is a command line tool and VS Code Extension to help you develop reproducible machine learning projects. GitHub stars
deeplake Data Lake for Deep Learning. Build, manage, query, version, & visualize datasets. GitHub stars
Pachyderm Pachyderm – Automate data transformations with data versioning and lineage. GitHub stars
Delta Lake An open-source storage framework that enables building a Lakehouse architecture. GitHub stars
lakeFS lakeFS is an open-source tool that transforms your object storage into a Git-like repository. GitHub stars

Embeddings and pre-trained models

Logo Name Description Popularity License
towhee Towhee is a framework that is dedicated to making neural data processing pipelines simple and fast. GitHub stars
Tensorflow Hub TensorFlow Hub is a repository of reusable assets for machine learning with TensorFlow. GitHub stars
Huggingface transformers State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX. GitHub stars
Lightly Lightly is a computer vision framework for self-supervised learning. GitHub stars

Visualization and Interaction

Logo Name Description Popularity License
Renumics Spotlight Curation tool for unstructured data that connects your stack to the data-centric AI ecosystem. GitHub stars
FiftyOne The open-source tool for building high-quality datasets and computer vision models. GitHub stars
refinery The data scientist's open-source choice to scale, assess and maintain natural language data. GitHub stars
Argilla Argilla helps domain experts and data teams to build better NLP datasets in less time. GitHub stars
Xtreme1 Xtreme1 is the world's first open-source platform for multisensory training data. GitHub stars
YData Profiling YData Profiling is a python package to perform Exploratory Data Analysis (EDA) for tabular and time-series data. GitHub stars

Outlier and noise detection

Logo Name Description Popularity License
Cleanlab Cleanlab facilitates machine learning with messy, real-world data by providing clean labels for robust training and flagging errors in your data. GitHub stars
PyOD PyOD A Comprehensive and Scalable Python Library for Outlier Detection (Anomaly Detection) GitHub stars
TODS An full-stack automated time-series outlier detection system. GitHub stars
Alibi Detect Algorithms for outlier, adversarial and drift detection. GitHub stars

Explainability

Logo Name Description Popularity License
SHAP A game theoretic approach to explain the output of any machine learning model. GitHub stars
Alibi Alibi is an open source Python library aimed at machine learning model inspection and interpretation. GitHub stars
LIME LIME Explaining the predictions of any machine learning classifier. GitHub stars
Captum Model interpretability and understanding for PyTorch. GitHub stars

Active learning

Logo Name Description Popularity License
modAL A modular active learning framework for Python. GitHub stars
Bayesian Active Learning (Baal) Library to enable Bayesian active learning in your research or labeling work. GitHub stars

Uncertainty quantification

Logo Name Description Popularity License
Uncertainty Toolbox A Python toolbox for predictive uncertainty quantification, calibration, metrics, and visualization. GitHub stars
MAPIE A scikit-learn-compatible module for estimating prediction intervals. GitHub stars

Bias and fairness

Logo Name Description Popularity License
AIF360 The AI Fairness 360 toolkit helps to detect and mitigate bias in machine learning models throughout the AI application lifecycle. GitHub stars
Fairlearn A Python package to assess and improve fairness of machine learning models. GitHub stars

Observability and Monitoring

Logo Name Description Popularity License
Arize-Phoenix Arize-Phoenix is a Python library for ML observability (monitoring + root-cause analysis) for tabular, CV, NLP, and LLM models. GitHub stars
Deepchecks Deepchecks is a Python package for comprehensively validating your machine learning models and data with minimal effort. GitHub stars
Evidently An open-source framework to evaluate, test and monitor ML models in production. GitHub stars
langfuse Open source observability and analytics for LLM applications. GitHub stars
langkit An open-source toolkit for monitoring Large Language Models (LLMs). GitHub stars

Augmentation and synthetic data

Logo Name Description Popularity License
Albumentations Fast image augmentation library and an easy-to-use wrapper around other libraries. GitHub stars
Gretel Synthetics Synthetic data generators for structured and unstructured text, featuring differentially private learning. GitHub stars
SDV Synthetic Data Generation for tabular, relational and time series data. GitHub stars
YData Synthetic YData Synthetic is a python package to generate synthetic tabular and time-series data by leveraging state-of-the-art generative models. GitHub stars

Security and robustness

Logo Name Description Popularity License
CleverHans An adversarial example library for constructing attacks, building defenses, and benchmarking both. GitHub stars
Adversarial Robustness Toolbox Python Library for Machine Learning Security - Evasion, Poisoning, Extraction, Inference - Red and Blue Teams. GitHub stars
Foolbox Foolbox is a Python library that lets you easily run adversarial attacks against machine learning models like deep neural networks. GitHub stars
Giskard The testing framework for ML models, from tabular to LLMs. GitHub stars
LLM-Guard The Security Toolkit for LLM Interactions. GitHub stars
guardrails Adding guardrails to large language models. GitHub stars

🏀 Data-centric AI playbook

Exploratory data analysis (EDA)

Name Data type Description Notebook
Understand distributions image Use the Huggingface transformers library to compute image embeddings and explore the dataset based on the similarity map and additional metdata. Open In Colab

Cleaning

Name Data type Description Notebook
Detect duplicates agnostic Use the Annoy library to detect nearest neighbors in the embedding space and inspect data points that are duplicates / near duplicates. Open In Colab
Detect outliers agnostic Use the Cleanlab library to compute outlier scores based on model output (embeddings, probabilities) and inspect outlier candidates. Open In Colab
Detect image issues image Use the Cleanvision library to extrapact typical image issues (brightness, blurr, aspect ratio, SNR and duplicates) and identify critical segments through manual inspection. Open In Colab

Annotation

Name Data type Description Notebook
Find label inconsistencies agnostic Use the Cleanlab library to compute label error flags based on model probabilities and manually inspect critical data segments. Open In Colab

Modeling

Name Data type Description Notebook
Detect leakage agnostic Use nearest neighbor distances to identify candidates for data leakage and manual inspect them Open In Colab

Validation

Name Data type Description Notebook
Inspect decision boundaries agnostic Compute a decision boundary score based on certainty ratios and inspect the results in a scatter plot. Open In Colab

Monitoring

Name Data type Description Notebook
Detect data drift agnostic Compute the cosine distance of the k-nearest neighbor in the embedding space as the drift distance and inspect critical segments. Open In Colab

📖 Further reading

In order to keep a useful focus and to prevent duplicate work, we excluded some topics from this list. Read more about them here:

  1. DCAI tools for tabular data. There is an awesome list for that maintained by the Ydata team.
  2. Labeling tools. Although labeling is part of the DCAI workflow, we refer to the awesome list of the ZenML team on that topic.
  3. MLOps tooling. We exclude all topics that are clearly out of the DCAI scope and refer to established MLOps awesome lists for these tools.
  4. Research papers. We focus on industrial-ready open source tooling, check out this list for a research-oriented view on DCAI.