🚀 Google T5 闭卷问答模型
本项目使用 Google's T5 实现闭卷问答功能。该模型能够在不借助外部知识源的情况下,直接回答问题,为自然语言处理领域的问答任务提供了新的解决方案。
🚀 快速开始
该模型可按以下方式用于闭卷问答:
基础用法
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
t5_qa_model = AutoModelForSeq2SeqLM.from_pretrained("google/t5-xl-ssm-nq")
t5_tok = AutoTokenizer.from_pretrained("google/t5-xl-ssm-nq")
input_ids = t5_tok("When was Franklin D. Roosevelt born?", return_tensors="pt").input_ids
gen_output = t5_qa_model.generate(input_ids)[0]
print(t5_tok.decode(gen_output, skip_special_tokens=True))
✨ 主要特性
- 多阶段训练:模型先在 C4 上使用 T5 的去噪目标进行预训练,接着在 Wikipedia 上使用 REALM 的显著跨度掩码目标进行额外预训练,最后在 Natural Questions (NQ) 上进行微调。
- 知识存储与检索:经过训练的模型能够在参数中隐式存储知识,并通过自然语言查询进行检索,实现闭卷问答。
- 规模效应:实验表明,这种闭卷问答的方法随着模型规模的增大而表现更好。
📚 详细文档
训练数据
属性 |
详情 |
模型类型 |
基于 Google's T5 的闭卷问答模型 |
训练数据 |
C4、Wikipedia、Natural Questions |
训练细节
模型在 Natural Questions (NQ) 的 100% 训练分割数据上进行了 10k 步的微调。
其他社区检查点
可在 这里 查看其他社区检查点。
相关论文
How Much Knowledge Can You Pack Into the Parameters of a Language Model?
作者
Adam Roberts, Colin Raffel, Noam Shazeer
自然问题测试集结果
模型 |
链接 |
完全匹配率 |
T5-small |
https://huggingface.co/google/t5-small-ssm-nq |
25.5 |
T5-large |
https://huggingface.co/google/t5-large-ssm-nq |
30.4 |
T5-xl |
https://huggingface.co/google/t5-xl-ssm-nq |
35.6 |
T5-xxl |
https://huggingface.co/google/t5-xxl-ssm-nq |
37.9 |
T5-3b |
https://huggingface.co/google/t5-3b-ssm-nq |
33.2 |
T5-11b |
https://huggingface.co/google/t5-11b-ssm-nq |
36.6 |
模型抽象概述
近期研究发现,在非结构化文本上训练的神经语言模型可以使用自然语言查询隐式地存储和检索知识。在这篇简短的论文中,我们通过微调预训练模型来回答问题,且不访问任何外部上下文或知识,以此衡量这种方法的实际效用。我们表明,这种方法随着模型规模的增大而表现更好,并且在回答问题时,与从外部知识源显式检索答案的开放域系统具有竞争力。为了便于复现和未来的研究,我们在 https://goo.gle/t5-cbqa 上发布了我们的代码和训练好的模型。

📄 许可证
本项目采用 Apache-2.0 许可证。