Coder Social home page Coder Social logo

majingxiang / lit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pair-code/lit

0.0 1.0 0.0 3 MB

The Language Interpretability Tool: Interactively analyze NLP models for model understanding in an extensible and framework agnostic interface.

License: Apache License 2.0

JavaScript 0.47% Python 35.91% TypeScript 60.19% CSS 3.25% HTML 0.19%

lit's Introduction

๐Ÿ”ฅ Language Interpretability Tool (LIT)

The Language Interpretability Tool (LIT) is a visual, interactive model-understanding tool for NLP models.

LIT is built to answer questions such as:

  • What kind of examples does my model perform poorly on?
  • Why did my model make this prediction? Can this prediction be attributed to adversarial behavior, or to undesirable priors in the training set?
  • Does my model behave consistently if I change things like textual style, verb tense, or pronoun gender?

Example of LIT UI

LIT supports a variety of debugging workflows through a browser-based UI. Features include:

  • Local explanations via salience maps, attention, and rich visualization of model predictions.
  • Aggregate analysis including custom metrics, slicing and binning, and visualization of embedding spaces.
  • Counterfactual generation via manual edits or generator plug-ins to dynamically create and evaluate new examples.
  • Side-by-side mode to compare two or more models, or one model on a pair of examples.
  • Highly extensible to new model types, including classification, regression, span labeling, seq2seq, and language modeling. Supports multi-head models and multiple input features out of the box.
  • Framework-agnostic and compatible with TensorFlow, PyTorch, and more.

For a broader overview, check out our paper and the user guide.

Documentation

Download and Installation

Download the repo and set up a Python environment:

git clone https://github.com/PAIR-code/lit.git ~/lit

# Set up Python environment
cd ~/lit
conda env create -f environment.yml
conda activate lit-nlp
conda install cudnn cupti  # optional, for GPU support
conda install -c pytorch pytorch  # optional, for PyTorch

# Build the frontend
cd ~/lit/lit_nlp/client
yarn && yarn build

Note: if you see an error running yarn on Ubuntu/Debian, be sure you have the correct version installed.

Running LIT

Quick-start: sentiment classifier

cd ~/lit
python -m lit_nlp.examples.quickstart_sst_demo --port=5432

This will fine-tune a BERT-tiny model on the Stanford Sentiment Treebank, which should take less than 5 minutes on a GPU. After training completes, it'll start a LIT server on the development set; navigate to http://localhost:5432 for the UI.

Quick start: language modeling

To explore predictions from a pretrained language model (BERT or GPT-2), run:

cd ~/lit
python -m lit_nlp.examples.pretrained_lm_demo --models=bert-base-uncased \
  --port=5432

And navigate to http://localhost:5432 for the UI.

More Examples

See lit_nlp/examples. Run similarly to the above:

cd ~/lit
python -m lit_nlp.examples.<example_name> --port=5432 [optional --args]

User Guide

To learn about LIT's features, check out the user guide, or watch this short video.

Adding your own models or data

You can easily run LIT with your own model by creating a custom demo.py launcher, similar to those in lit_nlp/examples. The basic steps are:

  • Write a data loader which follows the Dataset API
  • Write a model wrapper which follows the Model API
  • Pass models, datasets, and any additional components to the LIT server class

For a full walkthrough, see adding models and data.

Extending LIT with new components

LIT is easy to extend with new interpretability components, generators, and more, both on the frontend or the backend. See the developer guide to get started.

Citing LIT

If you use LIT as part of your work, please cite our paper:

@misc{tenney2020language,
    title={The Language Interpretability Tool: Extensible, Interactive Visualizations and Analysis for NLP Models},
    author={Ian Tenney and James Wexler and Jasmijn Bastings and Tolga Bolukbasi and Andy Coenen and Sebastian Gehrmann and Ellen Jiang and Mahima Pushkarna and Carey Radebaugh and Emily Reif and Ann Yuan},
    year={2020},
    eprint={2008.05122},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}

Disclaimer

This is not an official Google product.

LIT is a research project, and under active development by a small team. There will be some bugs and rough edges, but we're releasing v0.1 because we think it's pretty useful already. We want LIT to be an open platform, not a walled garden, and we'd love your suggestions and feedback - drop us a line in the issues.

lit's People

Contributors

jameswex avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.