【发布时间】:2023-03-23 14:55:02
【问题描述】:
我对应该使用哪个隐藏状态作为微调的 Roberta 变换器模型的输出感到困惑。
from transformers import AutoConfig, AutoModelForMaskedLM, AutoTokenizer
config = AutoConfig.from_pretrained("roberta-base")
config.output_hidden_states = True
tok = AutoTokenizer.from_pretrained("roberta-base")
model = AutoModelForMaskedLM.from_pretrained("roberta-base", config=config)
inp = "alright let s do this "
sentence = tok.encode(inp, padding='max_length', max_length=512, truncation=True, return_tensors='pt')
output = model(sentence)
根据RobertaForMaskedLM 的 Huggingface 文档:
返回一个元组:
- masked_lm_loss(可选)
- prediction_scores
- hidden_states(可选)
- 注意事项(可选)
通过传递配置以启用 hidden_states 输出,output 是 (prediction_scores, hidden_states) 的元组
我的问题是:
我应该使用output[-1][0] 或output[-1][-1] 作为微调罗伯塔模型的最终输出嵌入吗?我的理解是,output[-1][0] 是输入到 Roberta 模型的初始嵌入,output[-1][-1] 是最终的嵌入输出。
【问题讨论】:
标签: bert-language-model huggingface-transformers