作者:王嘉宁
编辑:LRS
【新智元导读】一站式NLP工具箱,你想要的全都有!近日,华师大HugAILab团队研发了HugNLP框架,这是一个面向研究者和开发者的全面统一的NLP训练框架,可支持包括文本分类、文本匹配、问答、信息抽取、文本生成、小样本学习等多种NLP任务模型搭建和训练。
开源地址:https://github.com/HugAILab/HugNLP
论文:https://arxiv.org/abs/2302.14286
值得注意的是,HugNLP还集成了大量最新的Prompt技术,例如Prompt-Tuning、In-Context Learning、Instruction-tuning,未来还将引入Chain-of-thought
HugAILab团队还研发了一系列的应用,例如CLUE&GLUE刷榜工具,可支持ChatGPT类模型训练和部署产品HugChat,以及统一信息抽取产品HugIE等。
HugNLP是一个分层式框架,遵循“高内聚低耦合”的开发模式,其核心包括模型层(Models)、处理器层(Processors)、评估器层(Evaluators)和应用层(Applications)四部分。
框架图如下所示:
模型层:包含模型部分,主要按照任务类型进行划分;处理器层:对数据进行加载、缓存、分词等处理,并转换为模型输入的Tensor;评估器层:根据不同类型的任务(分类或生成),指定不同的评估流程和评价指标;应用层:对应的应用执行脚本。理论上来说,选定一个模型、一个数据处理器以及一个评估器,即可对应一个应用。HugNLP完全基于HuggingFace开发,具有易扩展、易部署能力,同时集成了MLFlow训练追踪器,方便使用者及时追踪实验进度,并进行实验分析。
HugNLP框架之所以称为全面,是因为其集成了大量的NLP任务模型,目前已经实现的包括:
预训练:Masked LM、Causal LM、知识增强预训练;Instruction-Tuning:支持自回归生成式、区间抽取式、NLI等统一范式训练;文本分类/匹配:传统Fine-tuning、Prompt-tuning、In-Context Learning;序列标注: 支持NER等序列标注任务;元学习: 基于序列的元学习(SentenceProto)、基于区间的元学习(SpanProto)、基于token的元学习(TokenProto,NNShot);问答:支持抽取式问答、多项选择式问答、开放生成式问答;文本生成:支持文本摘要、机器翻译(正在开发中);代码智能:目前集成了代码克隆检测(Clone)、代码缺陷检测(Defact)等Code任务;快速部署HugNLP框架,只需要执行代码三行命令即可:
git clone https://github.com/HugAILab/HugNLP.gitcd HugNLPpython3 setup.py install
下面介绍HugNLP的几个核心能力:
Benchmark一键刷榜;预训练和知识注入;Fine-tuning & Prompt-tuning;Instruction-tuning;In-Context Learning;半监督Self-training;Code代码智能;一、Benchmark一键刷榜
HugNLP最先开发了面向一些常用榜单的刷榜工具,例如GLUE、CLUE等。用户只需要配置相应的数据集名称,即可实现一键刷榜。
为了验证框架的有效性,在22年9月提交了CLUE榜单的刷榜结果,选择一系列中文小模型(RoBERTa、MacBERT、P-BERT等)并结合了logits集成方法,至今依然维持在第15名位置,曾一度超越了部分企业。
HugNLP框架集成了ICL,主要涉及到样本的挑选和预测结果的校准两个部分:
样本挑选:默认为从训练集中随机挑选样本,后期将会开发一系列样本挑选的算法,例如聚类、K近邻、余弦相似度等;预测校准:由于所挑选标注样本与待预测样本存在分布差异,需要对预测的概率分布进行校准,这里采用Calibrate Before Use方法,如下图,可以对预测分布进行校准,提高预测效果。目前ICL已经集成在HugNLP里,只需要指定下面参数即可:
--user_defined="data_name=xxx num_incontext_example=4 l=1 use_calibrate=True"--use_prompt_for_cls
六、半监督Self-training
半监督旨在同时结合标注数据和无标签数据来训练NLP任务。Self-training是一种简单但有效的迭代式训练方法,其通过Teacher模型先获取伪标签,对伪标签进行去噪后,再训练Student模型。传统的Self-training会引入大量噪声,从而降低训练的效果。
为了提高性能,HugNLP引入成熟的Uncertainty-aware Self-training技术。框架图如下所示:
参考资料:
相关文章
猜你喜欢