Skip to main content

Data-Centric AI Benchmark

This is a benchmark that tests various data-centric aspects of improving the quality of machine learning workflows.

It features a growing list of tasks:

  • Minimal data cleaning (miniclean)
  • Task-specific Label Correction (labelfix)
  • Discovery of validation Error Modalities (errmod)
  • Minimal training dataset selection (minitrain)

Each task features a collection of scenarios which are defined by datasets and ML pipeline elements (e.g. a model, feature pre-processors, etc.)

Basic Usage

The very first step is to install the PyPI package:

pip install dcai

Then, we advise using Jupyter notebooks or some other interactive environment. You start off by importing the library and listing all the available artefacts:

from dcai import scenarios

scenarios.list()

You can then load a specific scenario and view its artefacts:

scenario = scenarios.get("miniclean/bank")
scenario.artefacts

In the above example we are loading the bank scenario of the miniclean task. We can then load all the artefacts into a dictionary:

a = scenario.artefacts.load()

This automatically downloads all the available artefacts, saves a local copy and loads it into memory. Artefacts can be accessed directly from the dictionary. We can then go ahead and write the code that will provide us with a scenario-specific solution:

model.fit(a["X_train_dirty"], a["y_train"])

X_train_selection = ...

Once we have an object (e.g. X_train_selection) containing the scenario-specific solution, we can package it into a solution object:

solution = scenario.solve(X_train_selection=X_train_selection)

We can then perform an evaluation on that solution that will give us the result:

solution.evaluate()
solution.result

After you're happy with the obtained result, you can bundle your solution artefacts and see their location.

solution.save()
solution.location

After obtaining the /path/to/your/artefacts you can upload it as a bundle to CodaLab:

cl upload /path/to/your/artefacts

This command will display the URL of your uploaded bundle. It assumes that you have a user account on CodaLab (click here for more info).

After that, you simply go to our FORM LINK, fill it in with all required details and paste the bundle link so we can run a full evaluation on it.

Congratulations! Your solution is now uploaded to our system and after evaluation it will show up on the leaderboard.

Adding a Submitted solution to the Repo

This step is performed manually by us (although it could be possible to automate). It looks like this:

dcai add-solution \
    --scenario miniclean/bank \
    --name MySolution \
    --paper https://arxiv.org/abs/... \
    --code https://github.com/... \
    --artefacts-url https://worksheets.codalab.org/rest/bundles/...

Performing the Full Evaluation

This step is performed by GitHub Actions and is triggered after each commit.

dcai evaluate --leaderboard-output /path/to/leaderboard/dir

Metadata

Release files for dcbench 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dcbench 0.0.1
File Size Uploaded
dcbench-0.0.1.tar.gz 20.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dcbench 0.0.1
File Interpreter ABI Platform
dcbench-0.0.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 41.5 kB

Release files / dcbench-0.0.1.tar.gz

Download URL dcbench-0.0.1.tar.gz
Size 20.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5ef6c2e2a66c6f4cbe01366d332eb9f0df0f71ad4fdce5bdd04cd136942e1ba5
BLAKE2b-256 checksum
How to use checksums
cbccc18c85cc339de21c264ba1e7cdf4fe1c8b95a7f456f08bef7aaac9f8e7fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.10

Release files / dcbench-0.0.1-py2.py3-none-any.whl

Download URL dcbench-0.0.1-py2.py3-none-any.whl
Size 21.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
6a7e7735a6cf296305a14285cb12d44c64237ee51b1b357ac121a20af5756b35
BLAKE2b-256 checksum
How to use checksums
5beeadd10d76ae1fa91c44341ea79fb17882f9c7ef8c4dfd7733c775e2052fe5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.10

Release history Release notifications | RSS feed

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page