ECCO是一个用于使用交互式可视化的自然语言处理模型的Python库。
ECCO提供了多个接口,以帮助基于变压器的语言模型的解释和直觉。阅读:用于解释变压器语言模型的接口。
ECCO在Jupyter笔记本中运行。它建在Pytorch和Transformers的顶部。
ECCO与培训或微调模型无关。仅探索和理解现有的预训练模型。该图书馆目前是研究项目的α版本。欢迎您做出贡献,使其变得更好!
文档:ecco.Readthedocs.io
您可以使用pip或conda安装ecco 。
与pip
pip install ecco与Conda
conda install -c conda-forge ecco您可以从此[笔记本]中运行所有这些示例| [COLAB]。
使用大型语言模型(在这种情况下为T5)来检测文本情绪。除了情感之外,请参见“令牌”该模型将文本分解为(可以帮助调试一些边缘案例)。
使用集成梯度的功能归因可帮助您探索模型决策。在这种情况下,将“弱点”切换到“倾斜度”使模型可以将预测正确切换为正。
GPT2知道希思罗机场在哪里吗?是的。确实如此。
可视化候选输出令牌及其概率分数。
该模型通过在模型的最后一层之后使最高概率令牌(排名第一)选择伦敦。每一层有助于提高伦敦的排名?这是一个logit镜头可视化,有助于探索不同模型层的活性。
伯特的一组神经元倾向于响应逗号和其他标点符号。其他群体的神经元倾向于响应代词。使用此可视化来分解单个FFNN层或整个模型中的神经元活性。
阅读论文:
ECCO:用于解释性语言模型的计算语言学(ACL)系统演示的开源库,2021
API参考和架构页面解释了ECCO的组件以及它们如何共同工作。
预测令牌:查看模型对接下来的令牌的预测(概率得分)。查看预测如何通过模型的层演变。 [笔记本] [COLAB]

跨层的排名:在模型选择输出令牌之后,请回顾一下每个层如何排名该令牌。 [笔记本] [COLAB]

图层预测:将多个令牌的排名作为序列中某个位置的候选者的排名。 [笔记本] [COLAB]

主要归因:每个输入令牌有多少有助于产生输出令牌? [笔记本] [COLAB]

详细的主要属性:使用详细视图查看更精确的输入属性值。 [笔记本] [COLAB]

神经元激活分析:使用非阴性基质分解检查神经元激活中的潜在模式。 [笔记本] [COLAB]

遇到麻烦?
引用的Bibtex:
@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 " ,
}