Google's T5 在 CommonGen 上进行微调,用于生成常识推理。
T5模型在 Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer 中由Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li、Peter J. Liu提出。其中摘要如下:
转移学习是一种先在数据丰富的任务上进行预训练,然后在下游任务上进行微调的方法,已经成为自然语言处理(NLP)中的一种强大技术。转移学习的有效性催生了多种方法、方法论和实践。在本文中,我们通过引入一个统一的框架,将每个语言问题转换为文本到文本格式,来探索NLP的转移学习技术领域。我们的系统研究比较了预训练目标、架构、无标签数据集、转移方法和其他因素在数十个语言理解任务上的表现。通过将我们探索的见解与规模和我们的新的“巨大干净爬取语料库”相结合,我们在许多涵盖摘要、问答、文本分类等基准测试中取得了最先进的结果。为了促进未来的NLP转移学习工作,我们发布了我们的数据集、预训练模型和代码。
CommonGen是一个受约束的文本生成任务,与基准数据集相关联,旨在明确测试机器在生成常识推理方面的能力。给定一组常见的概念,任务是使用这些概念生成一个描述日常情景的连贯句子。
CommonGen具有挑战性,因为它本质上需要1)使用背景常识知识进行关系推理,以及2)组合泛化能力,以应用于未见过的概念组合。我们的数据集由从AMT和现有字幕语料库进行众包的组合构成,总共包含30k个概念集和50k个句子。
Dataset | Split | # samples |
---|---|---|
common_gen | train | 67389 |
common_gen | valid | 4018 |
common_gen | test | 1497 |
训练脚本是 this awesome one 的稍作修改的版本,由 Suraj Patil 提供。
Metric | Score |
---|---|
ROUGE-2 | 17.10 |
ROUGE-L | 39.47 |
BLEU | WIP |
上述指标略有改进,与相同模型和指标在 paper 中展示的结果相比。
from transformers import AutoModelWithLMHead, AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("mrm8488/t5-base-finetuned-common_gen") model = AutoModelWithLMHead.from_pretrained("mrm8488/t5-base-finetuned-common_gen") def gen_sentence(words, max_length=32): input_text = words features = tokenizer([input_text], return_tensors='pt') output = model.generate(input_ids=features['input_ids'], attention_mask=features['attention_mask'], max_length=max_length) return tokenizer.decode(output[0], skip_special_tokens=True) words = "tree plant ground hole dig" gen_sentence(words) # output: digging a hole in the ground to plant trees
由 Manuel Romero/@mrm8488 创作| LinkedIn
在西班牙制作 ♥