Welcome to Ecco
Ecco is a python library for explaining Natural Language Processing models using interactive visualizations.
Language models are some of the most fascinating technologies. They are programs that can speak and understand language better than any technology we've had before. For the general audience, Ecco provides an easy way to start interacting with language models. For people closer to NLP, Ecco provides methods to visualize and interact with underlying mechanics of the language models.
Ecco runs inside Jupyter notebooks. It is built on top of pytorch and transformers.
Ecco is not concerned with training or fine-tuning models. Only exploring and understanding existing pre-trained models.
Tutorials
How-to Guides
- Interfaces for Explaining Transformer Language Models
- Finding the Words to Say: Hidden State Visualizations for Language Models
API Reference
The API reference and the architecture page explain Ecco's components and how they work together.
Gallery
Predicted Tokens: View the model's prediction for the next token (with probability scores). See how the predictions evolved through the model's layers. [Notebook] [Colab]

Rankings across layers: After the model picks an output token, Look back at how each layer ranked that token. [Notebook] [Colab]

Layer Predictions:Compare the rankings of multiple tokens as candidates for a certain position in the sequence. [Notebook] [Colab]

Input Saliency: How much did each input token contribute to producing the output token? [Notebook] [Colab]

Detailed Saliency: See more precise input saliency values using the detailed view. [Notebook] [Colab]

Neuron Activation Analysis: Examine underlying patterns in neuron activations using non-negative matrix factorization. [Notebook] [Colab]

Getting Help
Having trouble?
- The Discussion board might have some relevant information. If not, you can post your questions there.
- Report bugs at Ecco's issue tracker