语言:
标签:
流水线标签:
评估指标:
- RougeL
- BLEU-4
- F1值
- 精确匹配率
- 答案包含率
示例窗口:
- 文本: "问题:美国建筑师如何创造维多利亚哥特式建筑?"
上下文: "知识:底特律圣保罗座堂是美国圣公会密歇根教区的主教座堂,坐落于底特律伍德沃德大道4800号,毗邻韦恩州立大学校园。该堂区成立于1824年,是密歇根首个新教圣公会。现存建筑由著名教堂设计师拉尔夫·克拉姆设计,始建于1907年,其钟楼至今未完工。教堂完全采用石灰岩和中世纪建筑技术建造,未使用钢架支撑结构。建筑特色包括交错肋拱、巨型彩绘玻璃窗、雕花窗棂,堪称哥特式建筑典范,并设有Pewabic陶瓷装饰中心。1912年升格为主教座堂。圣保罗座堂是20世纪初哥特复兴建筑的杰出代表。19世纪中叶,美国建筑师引入并重新诠释了英国哥特复兴风格,借鉴中世纪主教座堂繁复的视觉细节。他们将哥特元素与简约建筑布局相融合,开创了'维多利亚哥特式'这一美国建筑风格。1876年建成的堡垒街长老会教堂便是早期维多利亚哥特式的典范之作。答案:<extra_id_0>"
示例标题: "融合哥特元素与简约建筑规划"
许可证: Apache-2.0
燃灯-T5-784M-中文问答版
中文生成式问答T5模型
模型简介
本T5-Large模型是HuggingFace平台首个中文生成式问答预训练模型。基于悟道180G语料预训练,并在中文SQuAD和CMRC2018数据集上微调。给定文章和问题,能生成流畅准确的回答。
模型分类
需求 |
任务类型 |
模型系列 |
架构 |
参数量 |
特性 |
通用 |
自然语言转换 |
燃灯 |
T5 |
7.84亿 |
中文生成式问答 |
性能表现
CMRC 2018开发集(原始为片段抽取任务,本模型作为生成式问答任务)
模型 |
答案包含率 |
RougeL |
BLEU-4 |
F1值 |
精确匹配 |
本模型 |
76.0 |
82.7 |
61.1 |
77.9 |
57.1 |
MacBERT-Large(SOTA) |
- |
- |
- |
88.9 |
70.0 |
本模型生成质量优异,76%的答案包含真实答案。较高RougeL和BLEU-4显示生成结果与标准答案的重合度。精确匹配值较低因生成完整句子而非片段。
注:SOTA模型仅预测起止位置,属于更简单的抽取式任务。
示例案例
随机选取的样本展示:

预测结果: 图示为生成内容,目标答案为标准答案。
若图片加载失败,可在"文件与版本"中查看。
使用指南
安装transformers==4.21.1
import numpy as np
from transformers import T5Tokenizer,MT5ForConditionalGeneration
pretrain_path = 'IDEA-CCNL/Randeng-T5-784M-QA-Chinese'
tokenizer=T5Tokenizer.from_pretrained(pretrain_path)
model=MT5ForConditionalGeneration.from_pretrained(pretrain_path)
sample={"context":"柏林胡格诺派创建了两个新社区:多罗西恩斯塔特和弗里德里希斯塔特。至1700年,该市五分之一人口讲法语。柏林胡格诺派在近一个世纪里保持法语礼拜,后因抗议1806-1807年拿破仑占领普鲁士而改用德语。许多后代成就显赫,在弗雷德里夏(丹麦)、柏林等地建立了教会。","question":"除多罗西恩斯塔特外,柏林还有哪个新社区?","idx":1}
plain_text='问题:'+sample['question']+'知识:'+sample['context'][:self.max_knowledge_length]
res_prefix=tokenizer.encode('答案',add_special_tokens=False)
res_prefix.append(tokenizer.convert_tokens_to_ids('<extra_id_0>'))
res_prefix.append(tokenizer.eos_token_id)
l_rp=len(res_prefix)
tokenized=tokenizer.encode(plain_text,add_special_tokens=False,truncation=True,max_length=1024-2-l_rp)
tokenized+=res_prefix
batch=[tokenized]*2
input_ids=torch.tensor(np.array(batch),dtype=torch.long)
max_target_length=128
pred_ids = model.generate(input_ids=input_ids,max_new_tokens=max_target_length,do_sample=True,top_p=0.9)
pred_tokens=tokenizer.batch_decode(pred_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
res=pred_tokens.replace('<extra_id_0>','').replace('答案:','')
引用文献
如果使用本模型,请引用我们的论文:
@article{fengshenbang,
author = {张嘉旭等},
title = {封神榜1.0:中文认知智能基础体系},
journal = {CoRR},
volume = {abs/2209.02970},
year = {2022}
}
也可引用项目主页:
@misc{封神榜-LM,
title={封神榜语言模型},
author={IDEA-CCNL},
year={2021},
howpublished={\url{https://github.com/IDEA-CCNL/Fengshenbang-LM}},
}