Skip to main content

Errudite

This opensourcing is work-in-progress!

Errudite is an interactive tool for scalable, reproducible, and counterfactual error analysis. Errudite provides an expressive domain-specific language for extracting relevant features of linguistic data, which allows users to visualize data attributes, group relevant instances, and perform counterfactual analysis across all available validation data.

Getting Started

  1. Watch this video demo that contains the highlights of Errudite's functions & use cases
  2. Get set up quickly
  3. Try Errudite's user interface on machine comprehension
  4. Try the tutorials on JupyterLab notebooks
  5. Read the documentation

Citation

If you are interested in this work, please see our ACL 2019 research paper and consider citing our work:

@inproceedings{2019-errudite,
    title = {Errudite: Scalable, Reproducible, and Testable Error Analysis},
    author = {Wu, Tongshuang and Ribeiro, Marco Tulio and Heer, Jeffrey and Weld Daniel S.},
  booktitle={the 57th Annual Meeting of the Association for Computational Linguistics (ACL 2019)},
    year = {2019},
    url = {https://homes.cs.washington.edu/~wtshuang/files/acl2019_errudite.pdf},
}

Quick Start

Installation

PIP

Errudite requires Python 3.6.x. The package is avaiable through pip: Just install it in your Python environment and you're good to go!

# create the virtual environment
virtualenv --no-site-packages -p python3.6 venv
# activate venv
source venv/bin/activate
# install errudite
pip install errudite

Install from source

You can also install Errudite by cloning our git repository:

git clone https://github.com/uwdata/errudite

Create a Python 3.6 virtual environment, and install Errudite in editable mode by running:

pip install --editable .

This will make errudite available on your system but it will use the sources from the local clone you made of the source repository.

GUI Server

Errudite has a UI wrapped for Machine Comprehension and Visual Question Answering tasks. The interface integrates all the key analysis functions (e.g., inspecting instance attributes, grouping similar instances, rewriting instances), It also provides exploration support such as visualizing data distributions, suggesting potential queries, and presenting the grouping and rewriting results. While not strictly necessary, it makes their application much more straightforward.

To get a taste of GUI for the machine comprehension task, you should first download a cache folder for preprocessed SQuAD instances, which will help you skip the process of running your own preprocessing:

python -m errudite.download

Commands:
    cache_folder_name
                A folder name. Currently, we allow downloading the following:
                squad-100, squad-10570.
    cache_path  A local path where you want to save the cache folder to.

Then, we need to start the server:

# the model relies on Allennlp, so make sure you install that first.
pip install allennlp==0.8.4
source venv/bin/activate
python -m errudite.server

Commands:
    config_file
                A yaml config file path.

The config file looks like the following (or in config.yml):

task: qa # the task, should be "qa" and "vqa".
cache_path: {cache_path}/{cache_folder_name}/ # the cached folder.
model_metas: # a model.
- name: bidaf
  model_class: bidaf # an implemented model class
  model_path: # a local model file path
  # an online path to an Allennlp model
  model_online_path: https://s3-us-west-2.amazonaws.com/allennlp/models/bidaf-model-2017.09.15-charpad.tar.gz
  description: Pretrained model from Allennlp, for the BiDAF model (QA)
attr_file_name: null # It set, to load previously saved analysis.
group_file_name: null
rewrite_file_name: null

Then visit http://localhost:5000/ in your web browser.

JupyterLab Tutorial

Besides used in a GUI, errudite also serves as a general python package. The tutorial goes through:

  1. Preprocessing the data, and extending Errudite to different tasks & predictors
  2. Creating data attributes and data groups with a domain specific language (or your customized functions).
  3. Creating rewrite rules with the domain specific language (or your customized functions).

To go through the tutorial, do the following steps:

# clone the repo
git clone https://github.com/uwdata/errudite
# initial folder: errudite/
# create the virtual environment
virtualenv --no-site-packages -p python3.6 venv
# activate venv
source venv/bin/activate

# run the default setup script
pip install --editable .

# get to the tutorial folder, and start!
cd tutorials
pip install -r requirements_tutorials.txt
jupyter lab

Metadata

Release files for errudite 0.0.3

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

Source distribution (sdist)

Source distribution for errudite 0.0.3
File Size Uploaded Provenance Actions
errudite-0.0.3.tar.gz 127.3 kB Without provenance Details for errudite-0.0.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for errudite 0.0.3
File Interpreter ABI Platform Actions
errudite-0.0.3-py3-none-any.whl Python 3 none any Details for errudite-0.0.3-py3-none-any.whl

Total release size: 3.9 MB

Release files / errudite-0.0.3.tar.gz

Download URL errudite-0.0.3.tar.gz
Size 127.3 kB
Tags Source
SHA-256 checksum
How to use checksums
48c81f2df6af0f33535278dfe7cc854b3d3cc2ee2c96fab963e363586262be1c
BLAKE2b-256 checksum
How to use checksums
514173279ed5a3e9eadaa11f536b22ca23a621f5cdd0ce2813b979ce1024a173
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.5

Release files / errudite-0.0.3-py3-none-any.whl

Download URL errudite-0.0.3-py3-none-any.whl
Size 3.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
8a4d5274ce01bf35633f21c3a71831d4d39539de62ddb0942c5da461192a6705
BLAKE2b-256 checksum
How to use checksums
38bbf3277869abb80aa5ae258e210bf7454526872f9739a73bdab35249468c2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.5

Security for errudite 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files No provenance

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