SeqGPT是一个不限领域的文本理解大模型。无需训练,即可完成实体识别、文本分类、阅读理解等多种任务。该模型基于Bloomz在数以百计的任务数据上进行指令微调获得。模型可以在低至16G显存的显卡上免费使用。目前SeqGPT已经在魔搭社区开源,欢迎体验!
ModelScope开源直达:
模型卡片:
https://www.modelscope.cn/models/damo/nlp_seqgpt-560m
创空间体验:
https://www.modelscope.cn/studios/TTCoding/open_ner/summary
论文地址:https://arxiv.org/abs/2308.10529
github地址: https://github.com/Alibaba-NLP/SeqGPT
本文将为大家展开关于SeqGPT的详细技术解析介绍
适用范围
本模型可用于任何自然语言理解任务。用户只需给定类型标签即可。不同任务的标签给定方式可以参考以下例子:
事件抽取输入: 今日走势:中国银河今日触及涨停板,该股近一年涨停9次。抽取: 财经/交易事件、事件财经/交易-涨停的时间、事件财经/交易-涨停的涨停股票输出: 财经/交易事件: 涨停 事件财经/交易-涨停的时间: 今日 事件财经/交易-涨停的涨停股票: 中国银河输入: She laid still.抽取: Placing event输出: Placing event: laid
阅读理解-抽取输入: 根据上述采信证据,结合原告陈述,本院确认事实如下:2015年9月26日,苏0与陈x11签订《借款合同》,约定陈x11向苏0借款10000元用于经营资金周转、家庭生活开支,借款期限至2015年12月26日,并约定利息为月利率2%同日,陈x11出具收据确认收到苏0 10000元至本案辩论终结之日止,上述借款尚未归还另查明,陈x11与冼5于××××年××月××日登记结婚陈x4、陈x2、陈x3、陈x1是陈x11的女儿抽取: 陈x11向苏0借了多少钱输出: 10000元
实体识别输入: 赛后公牛队主教练杰克逊对罗德曼的表现大加赞赏。抽取: 组织机构,人物,地点 输出:组织机构: 公牛队 人物: 罗德曼 杰克逊 地点: None输入: In Venezuela , her mother told Reuters that Machado had a swollen face when she left home two weeks ago because she had her wisdom teeth extracted .抽取: organisation,person,misc,location输出: organisation: Reuters person: Machado misc: None location: Venezuela
意图识别输入: 坐地铁您可以从永泰庄地铁站D口上地铁,在灯市口地铁站A口下地铁,在步行不远就到了。分类: Inform,Request输出: Inform输入: find travel arrangements for a round trip flight from dallas to pittsburgh分类: ground_service,restriction,day_name,abbreviation,ground_fare,flight_no,aircraft,flight,meal,capacity,city输出: flight
自然语言推理输入: 这个池塘今天仍然存在,离乔巴尔峡谷不远。池塘很久以前就干了。分类: contradiction,neutral,entailment 输出: contradiction输入: Red! You, Red! Are you up there? Now don't try to hide. Red! Where are you? 分类: neutral,entailment,contradiction 输出: entailment
关系抽取输入: 灵魂的痛(末代御医主题曲)主唱:胡鸿钧视频来自:优酷中灵魂的痛和末代御医的关系是什么?分类: 主题曲,国籍,父亲,总部地点 输出: 主题曲输入: the tie be go away from man 's wardrobes . What is the relation between tie and wardrobes? 分类: Entity-Origin,Content-Container,Instrument-Agency,Entity-Destination,Message-Topic,Component-Whole,Product-Producer 输出: Entity-Origin
训练数据和模型评估
训练分类两个阶段,分别为:预训练和微调,两阶段数据分别为:预训练数据:包含来自多个领域(包括维基百科、新闻和社交媒体等)极其多样化的标签集的数据。
我们主要选择了三个任务:分类(CLS)、实体分类(ET)和实体识别(NER)。我们通过调用ChatGPT为每个样本获得伪标签。
最终,PT数据集包含1,146,271个实例和817,075个不同的标签。微调数据:我们收集了来自不同领域的大规模高质量NLU数据集进行微调。如下图所示,我们的微调(FT)数据集包含110个NLU数据集,涵盖英语和中文两种语言以及10大类任务。除了任务多样性外,领域(包括医学、新闻和与AI助手的对话)的多样性以及标签多样性也保证了数据多样性。每个任务被转化为原子任务,共产生了139个分类原子任务和94个抽取原子任务。
模型评估及结果:
创空间体验
在创空间可以零门槛体验开放域NLU模型的能力,示例如下:
模型推理
模型推理
在魔搭社区免费NoteBook环境,使用ModelScope的最新master分支
git clone https://github.com/modelscope/modelscope.git cd modelscope pip install .
模型推理代码
from modelscope.utils.constant import Tasks from modelscope.pipelines import pipeline # task可选值为 抽取、分类。text为需要分析的文本。labels为类型列表,中文逗号分隔。 inputs = {'task': '抽取', 'text': '杭州欢迎你。', 'labels': '地名'} # PROMPT_TEMPLATE保持不变 PROMPT_TEMPLATE = '输入: {text}\n{task}: {labels}\n输出: ' prompt = PROMPT_TEMPLATE.format(**inputs) pipeline_ins = pipeline(task=Tasks.text_generation, model='damo/nlp_seqgpt-560m') print(pipeline_ins(prompt)) # {'text': '地名: 杭州\n'}
总结
本文介绍了SeqGPT,用一个统一的模型,通过将不同的NLU任务转化为两个通用的原子任务来处理。SeqGPT提供了一致的输入输出格式,使其能够通过任意变化的标签集来解决未见过的任务,而不需要繁琐的提示工程而且结果易于解析。