在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)


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

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


你可能感兴趣的:(在Seq2Seq和注意力机制中如何可视化模型细节)