azimuth

Helping AI practitioners better understand their datasets and models in text classification. From ServiceNow.

https://github.com/servicenow/azimuth

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (5.9%) to scientific vocabulary

Keywords

data-analysis error-analysis explainability explainable-ai machine-learning nlp saliency-map similarity-analysis text-classification uncertainty-quantification xai
Last synced: 6 months ago · JSON representation ·

Repository

Helping AI practitioners better understand their datasets and models in text classification. From ServiceNow.

Basic Info
Statistics
  • Stars: 68
  • Watchers: 7
  • Forks: 7
  • Open Issues: 51
  • Releases: 18
Topics
data-analysis error-analysis explainability explainable-ai machine-learning nlp saliency-map similarity-analysis text-classification uncertainty-quantification xai
Created almost 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.md




Tests Documentation Slack Licence DOI arXiv Azimuth

Azimuth, an open-source dataset and error analysis tool for text classification, with love from ServiceNow.

Overview

Azimuth is an open source application that helps AI practitioners and data scientists better understand their dataset and model predictions by performing thorough dataset and error analyses. The application leverages different tools, including robustness tests, semantic similarity analysis and saliency maps, unified by concepts such as smart tags and proposed actions. It currently only supports text classification use cases.

Published Paper at EMNLP

Our paper was accepted as a system demo at EMNLP 2022. It is available here.

Documentation

Our documentation contains all the instructions and references to use Azimuth.

  • Getting Started contains all the instructions to install and launch the app.
  • Key Concepts explains the different concepts and analyses that are provided in Azimuth to perform dataset and error analysis.
  • User Guide goes screen per screen to explain the different interactions and visualizations available.
  • Reference details the config file and the different contracts which allow configuring Azimuth with different datasets and pipelines.
  • Development guides on how to develop and contribute to the repo.

YouTube Playlist

Run Our Demo

After installing the requirements, as explained in Installation, run the following command to run the demo. More details in Learn Basics.

pip install gdown make download_demo make CFG_PATH=/config/development/clinc/conf.json launch

Once the startup tasks are completed, you will be able to access Azimuth at http://localhost:8080. To learn more about Azimuth's features, refer to our Key Concepts and our User Guide.

To use your own dataset and models, please refer to Run on Your Use Case.

How to Contribute?

Refer to our CONTRIBUTING.md.

Code Documentation

At different places in the code, you'll find README files explaining further how the back end works. Don't hesitate to add other README files in appropriate places, and don't forget to edit them if you change these components.

Repo Structure

bash ├── azimuth # Back End │   ├── modules │   │   └── Where core capabilities are implemented │   ├── plots │   │   └── Plotting functions │   ├── routers │   │   └── FastAPI routers │   ├── types │   │   └── Specific pydantic types that this application is based on │   ├── utils │   │   └── Extra utilities ├── azimuth_shr │   └── Custom code that is shareable. ├── config │   └── Config files for different data/models ├── docs │   └── User documentation ├── tests │   └── Unit/integration tests ├── webapp │   └── Front End ├── docker-compose.yml # Where the config and images are specified. ├── docker-compose-gpu.yml # Extension to use Azimuth with gpus. └── runner.py # Application entrypoint.

Contact

To contact us, join our slack or send us an email!

License

The package is licensed by ServiceNow, Inc. under the Apache 2.0 license. See LICENSE for more details.

Vulnerability Reporting

Please notify psirt-oss@servicenow.com regarding any vulnerability reports in addition to following current reporting procedure.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use Azimuth in your projects, please cite it as below."
authors:
- family-names: Branchaud-Charron
  given-names: Frederic
- family-names: Gauthier-Melancon
  given-names: Gabrielle
- family-names: Marinier
  given-names: Joseph
- family-names: Brin
  given-names: Lindsay
- family-names: Tyler
  given-names: Chris
- family-names: Le
  given-names: Di
- family-names: Grande
  given-names: Karine
- family-names: Babu
  given-names: Nandhini
title: "Azimuth, an open-source dataset and error analysis tool for text classification"
version: 2.5
date-released: 2022-08-17
url: "https://servicenow.github.io/azimuth"
repository-code: "https://github.com/ServiceNow/azimuth"
license: Apache-2.0
identifiers:
  - type: doi
    value: 10.5281/zenodo.6511558
preferred-citation:
  type: conference-paper
  title: "Azimuth: Systematic Error Analysis for Text Classification"
  authors:
  - family-names: Gauthier-Melancon
    given-names: Gabrielle
  - family-names: Marquez-Ayala
    given-names: Orlando
  - family-names: Brin
    given-names: Lindsay
  - family-names: Tyler
    given-names: Chris
  - family-names: Branchaud-Charron
    given-names: Frederic
  - family-names: Marinier
    given-names: Joseph
  - family-names: Grande
    given-names: Karine
  - family-names: Le
    given-names: Di
  collection-title: "Proceedings of the 2022 Conference on Empirical Methods in Natural Language Processing: System Demonstrations"
  collection-type: proceedings
  month: 12
  year: 2022
  publisher:
    name: "Association for Computational Linguistics"
  url: "https://aclanthology.org/2022.emnlp-demos.30/"
  identifiers:
  - type: other
    value: "arXiv:2212.08216"
    description: "The arXiv preprint of the paper"

GitHub Events

Total
  • Watch event: 5
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 2
  • Pull request event: 8
  • Fork event: 3
  • Create event: 4
Last Year
  • Watch event: 5
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 2
  • Pull request event: 8
  • Fork event: 3
  • Create event: 4

Dependencies

.github/workflows/docker_cd.yml actions
  • actions/checkout v3 composite
  • docker/login-action v2 composite
.github/workflows/docs_cd.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/pythonci.yml actions
  • Gr1N/setup-poetry v8 composite
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v1 composite
.github/workflows/self-assign.yml actions
.github/workflows/webapp_ci.yml actions
  • actions/cache v2 composite
  • actions/checkout v3 composite
  • actions/setup-node v3.1.1 composite
Dockerfile docker
  • build_${DEVICE} latest build
  • python 3.9 build
  • pytorch/pytorch 1.13.0-cuda11.6-cudnn8-runtime build
docker-compose-gpu.yml docker
docker-compose.yml docker
  • ${REGISTRY}/azimuth ${BACKEND_VERSION}_${DEVICE}
  • ${REGISTRY}/azimuth-app ${FRONTEND_VERSION}
webapp/Dockerfile docker
  • base latest build
  • node 14.17.5 build
  • test latest build
webapp/package.json npm
  • @testing-library/jest-dom ^5.14.1 development
  • @testing-library/react ^12.0.0 development
  • @types/history ^4.7.11 development
  • @types/jest ^26.0.23 development
  • @types/lodash ^4.14.170 development
  • @types/node ^12.0.0 development
  • @types/react ^17.0.37 development
  • @types/react-dom ^17.0.11 development
  • @types/react-plotly.js ^2.2.4 development
  • @types/react-router-dom ^5 development
  • http-proxy-middleware ^1.0.6 development
  • msw ^0.35.0 development
  • openapi-typescript ^4.0.1 development
  • react-app-rewired ^2.1.5 development
  • typescript ^4.5.2 development
  • @emotion/react ^11.7.0
  • @emotion/styled ^11.6.0
  • @mui/icons-material ^5.5.1
  • @mui/material ^5.5.1
  • @mui/styles ^5.5.1
  • @mui/system ^5.5.1
  • @mui/x-data-grid ^5.6.1
  • @reduxjs/toolkit ^1.8.1
  • cors ^2.8.5
  • express ^4.17.3
  • framer-motion ^4.1.17
  • lodash ^4.17.21
  • plotly.js ^1.58.4
  • react ^17.0.2
  • react-dom ^17.0.2
  • react-hook-form ^6.11.5
  • react-plotly.js ^2.5.1
  • react-redux ^7.2.4
  • react-router-dom ^5
  • react-scripts ^5.0.1
  • react-toastify ^7.0.4
webapp/yarn.lock npm
  • 1674 dependencies
poetry.lock pypi
  • 264 dependencies
pyproject.toml pypi
  • bokeh <3 develop
  • ipywidgets >=7.6 develop
  • jupyterlab ^3.0.5 develop
  • matplotlib ^3.4.1 develop
  • memory-profiler ^0.61.0 develop
  • pyinstrument ^4.3.0 develop
  • mkdocs ^1.2.3 docs
  • mkdocs-material ^8.1.7 docs
  • hdbscan ^0.8.27 experimental
  • seaborn 0.11.2 experimental
  • umap-learn ^0.5.1 experimental
  • aiofiles ^0.6.0
  • baal 1.5.2
  • dask 2021.12.0
  • datasets 2.1.0
  • distributed 2021.12.0
  • en_core_web_sm *
  • faiss-cpu =1.6.5
  • fastapi 0.65.3
  • filelock ^3.0.12
  • fr_core_news_md *
  • jsonlines ^3.1.0
  • nlpaug 1.1.10
  • numpy 1.23.5
  • onnx ^1.12.0
  • onnxruntime 1.12.1
  • onnxruntime-extensions 0.3.1
  • onnxruntime-gpu 1.12.1
  • orjson 3.6.3
  • pandas >=1.0.5,<2,!=1.1.0
  • plotly ^5.3.1
  • pydantic ^1.3
  • python >=3.9,<3.10
  • retrying ^1.3.3
  • scikit-learn ^1.0.1
  • scipy ^1.10.0
  • sentence-transformers 2.1.0
  • spacy 3.1.5
  • spectral-metric 0.6.1
  • structlog 21.1
  • tensorflow 2.11.0
  • tensorflow-estimator 2.11.0
  • tensorflow-text 2.11.0
  • torch 1.13.1
  • tqdm 4.63.0
  • transformers 4.16.2
  • uvicorn ^0.13.4
  • bandit ^1.7.0 test
  • black >=20.8b1 test
  • flake8 >=3.8 test
  • flake8-black 0.2.4 test
  • isort ^5.9.3 test
  • mypy ^0.910 test
  • pre-commit ^2.15.0 test
  • pytest ^6.0 test
  • pytest-cov 2.11.1 test
  • pytest-env ^0.6.2 test
  • types-filelock ^0.1.5 test
  • types-orjson ^3.6.0 test
  • types-simplejson ^3.17.0 test