为什么令牌嵌入与 BartForConditionalGeneration 模型的嵌入不同

问题描述 投票:0回答:1

为什么即使我使用相同的 BartForConditionalGenration 模型生成嵌入,它们仍然不同?

第一个嵌入是通过组合令牌嵌入和位置嵌入来生成的

embed_pos = modelBART.model.encoder.embed_positions(input_ids.input_ids)
inputs_embeds = modelBART.model.encoder.embed_tokens(input_ids.input_ids)

模型通过

进行第二次嵌入
output = modelBART(input_ids.input_ids)
print("\n\n output: \n\n",output.encoder_last_hidden_state)

第一个和第二个的嵌入不应该相同吗?怎样才能使第一个和第二个嵌入的差异为零?

machine-learning pytorch nlp huggingface-transformers bart
1个回答
0
投票

第一个嵌入(输入+位置)是模型的第一层。这些嵌入用于将标记映射到向量。

第二组嵌入 (

encoder_last_hidden_state
) 是模型编码器中最后一层的输出。

这些嵌入应该是不同的。

© www.soinside.com 2019 - 2024. All rights reserved.