Randeng T5 Char 57M MultiTask Chinese
基于字符级T5架构的中文多任务模型,在100+个中文数据集上微调,支持分类、推理和生成任务。
下载量 35
发布时间 : 10/22/2022
模型简介
本模型是在燃灯-T5-字符级-57M-中文版基础上,通过100+个中文数据集进行有监督多任务预训练得到的文本到文本生成模型,适用于多种自然语言处理任务。
模型特点
多任务学习
在100+个中文数据集上进行多任务预训练,涵盖分类、推理和生成任务。
字符级处理
采用字符级T5架构,更适合中文文本处理。
标准化prompt模板
为不同任务设计了标准化prompt模板,便于统一处理。
模型能力
文本分类
情感分析
摘要生成
实体识别
关键词抽取
阅读理解
自然语言推理
语义匹配
使用案例
文本分析
情感分析
分析文本的情感倾向(正面/负面)
示例输入输出:输入'房间舒适,服务良好',输出'正面'
新闻分类
对新闻文章进行分类
文本生成
摘要生成
从长文本中生成简洁摘要
🚀 燃灯-T5-字符-57M-多任务-中文模型
燃灯-T5-字符-57M-多任务-中文模型基于Randeng-T5-Char-57M-Chinese,收集了约100个中文数据集,进行Text2Text统一范式的有监督任务预训练,可用于多种自然语言处理任务。
链接信息
- 主页:封神榜
- Github:Fengshenbang-LM
✨ 主要特性
在Randeng-T5-Char-57M-Chinese的基础上,收集了100个左右的中文数据集,进行Text2Text统一范式的有监督任务预训练。
📦 模型分类
需求 | 任务 | 系列 | 模型 | 参数 | 额外 |
---|---|---|---|---|---|
通用 | 自然语言转换 | 燃灯 | 多任务 | 57M | 多任务 - 中文 |
📚 模型信息
参考论文:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
基于Randeng-T5-Char-57M-Chinese,我们在收集的100 + 个中文领域的多任务数据集(从中采样了30w + 个样本)上微调了它,得到了此多任务版本。这些多任务包括:情感分析,新闻分类,文本分类,意图识别,自然语言推理,多项选择,指代消解,抽取式阅读理解,实体识别,关键词抽取,生成式摘要。
💻 使用示例
基础用法
import torch
from transformers import BertTokenizer, T5Config, T5ForConditionalGeneration
# load tokenizer and model
pretrained_model = "IDEA-CCNL/Randeng-T5-Char-57M-MultiTask-Chinese"
tokenizer = BertTokenizer.from_pretrained(pretrained_model)
config = T5Config.from_pretrained(pretrained_model)
model = T5ForConditionalGeneration.from_pretrained(pretrained_model, config=config)
model.resize_token_embeddings(len(tokenizer))
model.eval()
# tokenize
text = "情感分析任务:【房间还是比较舒适的,酒店服务良好】这篇文章的情感态度是什么?正面/负面"
encode_dict = tokenizer(text, max_length=512, padding='max_length',truncation=True)
inputs = {
"input_ids": torch.tensor([encode_dict['input_ids']]).long(),
"attention_mask": torch.tensor([encode_dict['attention_mask']]).long(),
}
# generate answer
logits = model.generate(
input_ids = inputs['input_ids'],
max_length=10,
early_stopping=True,
)
logits=logits[:,1:]
predict_label = [tokenizer.decode(i,skip_special_tokens=True) for i in logits]
print(predict_label)
# model output: 正面
高级用法
除了分类任务,其他任务的数据构造例子如下:
example_dict={
"文本分类":{"text_a":"钢琴块3别踩白块儿3钢琴块3是一款简洁的钢琴模拟软件,在Android平台上,类似的软件还是比较多的。","choices":["相机","影视娱乐","棋牌中心","新闻","财经","策略","休闲益智","教育"]},
'新闻分类':{"text_a":"微软披露拓扑量子计算机计划!","choices":["故事","文化","娱乐","体育","财经","房产","汽车","教育","科技"]},
'情感分析':{"text_a":"刚买iphone13 pro 还不到一个月,天天死机最差的一次购物体验","choices":["好评","差评"]},
'意图识别':{"text_a":"打电话给吴小军。","choices":["放音乐","播放下一首","打电话","退出导航","开始导航","其他","暂停音乐","导航","开导航"]},
'语义匹配':{"text_a":"今天心情不好","text_b":"我很不开心","choices":["相似","不相似"]},
'自然语言推理':{"text_a":"小明正在上高中","text_b":"小明是一个初中生","choices":["无关","矛盾","蕴含"]},
'多项选择':{"text_a":"这大家千万不能着急,我们现在只是暂时输了7分。距离比赛结束还有20多分钟呢,我们是完全有机会转败为赢的,大家加油!","question":"说话人希望大家:","choices":["别得意","冷静一些","加快速度","提前预习"]},
'指代消解':{"text_a":"李鸣觉得董客这人,踏实得叫人难受。可因为孟野和森森太疯,他只好去找董客聊天,但在董客眼里,李鸣也是不正常,他竟然放着现成的大学不愿上。","question":"【他】指的是【李鸣】吗?","choices":["是","不是"]},
'实体识别':{"text_a":"北京大学是我国的一座历史名校,坐落在海淀区,蔡元培曾经担任校长","question":"机构"},
'抽取式阅读理解':{"text_a":"《H》正式定档3月7日下午两点整在京东商城独家平台开启第一批5000份预售,定价230元人民币,回馈最忠实的火星歌迷,意在用精品回馈三年来跟随华晨宇音乐不离不弃的粉丝们的支持与厚爱","question":"华晨宇专辑h预售价格是多少?"},
'关键词抽取':{"text_a":"今儿在大众点评,找到了口碑不错的老茶故事私房菜。"},
"生成式摘要":{"text_a":"针对传统的流量分类管理系统存在不稳定、结果反馈不及时、分类结果显示不直观等问题,设计一个基于web的在线的流量分类管理系统.该系统采用流中前5个包(排除3次握手包)所含信息作为特征值计算资源,集成一种或多种分类算法用于在线网络流量分类,应用数据可视化技术处理分类结果.实验表明:在采用适应在线分类的特征集和c4.5决策树算法做分类时,系统能快速做出分类,且精度达到94%以上;数据可视化有助于人机交互,改善分类指导."}
}
# 构造prompt的过程中,verbalizer这个占位key的内容,是通过 "/".join(choices) 拼接起来
dataset2instruction = {
"情感分析": {
"prompt": "{}任务:【{}】这篇文章的情感态度是什么?{}",
"keys_order": ["subtask_type","text_a", "verbalizer"],
"data_type": "classification",
},
"文本分类": {
"prompt": "{}任务:【{}】这篇文章的类别是什么?{}",
"keys_order": ["subtask_type","text_a", "verbalizer"],
"data_type": "classification",
},
"新闻分类": {
"prompt": "{}任务:【{}】这篇文章的类别是什么?{}",
"keys_order": ["subtask_type","text_a", "verbalizer"],
"data_type": "classification",
},
"意图识别": {
"prompt": "{}任务:【{}】这句话的意图是什么?{}",
"keys_order": ["subtask_type","text_a", "verbalizer"],
"data_type": "classification",
},
# --------------------
"自然语言推理": {
"prompt": "{}任务:【{}】和【{}】,以上两句话的逻辑关系是什么?{}",
"keys_order": ["subtask_type","text_a", "text_b", "verbalizer"],
"data_type": "classification",
},
"语义匹配": {
"prompt": "{}任务:【{}】和【{}】,以上两句话的内容是否相似?{}",
"keys_order": ["subtask_type","text_a", "text_b", "verbalizer"],
"data_type": "classification",
},
# -----------------------
"指代消解": {
"prompt": "{}任务:文章【{}】中{}{}",
"keys_order": ["subtask_type","text_a", "question", "verbalizer"],
"data_type": "classification",
},
"多项选择": {
"prompt": "{}任务:阅读文章【{}】问题【{}】?{}",
"keys_order": ["subtask_type","text_a", "question", "verbalizer"],
"data_type": "classification",
},
# ------------------------
"抽取式阅读理解": {
"prompt": "{}任务:阅读文章【{}】问题【{}】的答案是什么?",
"keys_order": ["subtask_type","text_a", "question"],
"data_type": "mrc",
},
"实体识别": {
"prompt": "{}任务:找出【{}】这篇文章中所有【{}】类型的实体?",
"keys_order": ["subtask_type","text_a", "question"],
"data_type": "ner",
},
# ------------------------
"关键词抽取": {
"prompt": "{}任务:【{}】这篇文章的关键词是什么?",
"keys_order": ["subtask_type","text_a"],
"data_type": "keys",
},
"关键词识别":{
"prompt": "{}任务:阅读文章【{}】问题【{}】{}",
"keys_order": ["subtask_type","text_a","question","verbalizer"],
"data_type": "classification",
},
"生成式摘要": {
"prompt": "{}任务:【{}】这篇文章的摘要是什么?",
"keys_order": ["subtask_type","text_a"],
"data_type": "summ",
},
}
def get_instruction(sample):
template = dataset2instruction[sample["subtask_type"]]
# print(template)
# print(sample)
sample["instruction"] = template["prompt"].format(*[
sample[k] for k in template["keys_order"]
])
print(sample["instruction"])
return sample["instruction"]
📚 预训练或微调
如果您对于怎么预训练Randeng - T5模型或者想在自己的下游任务中微调Randeng模型,欢迎使用Fengshenbang - LM项目,这里提供了完整的示例:
📄 引用
如果您在您的工作中使用了我们的模型,可以引用我们的论文:
@article{fengshenbang,
author = {Jiaxing Zhang and Ruyi Gan and Junjie Wang and Yuxiang Zhang and Lin Zhang and Ping Yang and Xinyu Gao and Ziwei Wu and Xiaoqun Dong and Junqing He and Jianheng Zhuo and Qi Yang and Yongfeng Huang and Xiayu Li and Yanghan Wu and Junyu Lu and Xinyu Zhu and Weifeng Chen and Ting Han and Kunhao Pan and Rui Wang and Hao Wang and Xiaojun Wu and Zhongshen Zeng and Chongpei Chen},
title = {Fengshenbang 1.0: Being the Foundation of Chinese Cognitive Intelligence},
journal = {CoRR},
volume = {abs/2209.02970},
year = {2022}
}
也可以引用我们的网站:
@misc{Fengshenbang-LM,
title={Fengshenbang-LM},
author={IDEA-CCNL},
year={2021},
howpublished={\url{https://github.com/IDEA-CCNL/Fengshenbang-LM}},
}
📄 许可证
本项目采用Apache - 2.0许可证。
Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98