Randeng T5 784M MultiTask Chinese
Randeng-T5-784Mモデルをベースに、100以上の中国語データセットでマルチタスク事前学習を行い、様々な自然言語処理タスクをサポートします。
ダウンロード数 430
リリース時間 : 10/21/2022
モデル概要
このモデルはマルチタスク中国語テキスト生成モデルで、感情分析、ニュース分類、テキスト分類、意図認識、自然言語推論など多様なタスクをサポートします。
モデル特徴
マルチタスクサポート
100以上の中国語データセットでファインチューニングを行い、多様な自然言語処理タスクをカバーします。
高性能
中国語ゼロショットベンチマークZeroClueで3位、T5ベースのモデルでは1位を獲得しました。
統一パラダイム
Text2Text統一パラダイムを用いて教師ありタスクの事前学習を行います。
モデル能力
テキスト生成
感情分析
ニュース分類
テキスト分類
意図認識
自然言語推論
多肢選択
照応解決
抽出型読解
固有表現認識
キーワード抽出
生成型要約
使用事例
テキスト分類
ニュース分類
ニュース記事を科学技術、スポーツ、経済などのカテゴリに分類します。
入力例と出力例:ニュースタイトルを入力すると、分類結果(例:'科学技術')が出力されます。
自然言語理解
意図認識
ユーザーの入力意図(検索、コマンドなど)を識別します。
🚀 燃灯-T5-784M-多任务-中文
燃灯-T5-784M-多任务-中文モデルは、100個前後の中国語データセットを用いてText2Text統一パラダイムの教師ありタスクで事前学習され、ZeroClueベンチマークで優れた成績を収めました。
🚀 クイックスタート
モデルの概要
燃灯-T5-784M-多任务-中文モデルは、Randeng-T5-784Mをベースに、100以上の中国語分野の多タスクデータセット(30万以上のサンプルをサンプリング)でファインチューニングして得られた多タスクバージョンです。これらの多タスクには、感情分析、ニュース分類、テキスト分類、意図認識、自然言語推論、多肢選択、指示解消、抽出型読解、エンティティ認識、キーワード抽出、生成型要約などが含まれます。
本モデルは、中国語のゼロショットベンチマークZeroClueで(人間を除く)3位にランクインし、すべてのT5(エンコーダ-デコーダアーキテクチャ)ベースのモデルの中で1位という成績を収めました。
モデルの分類
属性 | 详情 |
---|---|
需求 | 通用 |
任务 | 自然言語変換(NLT) |
系列 | 燃灯(Randeng) |
模型 | MultiTask |
参数 | 784M |
额外 | 多任务-中文(MultiTask-Chinese) |
モデルの情報
参考論文:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
使用方法
基本的な使用法
import torch
from transformers import T5Tokenizer, T5Config, T5ForConditionalGeneration
# load tokenizer and model
pretrained_model = "IDEA-CCNL/Randeng-T5-784M-MultiTask-Chinese"
special_tokens = ["<extra_id_{}>".format(i) for i in range(100)]
tokenizer = T5Tokenizer.from_pretrained(
pretrained_model,
do_lower_case=True,
max_length=512,
truncation=True,
additional_special_tokens=special_tokens,
)
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=100,
do_sample= True
# 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":"今儿在大众点评,找到了口碑不错的老茶故事私房菜。","question":"请问这篇文章的关键词是大众点评、老茶私房菜吗?","choices":["是","不是"]},
"生成式摘要":{"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モデルの事前学習方法や、独自の下流タスクでのファインチューニング方法に興味がある場合は、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が公開したオープンプリトレーニングトランスフォーマー言語モデルスイートで、パラメータ数は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によって開発されたテキスト-to-テキスト変換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アーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98