A ECCO é uma biblioteca Python para explorar e explicar modelos de processamento de linguagem natural usando visualizações interativas.
A ECCO fornece várias interfaces para ajudar na explicação e intuição dos modelos de idiomas baseados em transformadores. Leia: Interfaces para explicar modelos de linguagem de transformadores.
A ECCO corre dentro de notebooks Jupyter. Ele é construído em cima de Pytorch e Transformers.
A ECCO não está preocupada com modelos de treinamento ou ajuste fino. Apenas explorar e entender os modelos pré-treinados existentes. Atualmente, a biblioteca é um lançamento alfa de um projeto de pesquisa. Você pode contribuir para torná -lo melhor!
Documentação: Ecco.readThedocs.io
Você pode instalar ecco com pip ou com conda .
com pip
pip install eccocom conda
conda install -c conda-forge eccoVocê pode executar todos esses exemplos deste [Notebook] | [colab].
Use um modelo de idioma grande (T5 neste caso) para detectar o sentimento de texto. Além do sentimento, consulte os tokens em que o modelo divulgou o texto (que pode ajudar a depurar alguns casos de borda).
A atribuição de recursos usando gradientes integrados ajuda a explorar as decisões do modelo. Nesse caso, a troca de "fraqueza" para a "inclinação" permite que o modelo mude corretamente a previsão para positivo .
O GPT2 sabe onde está o aeroporto de Heathrow? Sim. Isso faz.
Visualize os tokens de saída do candidato e suas pontuações de probabilidade.
O modelo escolheu Londres, tornando o token de probabilidade mais alto (classificando -o nº 1) após a última camada no modelo. Quanto cada camada contribuiu para aumentar o ranking de Londres ? Esta é uma visualizações de lente de logit que ajuda a explorar a atividade de diferentes camadas de modelo.
Um grupo de neurônios em Bert tende a disparar em resposta a vírgulas e outras pontuações. Outros grupos de neurônios tendem a disparar em resposta a pronomes. Use essa visualização para fatorar a atividade dos neurônios em camadas individuais do FFNN ou em todo o modelo.
Leia o artigo:
ECCO: Uma biblioteca de código aberto para a explicação da Associação de Modelos de Linguagem para Transformadores para Linguística Computacional (ACL) Demonstrações, 2021
A referência da API e a página de arquitetura explicam os componentes da ECCO e como eles trabalham juntos.
Tokens previstos: Veja a previsão do modelo para o próximo token (com pontuações de probabilidade). Veja como as previsões evoluíram através das camadas do modelo. [Notebook] [Colab]

Rankings através de camadas: depois que o modelo escolher um token de saída, olhe para trás em como cada camada classificou esse token. [Notebook] [Colab]

Previsões de camadas: Compare as classificações de vários tokens como candidatos a uma determinada posição na sequência. [Notebook] [Colab]

Atribuições primárias: quanto cada token de entrada contribuiu para a produção do token de saída? [Notebook] [Colab]

Atribuições primárias detalhadas: consulte os valores de atribuições de entrada mais precisos usando a visualização detalhada. [Notebook] [Colab]

Análise de ativação dos neurônios: examine os padrões subjacentes nas ativações de neurônios usando fatoração de matriz não negativa. [Notebook] [Colab]

Tendo problemas?
Bibtex para citações:
@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 " ,
}