限制 BART HuggingFace 模型以完成最大长度的句子

问题描述

我正在 HuggingFace 上实施 BART,请参阅参考资料:https://huggingface.co/transformers/model_doc/bart.html

这是他们文档中用于创建生成摘要代码

from transformers import BartModel,BartTokenizer,BartForConditionalGeneration

model = BartForConditionalGeneration.from_pretrained('facebook/bart-large-cnn')
tokenizer = BartTokenizer.from_pretrained('facebook/bart-large')

def baseBart(ARTICLE_TO_SUMMARIZE):
  inputs = tokenizer([ARTICLE_TO_SUMMARIZE],max_length=1024,return_tensors='pt')
  # Generate Summary
  summary_ids = model.generate(inputs['input_ids'],num_beams=4,max_length=25,early_stopping=True)
  return [tokenizer.decode(g,skip_special_tokens=True,clean_up_tokenization_spaces=False) for g in summary_ids][0]

我的摘要需要简洁,所以我设置了 max_length=25。但是,这样做时,我得到了不完整的句子,例如以下两个示例:

EX1:左肺底部的混浊从先前的检查中看起来稳定。 左半身有抬高

EX 2:矿化和排列正常。无骨折或 确定了骨性病变。脚踝骨

我如何确保预测的摘要只是具有完整思想的连贯句子并保持简洁。如果可能,我宁愿不对汇总输出执行正则表达式并在最后一段之后切断任何文本,而实际上让 BART 模型生成最大长度内的句子。

我尝试在模型中设置 truncation=True,但没有奏效。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)