在Seq2Seq和注意力机制中如何可视化模型细节

参考: https://www.jianshu.com/p/df7906a2a28e

上面的参考博文中重点介绍了Bert的可视化后的结果,将 Bert 中的注意力机制通过Tensor2Tensor工具描述出来。

另外另一个开源库BertViz 有含有Transformer模型的各种模型更详细的可视化。

https://github.com/jessevig/bertviz

BertViz是用于可视化Transformer模型中注意力的工具,支持Transformer库中的所有模型(BERT,GPT-2,XLNet,RoBERTa,XLM,CTRL等)。

以GPT-2为例,Seq2Seq的注意力机制的部分可视化代码:

model_version = 'gpt2'

model = GPT2Model.from_pretrained(model_version, output_attentions=True)

tokenizer = GPT2Tokenizer.from_pretrained(model_version)

text = "The quick brown fox jumps over the lazy dogs."

inputs = tokenizer.encode_plus(text, return_tensors='pt', add_special_tokens=True)

input_ids = inputs['input_ids']

attention = model(input_ids)[-1]

input_id_list = input_ids[0].tolist() # Batch index 0

tokens = tokenizer.convert_ids_to_tokens(input_id_list)

call_html()

head_view(attention, tokens)


模型视图提供了所有模型层和头的注意力鸟瞰视图。

神经网络视图可视化查询和关键向量中的单个神经元,并显示如何使用它们来计算注意力。


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容