天天快报!Failed to connect to zw.gozuowen.com port 80: Timed out
1、第一熊猫是珍惜动物,第二只有中国才有大熊猫,第三熊猫憨态可掬的形象和中华民族朴实无华的影像很接近
【导读】 华师大HugAILab团队研发了全面统一的NLP训练框架—— HugNLP ,支持包括文本分类、匹配、问答、信息抽取、文本生成等多种NLP任务模型搭建和训练,且已集成大量最新的Prompt技术;基于HugNLP框架,团队还研发了可支持ChatGPT类模型训练和部署产品HugChat,以及统一信息抽取产品HugIE。
开源地址 :https://github.com/HugAILab/HugNLP
(相关资料图)
论文 :https://arxiv.org/abs/2302.14286
NLP研究者们的福音到啦!经过半年的努力, 华师大 HugAILab 团队 基于Huggingface开发了面向NLP研究和应用的开源框架—— HugNLP ,框架内已经集成实现了多种类别NLP任务、数据和模型的训练和部署,下图是HugNLP的框架总览:
HugNLP是基于Huggingface开发的NLP框架,其底层的实现完全基于Transformers,从而具备 易部署 和 易扩展 特性。另外,HugNLP集成了 MLFlow 的追踪服务,方便使用者实时追踪任务训练的进程。
HugNLP是一个分层式框架,遵循“高内聚低耦合”的开发模式,其核心包括模型层(Models)、处理器层(Processors)、评估器层(Evaluators)和应用层(Applications)四部分。
在Models层,已经实现了多种类型的NLP任务模型,下面是目前已经支持的NLP模型任务列表:
预训练 :Masked LM、Causal LM、知识增强预训练;
Instruction-Tuning :支持自回归生成式、区间抽取式、NLI等统一范式训练;
文本分类/匹配 :传统Fine-tuning、Prompt-tuning、In-Context Learning;
序列标注: 支持NER等序列标注任务;
元学习 :基于序列的元学习(SentenceProto)、基于区间的元学习(SpanProto)、基于token的元学习(TokenProto,NNShot);
问答 :支持抽取式问答、多项选择式问答、开放生成式问答;
文本生成 :支持文本摘要、机器翻译(正在开发中);
代码智能 :目前集成了代码克隆检测(Clone)、代码缺陷检测(Defact)等Code任务;
在Processors层,HugNLP框架为一些常用的数据集提供了处理器,使用者只需要指定Processor的名称即可直接获取并处理相应的数据。Evaluators层旨在对不同类型NLP模型任务的进行评估,主要包括常用的ACC、Precision、F1值等,对于生成式任务,也包含BLEU等。
Applications层开发了大量的NLP现有的产品或解决方案,其主要建立在Models、Processors和Evaluators层之上。例如,如果使用者指定一个模型(例如BertForSequenceClassification)、处理器(CLUE Processors)和评估器(Sequence Classification Evaluator),那么即可对应一个“基于BERT的CLUE分类”的应用。HugNLP框架目前实现了多种Applications,包括:
Benchmark刷榜工具 :面向中文CLUE、英文GLUE榜单;
HugIE信息抽取 :基于抽取式Instruction-tuning的统一信息抽取框架,同时支持实体识别和关系抽取;
HugChat对话大模型 :支持多种ChatGPT类模型的训练,V100即可训练130亿大模型;
Code :包括代码克隆检测和缺陷检测等;
HugNLP还集成了一些可插拔式的配件,包括如下:
Parameter Freezing :选择性冻结模型部分参数,用于参数有效性训练;
Uncertainty Estimation :评估模型的不确定性,用于半监督;
Calibration :对预测结果进行校准;
对抗训练 :用于提高模型鲁棒性;
HugNLP和市面上的一些NLP框架很像,都可以快速搭建和部署NLP任务模型,那么除了这些能力外, HugNLP到底具备哪些核心竞争力呢? 下面简单介绍HugNLP的一些核心能力。
传统的一些预训练模型(例如BERT、GPT2等)是在通用语料上训练的,而对领域事实知识可能不敏感,因此需要显式的在预训练阶段注入事实知识。在HugNLP中,主要实现了两个知识增强预训练,包括DKPLM和KP-PLM。DKPLM是一种可分解的知识注入方法;KP-PLM则是将结构化知识转化为自然语言描述的形式进行注入。
执行下面命令即可进行Masked Language Modeling和Causal Language Modeling的预训练:
bash applications/pretraining/run_pretrain_mlm.sh
bash applications/pretraining/run_pretrain_casual_lm.sh
传统的Fine-tuning在低资源场景下容易出现过拟合问题,因此复用预训练的目标可以拉近Pre-training和Fine-tuning之间的语义差异。HugNLP集成了PET、P-tuning、Prefix-tuning等Prompt-Tuning算法,并无缝嵌入在NLP分类任务的模型里。使用者只需要指定
use_prompt_for_cls
参数即可使用Prompt-Tuning。在大模型时代,如何将不同类型的NLP任务进行范式统一,是构造通用人工智能的核心要素。HugNLP为此定义了三种统一范式的思想:
万物皆可生成 :将所有NLP任务建模为单向自回归生成,例如GPT-3、ChatGPT等;
万物皆可抽取 :将所有NLP任务建模为抽取式机器阅读理解;
万物皆可推断 :将所有NLP任务建模为自然语言推断;
基于三种不同的范式统一,HugNLP推出两个核心产品,分别是:
HugIE :基于抽取式Instruction的统一信息抽取框架;
HugChat :基于生成式Instruction的中小型ChatGPT类模型;
In-Context Learning(ICL) 首次由GPT-3提出,其旨在挑选少量的标注样本作为提示(Prompt),从而在形式上促使大模型生成目标答案。总的来说,ICL具备如下性质:
只需要少量标注样本作为提示;
无需训练模型,直接通过模型生成获得结果;
In-Context Learning可以完成分类和生成两种任务。HugNLP为此实现基于Decoder-only类模型的In-Context Learning的Application并分别用于分类和生成任务上。使用时,只需要指定下面参数即可:
--user_defined="data_name=xxx num_incontext_example=4 l=1 use_calibrate=True"
--use_prompt_for_cls
半监督旨在同时结合标注数据和无标签数据来训练NLP任务。Self-training是一种简单但有效的迭代式训练方法,其通过Teacher模型先获取伪标签,对伪标签进行去噪后,再训练Student模型。HugNLP集成了面向不确定性评估的半监督训练方法,提高了自训练中的噪声处理有效性。理论上,所有的NLP任务都可以通过HugNLP框架实现半监督训练。
HugNLP使用半监督模式,只需要做两件事:
(1)执行脚本时添加参数:
--use_semi
(2)在指定的数据集目录下,存放unlabeled data文件。
代码智能是一种特殊的NLP任务领域,旨在训练一个模型能够更好地理解和表征代码语言,现有的一些代表模型有CodeBERT、PLBART等。
"code_cls": {
"roberta": RobertaForCodeClassification,"codebert": CodeBERTForCodeClassification,"graphcodebert": GraphCodeBERTForCodeClassification,"codet5": CodeT5ForCodeClassification,"plbart": PLBARTForCodeClassification,},HugNLP框架也集成了code方面的一些任务,下面列出已经实现的任务和使用方式:(1)代码克隆检测(code clone detection)添加参数:
--task_name=code_clone
--task_type=code_cls
(2)代码修复(code defect)添加参数:
--task_name=code_defect
--task_type=code_cls
最近ChatGPT火爆全球,为了让研究者可以训练自己的ChatGPT,HugNLP框架集成了基于生成式Instruction的训练产品——HugChat,其支持 各种类型的单向生成式模型的训练 ,例如GPT-2、GPT-Neo、OPT、GLM等。为了支持较大规模模型(例如OPT-13B)使得其在8张V100 32G的条件下可训练,HugNLP集成了大量的训练优化技术,包括:
混合精度训练FP16;
DeepSpeed+ZeRO技术;
参数有效性训练,例如LoRA、PEFT等;
INT8模型量化;
数据方面,HugAILab团队开源了约200万条英文、300万条中文对话数据,用于训练模型。例如训练GPT-2(XL),可直接执行脚本:
bash ./application/instruction_prompting/HugChat/supervised_finetuning/run_causal_instruction_gpt2_xl.sh
基于HugNLP,训练的GPT-2(1.3B)模型,即可实现很简单的对话任务。只需要执行如下命令即可:
python3 applications/instruction_prompting/HugChat/hugchat.py
例如可以写套磁信邮件: 再例如搜索谷歌地球的相关信息: 也可以实现编写简单的代码(1.3B的模型具备此能力已经很惊叹了!): HugNLP目前正在开发其他类型的Decoder-only大模型,相关信息和开源内容如下表所示: HugChat后期将推出垂直领域的大模型解决方案,同时将与OpenAI API进行融合,推出大模型服务框架。
信息抽取(Information Extraction) 旨在从非结构化的文本中抽取出结构化信息,是构建知识库的重要步骤之一。通常信息抽取包括两个核心步骤,分别是 命名实体识别(Named Entity Recognition) 和 关系抽取(Relation Extraction) 。
我们基于HugNLP研发一款HugIE产品,旨在实现统一信息处理。其主要核心包括如下几个部分:
将实体识别和关系抽取,统一为新的范式——基于抽取式阅读理解的方法。HugIE采用Global Pointer模型实现信息抽取;
定义Instruction Prompt,指导模型生成需要抽取的内容;
采用多任务训练的方法训练;
HugIE目前已经开源了模型:https://huggingface.co/wjn1996/wjn1996-hugnlp-hugie-large-zh可以基于HugNLP框架使用HugIE抽取模型,如下图所示:
>>> from applications.information_extraction. HugIE.api_test import HugIEAPI
>>> model_type = "bert">>> hugie_model_name_or_path = "wjn1996/wjn1996-hugnlp-hugie-large-zh">>> hugie = HugIEAPI(model_type, hugie_model_name_or_path)>>> text = "北京在2008年和2022年分别举办了夏季奥运会和冬季奥运会">>> # Beijing has posted the Summer and Winter Olympics in 2008 and 2022, respectively.>>> entity = "2008年奥运会" # 2008 Olympics Games>>> relation = "举办地" # host place>>> predictions, = hugie.request(text, entity, relation)>>> print(predictions){0: ["北京"]}>>> # {0: ["Beijing"]}HugNLP最先开发了面向一些常用榜单的刷榜工具,例如GLUE、CLUE等。用户只需要配置相应的数据集名称,即可实现一键刷榜。为了验证框架的有效性,在22年9月提交了CLUE榜单的刷榜结果,选择一系列中文小模型(RoBERTa、MacBERT、P-BERT等)并结合了logits集成方法,至今依然维持在第15名位置,曾一度超越了部分企业。 例如如果训练CLUE榜单的AFQMC数据集,可编辑文件
applications/benchmark/clue/clue_finetune_dev.sh
修改参数:
--user_defined="data_name=afqmc"
执行下列命令即可:
bash applications/benchmark/clue/clue_finetune_dev.sh
HugNLP框架集成了若干种对抗训练的方法,其中最简单的对抗方法为FGM算法:
在训练时,只需要添加一行参数,即可默认调用FGM算法:
--do_adv
同样的方法还可以训练一些常用的NLP任务,例如阅读理解、实体识别、以及GLUE英文数据集等。
HugNLP还集成了一系列模型用于刷榜,例如BERT、RoBERTa、DeBERTa、MacBERT、Erlangshen等。
下面简单介绍如何使用HugNLP框架
1、下载HugNLP仓库代码至本地或服务器:
git clone https://github.com/HugAILab/HugNLP.gitcd HugNLP
2、安装HugNLP:
python3 setup.py install
3、基于BERT训练一个GLUE榜单数据集RTE,可直接执行:
bash ./applications/benchmark/glue/run_glue.sh
4、基于GPT-2的In-Context Learning队RTE进行分类,可执行:
bash ./applications/benchmark/glue/run_causal_incontext_glue.sh
5、训练自己的ChatGPT模型,仅需要8张V100,即可以训练基于OPT-13B的对话大模型:
bash ./applications/instruction_prompting/HugChat/supervised_finetuning/run_causal_instruction_opt_lora.sh
目前HugNLP已支持的应用如下表所示: 还有更多丰富的应用正在开发中。HugNLP也欢迎有志之士加入HugAILab参与开源开发工作 ? 。
关键词:
1、第一熊猫是珍惜动物,第二只有中国才有大熊猫,第三熊猫憨态可掬的形象和中华民族朴实无华的影像很接近
1、好现在的超市太多了 效益并不怎么理想!除非在学校比较集中的地方效益会高很多!。本文到此分享完毕,希
蔚蓝生物:青岛蔚蓝生物股份有限公司关于2022年年度股东大会增加临时提案的公告
5月6日,由国家肉羊种业科技创新联盟、国家肉羊产业技术体系天津综合试验站和天津奥群牧业有限公司联合主办
央视网消息(新闻联播):工业和信息化部的最新数据显示,当前,中小企业采购、销售等先行指标持续向好,专
近日,由青岛地铁第一建设分公司建设、中建一局集团施工的青岛地铁9号线正阳中路首幅地下连续墙顺利吊装完
1、上穷碧落下黄泉,比喻上天入地,到处都找遍了。2、描写杨贵妃死后,唐明皇非常思念她,就派方士道人上天
伴随着“咔嚓”一声楼道小广告被瞬间定格在了手机中不久,同样的声音又响起“咔嚓,咔嚓 ”循声而去这次
1、进入方法如下:1 打开dnf,登录游戏;2 然后按下esc键进入菜单界面,然后点击“公会”;3 确认自己加入
饿了吗?戳右边关注我们,每天给您送上最新出炉的娱乐硬核大餐!五一出行高峰期后,不少人出现了喉咙肿痛的
2023国际篮联三人篮球女子系列赛全球首站-武汉站开幕。国际篮联三人篮球女子系列赛是国际篮联三人篮球女子
苹果仓位——巴菲特:苹果是持有的最好的公司,公司对苹果的持仓绝对没有占到投资组合的35%,乐见提高对苹
泰州市村镇公路拆迁补偿标准有何文件可依据
1、秋浦歌十七首(其十四)李白炉火照天地,红星乱紫烟。2、赧郎明月夜,歌曲动寒川。3、秋浦
1、歌曲:别怕我伤心歌手:樊桐舟专辑:绝色Ⅲ知性女人•搜索 "别怕我伤心 "LRC歌词•搜索 "别怕我伤心 "mp3
Copyright 2015-2022 欧洲双创网 版权所有 备案号:沪ICP备2022005074号-23 联系邮箱: 58 55 97 3@qq.com
英飞拓(002528.SZ)近日走出大涨大跌的过山车行情 今日一字板跌停
英飞拓(002528 SZ)近日走出大涨大跌的过山车行情,此前走出3连涨停创下阶段新高,今日一字板跌停,录得连续2日跌停,大幅回吐此前涨幅,现
京基智农(000048.SZ)再度跌超6% 总市值失守百亿元大关
昨日跌停的京基智农(000048 SZ)再度跌超6%,盘中低见16 5元创5个月新低,总市值失守百亿元大关。公司控股股东京基集团7月4日通过大宗交易方
随着全光网络越织越密 如何进一步增强消费者和产业界的“获得感”?
近年来,在5G和宽带双千兆牵引下,新项目、新试点、新应用层出不穷。随着全光网络越织越密,如何进一步增强消费者和产业界的获得感?湖北日