【问题标题】:Bert model output interpretationBERT模型输出解释
【发布时间】:2021-10-19 09:35:52
【问题描述】:

我搜索了很多,但仍然没有一个明确的想法,所以我希望你能帮助我:

我正在尝试将德语文本翻译成英语!我使用了这段代码:


tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-de-en")
model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-de-en")

batch = tokenizer(
    list(data_bert[:100]),
    padding=True,
    truncation=True,
    max_length=250,
    return_tensors="pt")["input_ids"]

results = model(batch)  

这给了我一个尺寸错误!我解决了这个问题(感谢社区:https://github.com/huggingface/transformers/issues/5480),将最后一行代码切换为:

results = model(input_ids = batch,decoder_input_ids=batch)

现在我的输出看起来像一个很长的数组。这个输出到底是什么?这些是某种词嵌入吗?如果是的话:我该如何继续将这些嵌入转换为英语文本?非常感谢!

【问题讨论】:

    标签: translation bert-language-model huggingface-transformers word-embedding


    【解决方案1】:

    我认为这个问题为您的困境提供了一个可能的答案: https://stackoverflow.com/questions/61523829/how-can-i-use-bert-fo-machine-translation#:~:text=BERT%20is%20not%20a%20machine%20translation%20model%2C%20BERT,there%20are%20doubts%20if%20it%20really%20pays%20off.

    实际上,使用 BERT 的输出,您可以获得每个单词的矢量化表示。从本质上讲,将输出用于其他任务更容易,但在机器翻译的情况下更棘手。

    在机器翻译的上下文中使用转换器库中的seq2seq 模型的一个很好的起点是:https://github.com/huggingface/notebooks/blob/master/examples/translation.ipynb

    上面的例子提供了如何从英语翻译成罗马尼亚语。

    【讨论】:

      【解决方案2】:

      补充 Timbus 的答案,

      这个输出究竟是什么?这些是某种词嵌入吗?

      results<class 'transformers.modeling_outputs.Seq2SeqLMOutput'> 类型,你可以这样做

      results.__dict__.keys()
      

      检查results 是否包含以下内容:

      dict_keys(['loss', 'logits', 'past_key_values', 'decoder_hidden_states', 'decoder_attentions', 'cross_attentions', 'encoder_last_hidden_state', 'encoder_hidden_states', 'encoder_attentions'])
      

      您可以在huggingface documentation 中阅读有关该课程的更多信息。

      我该如何继续将这些嵌入转换为 英语?

      要解释英文文本,您可以使用model.generate,它可以通过以下方式轻松解码:

      predictions = model.generate(batch)
      english_text = tokenizer.batch_decode(predictions)
      

      【讨论】:

      • 非常感谢您的努力和这些准确的答案。这正是我所期待的
      猜你喜欢
      • 2021-12-18
      • 1970-01-01
      • 2021-06-25
      • 2020-12-19
      • 2021-12-18
      • 1970-01-01
      • 2011-07-04
      • 2020-06-03
      • 1970-01-01
      相关资源
      最近更新 更多