ECCO es una biblioteca de Python para explorar y explicar modelos de procesamiento del lenguaje natural utilizando visualizaciones interactivas.
ECCO proporciona múltiples interfaces para ayudar a la explicación e intuición de los modelos de lenguaje basados en transformadores. LEA: Interfaces para explicar los modelos de lenguaje de transformadores.
Ecco se ejecuta dentro de los cuadernos Jupyter. Está construido sobre Pytorch y Transformers.
ECCO no le preocupa la capacitación o los modelos de ajuste fino. Solo explorar y comprender los modelos previamente capacitados existentes. La biblioteca es actualmente un lanzamiento alfa de un proyecto de investigación. ¡Eres bienvenido a contribuir a hacerlo mejor!
Documentación: Ecco.ReadThedocs.io
Puede instalar ecco con pip o con conda .
con Pip
pip install eccocon conda
conda install -c conda-forge eccoPuede ejecutar todos estos ejemplos de este [cuaderno] | [Colab].
Use un modelo de idioma grande (T5 en este caso) para detectar el sentimiento de texto. Además del sentimiento, vea los tokens en el que el modelo rompió el texto (lo que puede ayudar a depurar algunos casos de borde).
La atribución de características utilizando gradientes integrados lo ayuda a explorar las decisiones del modelo. En este caso, cambiar "debilidad" a "inclinación" permite que el modelo cambie correctamente la predicción a positivo .
¿GPT2 sabe dónde está el aeropuerto de Heathrow? Sí. Lo hace.
Visualice los tokens de salida candidatos y sus puntajes de probabilidad.
El modelo eligió Londres haciendo la mayor probabilidad de token (clasificándolo #1) después de la última capa en el modelo. ¿Cuánto contribuyó cada capa a aumentar la clasificación de Londres ? Esta es una visualización de lentes logit que ayuda a explorar la actividad de diferentes capas de modelo.
Un grupo de neuronas en Bert tiende a disparar en respuesta a las comas y otra puntuación. Otros grupos de neuronas tienden a disparar en respuesta a los pronombres. Use esta visualización para factorizar la actividad de las neuronas en capas FFNN individuales o en todo el modelo.
Lea el documento:
ECCO: una biblioteca de código abierto para la explicabilidad de las demostraciones del sistema de la Asociación de Modelos de Lenguaje de Transformador para Lingüística Computacional (ACL), 2021
La referencia de API y la página de arquitectura explican los componentes de Ecco y cómo trabajan juntos.
Tokens predichos: vea la predicción del modelo para el siguiente token (con puntajes de probabilidad). Vea cómo evolucionaron las predicciones a través de las capas del modelo. [Cuaderno] [Colab]

Rankings entre capas: después de que el modelo elige un token de salida, mira hacia atrás a cómo cada capa clasificaba esa token. [Cuaderno] [Colab]

Predicciones de capa: compare las clasificaciones de múltiples tokens como candidatos para una determinada posición en la secuencia. [Cuaderno] [Colab]

Atribuciones primarias: ¿Cuánto contribuyó cada token de entrada a producir el token de salida? [Cuaderno] [Colab]

Atribuciones primarias detalladas: consulte valores de atribuciones de entrada más precisos utilizando la vista detallada. [Cuaderno] [Colab]

Análisis de activación de neuronas: examine los patrones subyacentes en las activaciones de las neuronas utilizando la factorización de la matriz no negativa. [Cuaderno] [Colab]

¿Tiene problemas?
Bibtex para citas:
@inproceedings { alammar-2021-ecco ,
title = " Ecco: An Open Source Library for the Explainability of Transformer Language Models " ,
author = " Alammar, J " ,
booktitle = " Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations " ,
year = " 2021 " ,
publisher = " Association for Computational Linguistics " ,
}