NLP Core Library and Model Zoo based on PaddlePaddle 2.0

Overview

简体中文 | English


License python version support os

简介

PaddleNLP 2.0拥有丰富的模型库、简洁易用的API与高性能的分布式训练的能力,旨在为飞桨开发者提升文本建模效率,并提供基于PaddlePaddle 2.0的NLP领域最佳实践。

特性

  • 丰富的模型库

    • 涵盖了NLP主流应用相关的前沿模型,包括中文词向量、预训练模型、词法分析、文本分类、文本匹配、文本生成、机器翻译、通用对话、问答系统等,更多详细介绍请查看PaddleNLP模型库
  • 简洁易用的API

    • 深度兼容飞桨2.0的高层API体系,提供可复用的文本建模模块,可大幅度减少数据处理、组网、训练环节的代码开发量,提升文本建模开发效率。
  • 高性能分布式训练

    • 通过深度优化的混合精度训练策略与Fleet分布式训练API,可充分利用GPU集群资源,高效完成大规模预训练模型的分布式训练。

安装

环境依赖

  • python >= 3.6
  • paddlepaddle >= 2.0.0
pip install paddlenlp==2.0.0rc

快速开始

数据集快速加载

from paddlenlp.datasets import ChnSentiCorp

train_ds, dev_ds, test_ds = ChnSentiCorp.get_datasets(['train', 'dev', 'test'])

可参考Dataset文档查看更多数据集。

一键加载中文词向量

from paddlenlp.embeddings import TokenEmbedding

wordemb = TokenEmbedding("w2v.baidu_encyclopedia.target.word-word.dim300")
print(wordemb.cosine_sim("国王", "王后"))
>>> 0.63395125
wordemb.cosine_sim("艺术", "火车")
>>> 0.14792643

内置50+中文词向量,更多使用方法请参考 Embedding文档

一键加载高质量中文预训练模型

from paddlenlp.transformers import ErnieModel, BertModel, RobertaModel, ElectraModel, GPT2ForPretraining

ernie = ErnieModel.from_pretrained('ernie-1.0')
bert = BertModel.from_pretrained('bert-wwm-chinese')
roberta = RobertaModel.from_pretrained('roberta-wwm-ext')
electra = ElectraModel.from_pretrained('chinese-electra-small')
gpt2 = GPT2ForPretraining.from_pretrained('gpt2-base-cn')

请参考 Pretrained-Models查看目前支持的预训练模型。

模型库及其应用

PaddleNLP模型库整体介绍请参考文档PaddleNLP Model Zoo. 模型应用场景介绍请参考PaddleNLP Examples

进阶应用

API 使用文档

  • Transformer API
    • 基于Transformer结构相关的预训练模型API,包含ERNIE, BERT, RoBERTa, Electra等主流经典结构和下游任务。
  • Data API
    • 文本数据处理Pipeline的相关API说明。
  • Dataset API
    • 数据集相关API,包含自定义数据集,数据集贡献与数据集快速加载等功能说明。
  • Embedding API
    • 词向量相关API,支持一键快速加载包预训练的中文词向量,VisualDL高维可视化等功能说明。
  • Metrics API
    • 针对NLP场景的评估指标说明,与飞桨2.0框架高层API兼容。

交互式Notebook教程

更多教程参见PaddleNLP on AI Studio

社区贡献与技术交流

  • 欢迎您加入PaddleNLP的SIG社区,贡献优秀的模型实现、公开数据集、教程与案例、外围小工具。
  • 现在就加入PaddleNLP的QQ技术交流群,一起交流NLP技术吧! ⬇️

License

PaddleNLP遵循Apache-2.0开源协议

Comments
  • 【Hackathon + GradientCache】

    【Hackathon + GradientCache】

    PR types

    PR changes

    Description

        已完成gradient_cache策略,在batch_size==512,chunk_size==16的情况下,Recall@10 和 Recall@50分别为50.195 65.067;也可以进超大batch训练,已经测试batch_size==12800,显存占用符合要求。

    opened by Elvisambition 28
  • 运行一个公开的bert-NER项目出错

    运行一个公开的bert-NER项目出错

    image

    image

    项目地址: https://aistudio.baidu.com/aistudio/projectdetail/1925434 from https://aistudio.baidu.com/aistudio/projectdetail/1477098?channelType=0&channel=0

    opened by Biggg888 24
  • [Question]: taskflow('document_intelligence') 和 直接使用预模型ernie-layoutx-base-uncased 做预测有什么区别?

    [Question]: taskflow('document_intelligence') 和 直接使用预模型ernie-layoutx-base-uncased 做预测有什么区别?

    请问,发现taskflow('document_intelligence')这种方式,是在.cache/下会生成docprompt_params.tar文件,解压后有一个模型文件inference.pdiparams和inference.pdmodel。而使用autoModel,是下载预训练模型。 我想知道是否使用taskflow效果会更好,还是和直接使用预训练模型(没经过ft)进行预测效果一致。两者的训练数据是否是一样,是不是就是一个东西?

    question 
    opened by hehuang139 22
  • faster-generation有时候耗时会比较长

    faster-generation有时候耗时会比较长

    欢迎您反馈PaddleNLP使用问题,非常感谢您对PaddleNLP的贡献! 在留下您的问题时,辛苦您同步提供如下信息:

    • 版本、环境信息 1)PaddleNLP和PaddlePaddle版本:请提供您的PaddleNLP和PaddlePaddle版本号,例如PaddleNLP 2.3.3,PaddlePaddle2.3.0 2)系统环境:系统版本为linux,python 3.8
    • 复现信息: 使用unified-transformer的faster-generation时候,大部分耗时都在30-50ms之间,但是有时候突然就达到了200ms
    stale 
    opened by zhanghaoie 22
  • ernie3量化压缩后的模型可以在ARM上部署CPU预测吗?

    ernie3量化压缩后的模型可以在ARM上部署CPU预测吗?

    • 版本、环境信息 1)PaddleNLP和PaddlePaddle版本:PaddleNLP 2.3.4,PaddlePaddle2.3.1(ARM上源码编译) 2)系统环境:CentOS7,python3.7 在X86-64带GPU的机器上训练并量化压缩token_cls模型,在ARM上部署的时候使用CPU预测,报错。

    代码为/PaddleNLP/model_zoo/ernie3.0/下的代码。

    命令如下:其中模型为已经量化压缩后的模型 python3.7 infer_cpu.py --task_name token_cls --model_path ../model/hist16/int8 --precision_mode int8

    报错信息如下: [2022-07-28 16:45:14,722] [ WARNING] - Can't find the faster_tokenizer package, please ensure install faster_tokenizer correctly. You can install faster_tokenizer by pip install faster_tokenizer(Currently only work for linux platform). [2022-07-28 16:45:14,722] [ INFO] - We are using <class 'paddlenlp.transformers.ernie.tokenizer.ErnieTokenizer'> to load 'ernie-3.0-medium-zh'. [2022-07-28 16:45:14,722] [ INFO] - Already cached /root/.paddlenlp/models/ernie-3.0-medium-zh/ernie_3.0_medium_zh_vocab.txt [2022-07-28 16:45:14,766] [ INFO] - tokenizer config file saved in /root/.paddlenlp/models/ernie-3.0-medium-zh/tokenizer_config.json [2022-07-28 16:45:14,766] [ INFO] - Special tokens file saved in /root/.paddlenlp/models/ernie-3.0-medium-zh/special_tokens_map.json

    [InferBackend] Creating Engine ... [InferBackend] INT8 inference on CPU ... Traceback (most recent call last): File "infer_cpu.py", line 85, in main() File "infer_cpu.py", line 74, in main predictor = ErniePredictor(args) File "/pgsql/iaodata/mxy/Projects/ernie3_ner/src/ernie3_ner/predict_process/ernie_predictor.py", line 292, in init num_threads=args.num_threads) File "/pgsql/iaodata/mxy/Projects/ernie3_ner/src/ernie3_ner/predict_process/ernie_predictor.py", line 94, in init config.enable_mkldnn_int8() AttributeError: 'paddle.fluid.core_avx.AnalysisConfig' object has no attribute 'enable_mkldnn_int8'

    可能存在的问题: 1.代码ernie_predictor.py中,cpu_backend中使用的是mkl库,但是ARM上没有avx指令集,也没法安装mkl。 2.另外cpu_backend改为onnxruntime后,加载量化压缩模型,会报错Segmentation fault (core dumped)

    疑问: ernie3量化压缩后的模型是否现在还不支持在ARM上进行CPU部署?

    FAQ 
    opened by Macxy2018 20
  • PaddlePaddle Hackathon 57 提交

    PaddlePaddle Hackathon 57 提交

    Task: #1073

    权重文件 链接: https://pan.baidu.com/s/1-FJDmtfO8MuPQgq0EEbUhw 提取码: gst6 添加XLNetLMHeadModel、XLNetForMultipleChoice、XLNetForQuestionAnswering。 新增单元测试代码。XLNetLMHeadModel、XLNetForMultipleChoice、XLNetForQuestionAnswering。

    opened by renmada 20
  • UIE文本信息抽取微調問題

    UIE文本信息抽取微調問題

    目前有兩個問題 1.目前要進行UIE微調任務,使用Doccano進行標註,從Doccano輸出成jsonl檔案,丟進doccano.py會出現錯誤信息UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa5 in position 37: invalid start byte,需再以人工轉編碼至utf-8

    2.標註完以doccano.py進行訓練測試資料及切分,確認裡面不是空的。但丟進fintune.py進行訓練總是跑了1 epoch就不跑了,沒有跑出錯誤信息,使用已跑出model_10來預測新的檔案效果不太好 1658909857387

    不知道是否有人遇過一樣情形。

    stale 
    opened by JoewithAmma 19
  • 运行PaddleNLP/applications/document_intelligence/doc_vqa/中的汽车说明书跨模态智能问答出现问题

    运行PaddleNLP/applications/document_intelligence/doc_vqa/中的汽车说明书跨模态智能问答出现问题

    请提出你的问题

    我在运行OCR检测时(代码位置:PaddleNLP/applications/document_intelligence/doc_vqa/OCR_process/ocr_process.py)出现以下问题,请问是什么原因?

    [2022-10-26 16:30:36,060] [ INFO] - Already cached /root/.paddlenlp/models/layoutxlm-base-uncased/sentencepiece.bpe.model [2022-10-26 16:30:36,584] [ INFO] - tokenizer config file saved in /root/.paddlenlp/models/layoutxlm-base-uncased/tokenizer_config.json [2022-10-26 16:30:36,584] [ INFO] - Special tokens file saved in /root/.paddlenlp/models/layoutxlm-base-uncased/special_tokens_map.json [2022/10/26 16:30:36] ppocr DEBUG: Namespace(alpha=1.0, benchmark=False, beta=1.0, cls_batch_num=6, cls_image_shape='3, 48, 192', cls_model_dir='/root/.paddleocr/whl/cls/ch_ppocr_mobile_v2.0_cls_infer', cls_thresh=0.9, cpu_threads=10, crop_res_save_dir='./output', det=True, det_algorithm='DB', det_box_type='quad', det_db_box_thresh=0.6, det_db_score_mode='fast', det_db_thresh=0.3, det_db_unclip_ratio=1.5, det_east_cover_thresh=0.1, det_east_nms_thresh=0.2, det_east_score_thresh=0.8, det_limit_side_len=960, det_limit_type='max', det_model_dir='/root/.paddleocr/whl/det/ch/ch_PP-OCRv3_det_infer', det_pse_box_thresh=0.85, det_pse_min_area=16, det_pse_scale=1, det_pse_thresh=0, det_sast_nms_thresh=0.2, det_sast_score_thresh=0.5, draw_img_save_dir='./inference_results', drop_score=0.5, e2e_algorithm='PGNet', e2e_char_dict_path='./ppocr/utils/ic15_dict.txt', e2e_limit_side_len=768, e2e_limit_type='max', e2e_model_dir=None, e2e_pgnet_mode='fast', e2e_pgnet_score_thresh=0.5, e2e_pgnet_valid_set='totaltext', enable_mkldnn=False, fourier_degree=5, gpu_mem=500, help='==SUPPRESS==', image_dir=None, image_orientation=False, ir_optim=True, kie_algorithm='LayoutXLM', label_list=['0', '180'], lang='ch', layout=True, layout_dict_path=None, layout_model_dir=None, layout_nms_threshold=0.5, layout_score_threshold=0.5, max_batch_size=10, max_text_length=25, merge_no_span_structure=True, min_subgraph_size=15, mode='structure', ocr=True, ocr_order_method=None, ocr_version='PP-OCRv3', output='./output', page_num=0, precision='fp32', process_id=0, re_model_dir=None, rec=True, rec_algorithm='SVTR_LCNet', rec_batch_num=6, rec_char_dict_path='/home/anaconda3/envs/lc_detectron/lib/python3.7/site-packages/paddleocr/ppocr/utils/ppocr_keys_v1.txt', rec_image_inverse=True, rec_image_shape='3, 48, 320', rec_model_dir='/root/.paddleocr/whl/rec/ch/ch_PP-OCRv3_rec_infer', recovery=False, save_crop_res=False, save_log_path='./log_output/', scales=[8, 16, 32], ser_dict_path='../train_data/XFUND/class_list_xfun.txt', ser_model_dir=None, show_log=True, sr_batch_num=1, sr_image_shape='3, 32, 128', sr_model_dir=None, structure_version='PP-Structurev2', table=True, table_algorithm='TableAttn', table_char_dict_path=None, table_max_len=488, table_model_dir=None, total_process_num=1, type='ocr', use_angle_cls=True, use_dilation=False, use_gpu=True, use_mp=False, use_npu=False, use_onnx=False, use_pdf2docx_api=False, use_pdserving=False, use_space_char=True, use_tensorrt=False, use_visual_backbone=True, use_xpu=False, vis_font_path='./doc/fonts/simfang.ttf', warmup=False) Traceback (most recent call last): File "ocr_process.py", line 287, in ocr_results = ocr_preprocess(img_dir) File "ocr_process.py", line 275, in ocr_preprocess parsing_res = ocr.ocr(img_path, cls=True) File "/home/anaconda3/envs/lc_detectron/lib/python3.7/site-packages/paddleocr/paddleocr.py", line 534, in ocr dt_boxes, rec_res, _ = self.call(img, cls) File "/home/anaconda3/envs/lc_detectron/lib/python3.7/site-packages/paddleocr/tools/infer/predict_system.py", line 71, in call dt_boxes, elapse = self.text_detector(img) File "/home/anaconda3/envs/lc_detectron/lib/python3.7/site-packages/paddleocr/tools/infer/predict_det.py", line 242, in call self.input_tensor.copy_from_cpu(img) File "/home/anaconda3/envs/lc_detectron/lib/python3.7/site-packages/paddle/fluid/inference/wrapper.py", line 36, in tensor_copy_from_cpu self.copy_from_cpu_bind(data) OSError: (External) CUDNN error(1), CUDNN_STATUS_NOT_INITIALIZED. [Hint: 'CUDNN_STATUS_NOT_INITIALIZED'. The cuDNN library was not initialized properly. This error is usually returned when a call to cudnnCreate() fails or when cudnnCreate() has not been called prior to calling another cuDNN routine. In the former case, it is usually due to an error in the CUDA Runtime API called by cudnnCreate() or by an error in the hardware setup. ] (at /paddle/paddle/phi/backends/gpu/gpu_context.cc:516)

    question 
    opened by xdnjust 17
  • [Question]: 使用BiGRU + CRF训练实体抽取算法,导出静态图之后无法识别结果

    [Question]: 使用BiGRU + CRF训练实体抽取算法,导出静态图之后无法识别结果

    请提出你的问题

    参照https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/information_extraction/waybill_ie文档,使用BiGRU + CRF训练了中文简历数据实体抽取模型,动态图的预测结果正常,如下图所示: image 但是zai在导出为动态图模型之后,无法识别结果,如下图所示: image 请问下我是哪里出错了吗?

    question 
    opened by KyleWang-Hunter 17
  • [infer 准确率每次都不一样]: 有那些可能的原因?或者bug?

    [infer 准确率每次都不一样]: 有那些可能的原因?或者bug?

    请提出你的问题

    每次做eval 结果不一样,同一脚本连续允许,如下: dev_loss: 0.2723, acc: 0.8886, precision: 0.8474, recall: 0.9480, f1: 0.8949 acc and f1: 0.8918 dev_loss: 0.2602, acc: 0.8925, precision: 0.8584, recall: 0.9400, f1: 0.8974 acc and f1: 0.8949 dev_loss: 0.2688, acc: 0.8895, precision: 0.8528, recall: 0.9416, f1: 0.8950 acc and f1: 0.8923

    def eval_test():
        from train import parse_args
        args = parse_args()
        paddle.set_device(args.device)
        pretrained_model = AutoModel.from_pretrained(args.plm_name)
        tokenizer = AutoTokenizer.from_pretrained(args.plm_name)
        model = get_model(pretrained_model, args)
        data_loader = create_eval_dataloader(
            args.input_file, tokenizer, max_seq_length=args.max_seq_length, eval_batch_size=args.eval_batch_size, pad_to_max=args.pad_to_max)
        criterion = paddle.nn.loss.CrossEntropyLoss(soft_label=False)
        metric = AccuracyAndF1()
        
        if args.init_from_ckpt and os.path.isfile(args.init_from_ckpt):
            state_dict = paddle.load(args.init_from_ckpt)
            model.set_dict(state_dict)
            logger.info(f"load model from {args.init_from_ckpt}")
        else:
            logger.info(f"did not find the parameters file")
            raise RuntimeError("cannot eval use default parameters")
        ret_dict = evaluate(model, criterion, metric, data_loader, return_dict=True)
    
    @paddle.no_grad()
    def evaluate(model, criterion, metric, data_loader, return_dict=False):
        model.eval()
        metric.reset()
        losses = []
        total_num = 0
        logits_list = []
        labels_list = []
        for batch in data_loader:
            input_ids, token_type_ids, labels = batch
            total_num += len(labels)
            outputs = model(input_ids=input_ids,
                            token_type_ids=token_type_ids,
                            do_evaluate=True)
            logits = outputs[0]
            logits_list.append(logits.numpy())
    
            loss = criterion(logits, labels)
            losses.append(loss.numpy())
            labels_list.append(labels.numpy())
            correct = metric.compute(logits, labels)
            metric.update(correct)
        
        accu = metric.accumulate()
        total_loss = np.mean(losses)
        if isinstance(metric, paddle.metric.Accuracy):
            logger.info("dev_loss: {:.4}, accuracy: {:.4}, total_num:{:.4}".format(
                total_loss, accu, total_num))
        elif isinstance(metric, AccuracyAndF1):
            logger.info(f"dev_loss: {total_loss:.4f}, acc: {accu[0]:.4f}, precision: {accu[1]:.4f}, recall: {accu[2]:.4f}, f1: {accu[3]:.4f} acc and f1: {accu[4]:.4f}")
        model.train()
        metric.reset()
        if return_dict:
            return {"loss": total_loss, "metrics": accu, "logits": np.concatenate(logits_list, axis=0), "labels": np.concatenate(labels_list, axis=0)}
        return accu
    
    question stale 
    opened by jeffzhengye 16
  • doccano.py 生成数据中的start,end 的意义是什么,

    doccano.py 生成数据中的start,end 的意义是什么,

    doccano.py 分类生成数据中的start,end 的意义是什么,如果是是标签的下边,也对不上啊

    {"content": "大元股份传闻王 上演逼空大戏", "result_list": [{"text": "stocks", "start": -3, "end": 3}], "prompt": "新闻分类[finance,sports,science,society,game,education,stocks,realty,politics]"} {"content": "门将第95分钟头球破门 他改写西甲81年历史(视频)", "result_list": [{"text": "sports", "start": -3, "end": 3}], "prompt": "新闻分类[stocks,society,finance,education,realty,sports,game,science,politics]"} {"content": "A股短期反弹空间有限 逢低或可介入黄金", "result_list": [{"text": "stocks", "start": -9, "end": -3}], "prompt": "新闻分类[science,game,finance,stocks,realty,sports,politics,education,society]"}

    opened by fuqiang-benz 16
  • UIE中NER可以使用自己doccano标注的数据进行训练么?

    UIE中NER可以使用自己doccano标注的数据进行训练么?

    Feature request

    不做微调,直接用自己的数据进行训练, NER中实体与bert-base有很大差异,标签就一个关键词,其他都是other, 这种我想自己训练个模型,请问下有脚本或参考文档么? 感谢!!

    Motivation

    因为有的很大实体识别并不仅仅限于O,per,loc,misc,time,money等等 还有可能不是这些,直接就是特定的词,不管他啥词性。

    Your contribution

    thx

    question 
    opened by ucas010 1
  • [Bug]: OPT-6.7b模型评测不正常

    [Bug]: OPT-6.7b模型评测不正常

    软件环境

    - paddlepaddle:
    - paddlepaddle-gpu: 
    - paddlenlp:
    

    重复问题

    • [X] I have searched the existing issues

    错误描述

    按照https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/text_generation/opt里面的demo.py,将里面的opt-2.7b模型换成opt-6.7b的模型,对于下面同样的评测文本,2.7b能给出合理的回答,但是6.7b没有给出合理的回答
    
    input text: 
    Question:If x is 2 and y is 5, what is x+y?
    Answer: 7
    
    Question: if x is 12 and y is 9, what is x+y?
    Answer:21
    
    Question: if x is 3 and y is 4, what is x+y?
    
    output text: 
    ascriptroorooru
     igginsatarrooischsql
    

    稳定复现步骤 & 代码

    demo = Demo(model_name_or_path="facebook/opt-6.7b", max_predict_len=10)
    
    bug 
    opened by penghanyuphy 0
  • Doubleguy1

    Doubleguy1

    PR types

    New features [Model Zoo]

    PR changes

    update ernie-health add configuration.py update modeling.py update test_modeling.py

    Description

    add configuration

    contributor status: proposed 
    opened by doubleguy 2
Releases(v2.4.9)
  • v2.4.9(Dec 30, 2022)

    New Features

    • Trainer新增Memory Tracer #4181
    • ERNIE 1.0 支持Ascend NPU #3954
    • 新增无监督检索式问答系统 #4193
    • DynaBert支持动态图export #3549
    • 增加信息抽取相关的英语文档 #4247

    Bug Fix

    • 修复带PretrainedConfig的模型属性方面过多的warnings #4264
    • 修复ErnieEncoder的PretrainedConfig适配问题 #4281
    • 修复IE taskflow加载定制模型的config名字问题 #4271
    • 修复Trainer fp16问题 #4283
    • 修复AutoTemplate 中的 prefix_dropout参数 #4293
    • 修复多卡下载config卡住的问题#4274
    Source code(tar.gz)
    Source code(zip)
  • v2.4.8(Dec 26, 2022)

    New Features

    PPDiffusers

    • 新增BIT和DPT模型 #4202
    • 支持Ascend NPU部署 #4217
    • ppdiffusers pipelines文档修改升级,新增任务展示,针对ppdiffusers能力进行整理输出;新增audio diffusion推理脚本和权重 新增paint by example推理脚本和权重 #4230

    Bug Fix

    • 修复AutoModel加载legacy config和standard config的问题 #4083
    • 修复PretrainedConfig带来的向后兼容问题 #4237
    • 修复GPT模型使用input_embeds的问题 #4179
    • 修复Trainer多卡时的save问题 #4220
    Source code(tar.gz)
    Source code(zip)
  • v2.4.7(Dec 23, 2022)

    New Features

    Sentiment Analysis

    • 情感分析:#3694
    • 提供uie-senta系列训练模型,支持语句情感分类,属性抽取,观点抽取等常用情感分析能力
    • 支持从输入数据到情感分析结果可视化,助力业务数据分析
    • 定制情感分析能力,解决同义属性聚合、隐性观点抽取难题

    UIE

    • UIE Taskflow支持从HF Hub加载

    TextClassification

    • 文本分类Taskflow支持多标签预测 #3968

    FastTokenizer

    • 修复FastTokenizer BertNormalizer json实例化bug

    Bug Fix

    • 修复AutoModel加载legacy config和standard config的问题 #4083

    Others

    • Ernie/ErnieM/ErnieLayout/Bart/MBart/Unified_Transformer/Unimo/CodeGen 等模型迁移使用PretrainedConfig #4118 #3769 #4170
    • 撰写贡献指南contributing.md #4160
    Source code(tar.gz)
    Source code(zip)
  • v2.4.5(Dec 9, 2022)

    New Features

    UIE

    • 新增UIE-X端到端文档抽取功能,支持Taskflow一键调用,并提供标注、微调及部署的产业级全流程解决方案。 #3951

    Machine Translation

    • 新增数据下载以及全套数据预处理流程,新增数据集自定义接口以及文档说明 #3269

    PPDiffusers

    • 添加FID和CLIP Score的计算代码 #3860
    • 发布ppdiffusers 0.6.3 #3963
    • 发布ppdiffusers 0.9.0 #3919 #4017 #4018
    • 新增ppdiffusers FastDeploy部署功能 #3813

    基础底座

    • Model以及Tokenizer支持一行代码.save_to_hf_hub()上传至Huggingface Hub #3982

    Others

    • CodeGen文档中新增社区贡献的Jupyter Lab Extension #4002
    • 将CodeStyle工具升级为isort, black和flake8. 大规模自动风格格式化 #3925
    Source code(tar.gz)
    Source code(zip)
  • v2.4.4(Nov 28, 2022)

    New Features

    Prompt API

    • 新增 MaskedLMVerbalizer,支持 PET 算法实现。#3889

    FastTokenizer

    • 新增CLIP FastTokenizer #3805

    PPDiffusers

    • PPDiffusers版的LDM权重转换为原版LDM权重。 #3809
    • 更新Unet中的attention的实现方式。 #3792

    Pipelines

    • Pipelines新增ERNIE-Search的支持 #3906

    基础底座

    • 新增文本分类专用的Text Classification Taskflow #3841
    • 新增完型填空的Fill-Mask Taskflow, 并且直接从Huggingface Hub加载#3870
    • AutoModel和AutoTokenizer支持直接从Huggingface Hub加载 #3786
    • Dialogue Taskflow支持直接从Huggingface Hub加载 #3865
    • 新增 PaddleNLP SimpleServing 功能,支持 Taskflow、预训练模型快速部署 #2845

    Bug Fix

    • 修复from_pretrained_v2不能加载FP16模型。#3902
    • 修复 Template 使用 options 关键字时无法组 batch 的问题 #3889
    Source code(tar.gz)
    Source code(zip)
  • v2.4.3(Nov 18, 2022)

    New Features

    Prompt API

    • Template String 新增支持关键字 prefixoptions,新增 position, token_type, length, encoder, hidden_size 等7个属性 #3724
    • 新增支持 PrefixTemplate
    • 解除 InputExampleInputFeatures 对输入数据关键字的限制

    问答

    • 新增无监督问答pipelines,pipeline运行示例和说明文档 #3605
    • 新增节点QAFilter、AnswerExtractor、QuestionGenerator、AnswerExtractorPreprocessor、QAFilterPostprocessor
    • 新增pipeline QAGenerationPipeline
    • FastAPI后端代码,承接ElasticSearch ANN检索库、QAGenerationPipeline和SemanticSearchPipeline
    • 无监督问答WEB可视化系统,功能如下:问答检索、在线问答对生成、在线更新索引库、文件上传并自动生成和载入问答对、问答对生成可选择过滤、问答检索可选择返回答案数量和最大检索数量

    Trainer

    • 新增sharding支持,目前支持sharding stage1、stage2。 #3352
    • 新增bf16训练支持,可支持单卡、多卡训练。完善了pure_fp16训练支持。
    • 新增IterableDataset支持,支持传入Iterable的数据集。
    • 新增Seq2SeqTrainer,支持seq2seq任务训练。

    FasterGeneration

    • 解除 Transformer FFN 中间隐层维度是 d_model 4 倍的限制,新增导入 model_state 方式加载模型 #3592

    FastTokenizer

    • AutoTokenizer新增use_fast参数,指定使用fast_tokenizer完成高性能分词。目前ERNIE, BERT, TinyBert以及ERNIE-M可开启该选项。#3746
    • 发布高性能分词工具FastTokenizer 1.0.0 正式版,包含C++预编译包以及Python包 #3762

    基础底座

    • UNIMO 新增支持获取中间输出选项和支持输入 label 并自动计算 loss #3450
    • CodeGen 新增支持获取中间输出选项和支持输入 label 并自动计算 loss #3465
    • UnifiedTransformer 新增支持获取中间输出选项和支持输入 label 并自动计算 loss #3459
    • BART 新增支持获取中间输出选项和支持输入 label 并自动计算 loss #3436
    • MBART 新增支持获取中间输出选项和支持输入 label 并自动计算 loss #3436
    • T5 支持直接输入 encoder & decoder embedding 结果 #3668
    • 新增paddlenlp cli工具 #3538
    • 添加 7 个 P1 级别模型的单测 #3462

    UIE

    • 新增 UIE 量化训练和部署 #3496

    Neural Search

    • 新增Gradicent Cache和Recompute支持单卡超大batch size的训练。 #3697

    Text Classification

    • 新增语义索引的多标签文本分类。#3656
    • 新增单词和句子级别的可解释性分析 #3385
    • 修复文本分类部署相关问题 #3765
    • 基于 Trainer API 更新多分类实现 #3679

    PPDiffusers

    • 将diffusers_paddle重命名为ppdiffusers。#3601
    • 修复bug支持中文Stable Diffusion, 发布ppdiffusers0.6.1。 #3663
    • 发布ppdiffusers0.6.2 #3737
    • 增加laion400m文生图训练脚本。#3693 #3772
    • 支持 EulerAncestralDiscreteScheduler 和 DPMSolverMultistepScheduler #3708 #3764
    • 增加fid计算代码。#3685
    • 增加ldm超分的pipeline。 #3710
    • 增加ppdiffusers推理pipeline使用代码。 #3759
    • 添加 ppdiffusers CD workflow #3604

    Bug Fix

    • 修复 FasterEncoder 预测结果异常问题 #3606
    • 修复 FasterGeneration PrefixLM 类模型在 beam search 解码策略下显存分配问题 #3662
    • 修复Windows平台下载社区模型失败的问题 #3670 #3640
    • Pipelines修复文件重复上传的问题。#3568
    • Pipelines修复word文档解析异常的问题。#3645
    • PIpelines修复批量预测异常的问题。#3712
    • 修复问题生成模版相关的bug .#3646
    • TIPC中gpt动转静。#3586
    • 添加CLIPText,CLIPVision进入auto/modeling,支持AutoModel加载,修改CLIP的默认NEG INF为-1e4,这样fp16 O2不会异常。 #3789
    • 修复 pypi 自动化发包流程配置 #3626
    Source code(tar.gz)
    Source code(zip)
  • v2.4.2(Oct 27, 2022)

    New Features

    Text summarization应用

    • 增Pegasus中文文本摘要应用,支持Taskflow一键调用,支持FasterGeneration高性能推理,训练推理部署全流程打通。#3275

    Question generation

    • 新增问题生成解决方案,提供基于UNIMO-Text和T5的通用问题生成预训练模型,支持Taskflow一键调用,支持FasterGeneration高性能推理,训练推理部署全流程打通。 #3410 #3438 #3560

    Machine Translation

    • FasterMBart 支持动转静导出 #3367 #3356
    • MBart tokenizers 升级重构,支持最新 tokenizer 所有功能 #3323
    • 分离 MBartTokenizerMBart50TokenizerMBart50Tokenizer 支持 AutoTokenizerMBartTokenizerMBart50Tokenizer 支持自定义 sentence piece 参数 #3323

    Pipelines

    • 新增DocPrompt 样例 #3542 #3534
    • 新增ERNIE Vilg文图生成。 #3512

    Taskflow

    • 优化Taskflow定制模型使用体验,增加模型参数文件的更新检查机制。 #3506

    Bug Fix

    • 修复 MBart 限制模型本身翻译语言的问题 #3356
    • 修复 CodeGen 生成时未使用 token type ids 的问题 #3348
    • 修复 CodeGen 自适应生成 attention mask 错误 #3348
    • 修复 T5 在 use_cache=False 情况下解码出错问题 #3115
    • 修复文本摘要taskflow不能加载自定义模型的bug #3533
    • 修复问题生成预测时的bug #3524
    • 修改uie训练代码中utils.py文件中result变量未定义的问题 #3490
    • FAQ Finance修复Paddle Serving 在windows上的bug。#3491
    • 修复Pipelines解析docx文档,文本和图片出现在同一个paragraph的情况。 #3546
    • 修复语义索引的文本分类的数据说明。#3551

    Others

    • 新增 T5 对 gated-silu 支持 #3115
    • 升级 T5Tokenizer 以支持 PaddleNLP 最新功能 #3115
    • 新增 T5 对 4D attention mask 支持 #3115
    • 新增 T5 支持以字典形式返回 #3370
    • FasterGeneration 支持 PaddlePaddle 2.4.0-rc0 及以上版本编译 #3545
    • UnifiedTransformer 支持自适应生成 position_idstoken_type_idsattention mask 等功能 #3177
    • UNIMO-Text 支持自适应生成 position_idstoken_type_idsattention mask 等功能 #3349
    Source code(tar.gz)
    Source code(zip)
  • v2.4.1(Oct 14, 2022)

    New Features

    ERNIE-Layout 文档智能大模型

    • 新增多语言跨模态文档预训练模型ERNIE-Layout,新增Benchmark及基于ERNIE-Layout的各类下游任务的微调及部署示例。#3183
    • 新增DocPrompt文档抽取问答模型,支持Taskflow一键调用。#3183

    Pipelines 更新

    • 新增Docker cuda11.2镜像,并提供Docker编译教程。#3315
    • 新增Pipelines批量处理数据。 #3432
    • 新增一些用户反馈的FAQ和README文档的优化。 #3237
    • 新增Milvus 2.1的支持。#3283

    Question Generation

    • 新增问题生成example,覆盖中文场景和英文场景。#3410
    • 新增问题生成taskflow。#3438

    Compression API

    • 压缩 API 支持 ERNIE、ERNIE-M、BERT、TinyBERT、ELECTRA 等 NLU 模型。#3234 #3324
    • DynBERT 宽度自适应裁剪策略支持分布式训练。#3361

    Prompt API

    • 新增 Prompt API 使用文档。#3362

    Bug Fix

    • 修复了小样本文本分类中的失效链接以及在 windows 平台上推理时的数据类型问题。#3339 #3426
    • FAQ Finance 的Milvus升级为2.1版本,文档优化。#3267 #3430
    • 基于检索的文本分类代码简化和README优化。 #3322
    • Neural Search的文档优化。#3350
    • 修复了UIE的Dataloader在加载数据时可能导致内存溢出的问题。#3381
    • 修复DuEE序列标注代码导包错误。https://github.com/PaddlePaddle/PaddleNLP/pull/2853
    • 修复Pillow warning问题。 https://github.com/PaddlePaddle/PaddleNLP/pull/3404 和 https://github.com/PaddlePaddle/PaddleNLP/pull/3457
    • 更新artist模型的激活函数,修复dallebart中的warning,https://github.com/PaddlePaddle/PaddleNLP/pull/3106
    • 修复Ernie tokenizer当中模型名称类型缺失的问题 https://github.com/PaddlePaddle/PaddleNLP/pull/3423
    • 修复Bert单测中CI没检测到的Bug https://github.com/PaddlePaddle/PaddleNLP/pull/3422
    • 修复动转静过程中对OrderedDict数据类型不支持的问题 https://github.com/PaddlePaddle/PaddleNLP/pull/3364
    • 修复 bigru_crf 推理随机hang的问题。 https://github.com/PaddlePaddle/PaddleNLP/pull/3418

    Others

    • 添加Stable Diffusion的Licence https://github.com/PaddlePaddle/PaddleNLP/pull/3210
    • 更新文档中微信群二维码。https://github.com/PaddlePaddle/PaddleNLP/pull/3284
    • Processor和FeatureExtractor支持from_pretrained和save_pretrained https://github.com/PaddlePaddle/PaddleNLP/pull/3453
    • 添加T5EncoderModel的单测 https://github.com/PaddlePaddle/PaddleNLP/pull/3376
    • 添加9个模型的多输入输出和单测代码 https://github.com/PaddlePaddle/PaddleNLP/pull/3305
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Sep 6, 2022)

    New Features

    NLP Pipelines流水线工具

    PaddleNLP Piplines旨在提升NLP模型上线效率,将NLP复杂系统的通用模块抽象封装为标准组件,支持快速组合复杂NLP系统应用

    #3003 #3160 #3135 #3092 #3186

    插拔式组件设计

    • 支持文档存储灵活节点配置,支持Faiss、Milvus高性能向量搜索引擎
    • 支持文档级别前处理节点配置,支持PDF、图片级别文档信息提取

    飞桨SOTA模型快速串联

    • 支持飞桨中文SOTA预训练模型,ERNIE 3.0 系列轻量化快速集成到Pipelines中
    • 支持 RocketQA 语义索引模型,快速提升语义索引、FAQ系统效果

    低门槛一键部署

    • RocketQA DuReader语义提取模型一键调用,通用场景无需进行语义模型训练
    • Docker和Docker-compose两种方式一键部署,减少环境安装成本

    产业范例库升级

    文本分类

    文本分类全流程应用,支持预训练模型、小样本、语义索引方案,通过TrustAI来快速调优模型 #3087 #3184 #3104 #3180 #2956 #3011

    文本分类方案全覆盖

    • 支持多分类、多标签、层次分类算法
    • 支持预训练微调、小样本Prompt tuning微调方式、以及语义索引分类方案
    • 底座模型支持ERNIE 3.0 全系列模型,适配不同的使用场景

    高效模型调优

    • TrustAI模型可解释性工具,快速定位稀疏数据、脏数据问题,进一步提升模型效果
    • 接入数据增强工具,多种数据增强方法,可快速对稀疏数据进行增强

    产业级全流程方案

    • 支持数据标注、模型训练、模型压缩、模型预测部署全流程

    信息抽取

    • 新增多语言模型UIE-M-Base和UIE-M-Large,支持中英文混合抽取及Taskflow一键调用。#3192
    • 新增基于封闭域模型GlobalPointer的UIE数据蒸馏方案,支持Taskflow一键部署。#3136

    语义索引

    • 新增RocketQA的CrossEncoder模型,并支持加载到pipelines中。#3196
    • Neural Search的召回模型换成 基于ERNIE3.0的RocketQA模型,并支持加载到Pipelines中。 #3172

    AIGC内容生成

    CodeGen代码生成

    PaddleNLP 2.4版本发布CodeGen代码生成全系列SOTA模型,可快速一键调用代码生成模型 #2641 #2754 #3017

    效果领先

    • 集成代码生成SOTA模型CodeGen
    • 集成12个CodeGen不同规模的代码生成模型,支持多编程语言代码生成模型

    简单易用

    • 支持通过Github Copilot调用模型,同时支持Taskflow一键调用模型
    • 支持FasterGeneration打造高性能推理,毫秒级响应

    文图生成

    文图生成目前是AIGC一个重要方向,PaddleNLP 2.4发布众多有趣的文图生成模型,可一键调用模型快速趣玩文图生成模型

    #2917 #2968 #2988 #3040 #3072 #3118 #3198

    超多潮流文图生成

    • 支持 DALL-E-mini 、CLIP + Disco Diffusion 、CLIP + Stable Diffusion、ERNIE-ViL +Disco Diffusion等模型

    简单易用

    • 支持Taskflow一键调用图文生成模型
    • 支持FasterGeneration打造高性能推理,打破图文生成性能瓶颈

    文本摘要

    文本摘要是目前NLP场景中高频场景,此次发版新增中文文本应用,支持文本摘要定制化训练 #2971

    • 新增文本摘要Application,支持定制化训练,打通高性能推理部署,支持Taskflow一键调用

    框架升级

    模型自动压缩Compression API

    • 新增 模型压缩 API,支持基于 PaddleSlim 的裁剪和静态离线量化功能,快速加速文本分类、语义匹配、序列标注、阅读理解任务 #2777
    • 模型压缩API可以快速调用模型裁减、模型量化功能,大幅降低模型压缩使用成本

    小样本学习 Prompt API

    • 新增Prompt Learning训练框架,支持PET、P-Tuning、RGL等经典模型的快速实现 #2894
    • 文本分类场景中使用Prompt Learning训练框架快速提升小样本训练效果 #2894

    Transformers 预训练模型

    基础 API

    • BERT、ERNIE、RoBERT 等模型接口新增获取 attention score 和所有中间层输出功能,可以轻松使用满足蒸馏等需求 #2665
    • BERT、ERNIE、RoBERT 等模型接口新增对 past_key_values 输入支持,通过该输入可以进行 prefix-tuning #2801
    • BERT、ERNIE、RoBERT 等模型接口新增输入 label 返回 loss 支持,简化使用方式,无需再拆分label和额外定义损失函数 #3013
    • BERT、ERNIE、RoBERT 等模型接口支持输出支持以 dict 形式返回,可以用更清晰的方式从返回内容中获取需要的输出内容 #2665
    • 系统批量完善预训练模型接口单测,保障功能稳定性

    模型权重

    • 新增XLM模型 https://github.com/PaddlePaddle/PaddleNLP/pull/2080
    • 转换Langboat/mengzi-t5-base-mt权重,并新增Zero Shot使用样例 https://github.com/PaddlePaddle/PaddleNLP/pull/3116
    • 新增Roformer-sim,支持复述生成,可以生成相似句做数据增强 https://github.com/PaddlePaddle/PaddleNLP/pull/3049

    Bug Fix

    • 批量新增模型model_max_input_size配置字段 #3127
    • 修复 FasterGeneration 部分模型Sampling解码出core的问题。#2561
    • 修复 UNIMOText 在不使用加速特性情况下生成出错问题 #2877
    • 修复 FasterGeneration 在基于采样解码策略下性能不稳定的问题 https://github.com/PaddlePaddle/PaddleNLP/pull/2910
    • 修复 BART tokenizer 获取 bos_token_id 出错问题 https://github.com/PaddlePaddle/PaddleNLP/pull/3058
    • 修复 BART tokenizer 无法设置 model_max_length 问题 https://github.com/PaddlePaddle/PaddleNLP/pull/3018
    • 修复 Taskflow的文本相似度在Windows上dtype引起的预测失败问题 https://github.com/PaddlePaddle/PaddleNLP/pull/3188

    Others

    • 支持FasterGPT的word_embeddings 和 lm_head.decoder_weight的权重不共享 #2953
    • 重构RoFormer,新增RoFormerForCausalLM类,支持roformer-sim相似句生成 #3049
    • 更新ERNIE模型,当type_vocab_size=0时,表示不使用token_type_id #3075
    • 新增ERNIE-Tiny模型的benchmark #3100
    • 更新BERT预训练时混合精度的配置,AMP level改为O2 #3080
    • FasterBART支持动转静和高性能推理。https://github.com/PaddlePaddle/PaddleNLP/pull/2519
    • FasterGeneration 预测库联编支持 ONNX 依赖引入 #3158
    • Generation API 支持 logits_processorget_decoder_start_token_id() #3018
    • BART 模型支持 get_input_embeddings()set_input_embeddings() 方法获取 embeddings #3133
    • GPT 模型支持 get_vocab()、 0/1 attention mask、add bos token 等新增接口功能 #2463

    New Contributors

    New Contributors

    • @Spico197 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2170
    • @sandyhouse made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2190
    • @qingqing01 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2188
    • @RicardoL1u made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2299
    • @Intsigstephon made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2285
    • @sljlp made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2398
    • @zche4846 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/1845
    • @tianberg made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2461
    • @lidanqing-intel made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2468
    • @fightfat made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2499
    • @LiYuRio made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2504
    • @FeixLiu made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2523
    • @ArtificialZeng made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2537
    • @freeliuzc made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2543
    • @taixiurong made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2556
    • @westfish made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2423
    • @sneaxiy made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2660
    • @lastrei made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2671
    • @WenmuZhou made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2695
    • @littletomatodonkey made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2732
    • @piotrekobi made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2730
    • @Liujie0926 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2829
    • @buchongyu2 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2817
    • @GuoxiaWang made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2846
    • @zhiyongLiu1114 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2875
    • @veyron95 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2879
    • @BasicCoder made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2977
    • @dongfangshenzhu made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/3046
    • @Haibarayu made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2694

    Full Changelog: https://github.com/PaddlePaddle/PaddleNLP/compare/v2.3.0...v2.4.0

    Source code(tar.gz)
    Source code(zip)
  • v2.3.7(Aug 24, 2022)

    New Features

    • 新增基于ERNIE 3.0的RocketQA召回模型,包含rocketqa-zh-base(12-layer, 768-hidden)、rocketqa-zh-medium(6-layer, 768-hidden)、rocketqa-zh-mini(6-layer, 384-hidden),rocketqa-zh-micro(4-layer, 384-hidden)和rocketqa-zh-nano(4-layer, 312-hidden)5个语义检索召回模型,在Dureader Retrieval数据集上达到中文最佳效果。 #3033
    • 新增基于ERNIE 3.0的RocketQA排序模型。 包含rocketqa-base(12-layer, 768-hidden)、 rocketqa-medium(6-layer, 768-hidden)、rocketqa-mini(6-layer, 384-hidden)、rocketqa-micro(4-layer, 384-hidden)和rocketqa-nano(4-layer, 312-hidden)5个语义检索排序模型,在Dureader Retrieval数据集上达到中文最佳效果。 #3019
    • 新增VI-LayoutXLM文档多模态模型,推理速度与精度超越LayoutXLM。#2935
    • NLP流水线系统Pipelines新增RocketQA轻量化模型,端到端响应速度显著提升。 #3078

    Unit Test

    • 新增Ernie-Gram模型单测 https://github.com/PaddlePaddle/PaddleNLP/pull/3059
    • 新增TinyBert模型单测 https://github.com/PaddlePaddle/PaddleNLP/pull/2992
    • 新增Roformer模型单测 https://github.com/PaddlePaddle/PaddleNLP/pull/2991
    • 新增ERNIE-M模型单测 https://github.com/PaddlePaddle/PaddleNLP/pull/2964
    • 新增Skep模型单测 https://github.com/PaddlePaddle/PaddleNLP/pull/2941
    • 新增Electra和XLNet模型单测 https://github.com/PaddlePaddle/PaddleNLP/pull/3031
    • 新增RoBERTa、ALBERT 和 ERNIE模型的单测 https://github.com/PaddlePaddle/PaddleNLP/pull/2972

    Bug Fix

    • 修复BART tokenizer获取 bos_token_id 出错问题 #3058
    • 修复BART tokenizer无法设置 model_max_length 问题 #3018
    • 修复Pipelines的随机问题生成按钮报错问题和搜索问题回退到上一个搜索结果的问题。 #2954
    • 修复Pipelines在Python3.7上利用FAISS抽向量引起的问题。 #2965
    • 修复Tokenizer resize-token-embeddings 错误 #2763
    • 修复OPT示例代码 #3064
    • pointer_summarizer支持xpu和多卡 #2963 #3004

    New Contributors

    • @veyron95 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2879
    • @BasicCoder made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2977
    • @dongfangshenzhu made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/3046
    • @Haibarayu made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2694

    Full Changelog: https://github.com/PaddlePaddle/PaddleNLP/compare/v2.3.5...v2.3.7

    Source code(tar.gz)
    Source code(zip)
  • v2.3.5(Aug 1, 2022)

    New Features

    代码生成

    • CodeGen支持Taskflow一键调用。 #2754
    • 增加CodeGen使用文档。#2791

    UIE

    • 新增UIE英文版本,支持Taskflow一键调用。 #2855

    Neural Search

    • 新增排序模型的C++和pipeline的部署。 #2721
    • 新增in-batch negatives边训练边评估的功能。 #2663

    小样本学习

    • 新增小样本模型RGL的实现。#2651

    文本分类

    • 新增多分类、多标签application。#2661 #2675
    • 数据增强策略 #2805

    文本匹配

    • 新增无监督语义向量模型DiffCSE。 #2643

    Bug Fix

    • 修复pipelines未传入max_seq_len的问题。#2736
    • 修复pipelines的faiss-cpu依赖,新增乱码处理的FAQ。 #2709
    • 修复neural search的预测时dropout引起的结果不一致的错误,新增对ANN索引的FAQ。#2710
    • 修复ERNIE tokenizer的 get_offset_mapping 错误。#2857 #2897
    • 修复 model 中间 output 输出导致的 UNIMOText 原生生成失败问题。 #2877

    其他

    New Contributors

    • @lastrei Add pet static model export script and inference code #2875
    • @zhiyongLiu1114 Add the get_speical_token_mask for the ernie tokenizer #2671 #2690

    Full Changelog: https://github.com/PaddlePaddle/PaddleNLP/compare/v2.3.4...v2.3.5

    Source code(tar.gz)
    Source code(zip)
  • v2.3.4(Jun 28, 2022)

    New Features

    Taskflow

    • 新增三个UIE小模型:UIE-Mini(6-layer, 384-hidden)、UIE-Micro(4-layer, 384-hidden)、UIE-Nano(4-layer, 312-hidden)。#2604
    • 新增基于中文词类知识的信息抽取工具WordTag-IE。 #2540

    更多预训练模型

    • 开源 ERNIE Tiny 预训练模型,效果、精度领先于HFL、UER、Huawei-Noah 同等规模下开源中文模型。
    • 新增CodeGen代码生成模型。#2641

    基础体验优化

    • Trainer 支持 constant、cosine、linear三种学习率调度策略。 #2511
    • FasterBART支持动转静和推理。#2519
    • FasterGeneration 支持使用带有 onnx 的预测库的编译。#2463

    CLUE Benchmark

    • 支持 CLUE 10 个任务的训练、评估、预测,支持用户产出预测结果提交至 CLUE 榜单,并提供 Grid Search 工具供用户一键训练,最终获取最优评估结果。

    文本分类

    • 新增多标签层次分类。 #2501
    • ERNIE-DOC模型在分类任务上添加预测部署流程。#1845

    生态模型

    • 新增XLM模型。#2080

    Bug Fix

    • 修复UIE同类别嵌套的评估问题。 #2558
    • 修复UIE prompt为英文时,prompt与文本的offset重叠的问题。#2453
    • 修复BERT Tokenizer调用get_offset_mapping出错的问题。 #2508
    • 修复FasterGeneration部分模型Sampling解码出core的问题。#2561
    • 修复PretrainedTokenizer和PretrainedModel 中from_pretrained中的潜在问题。 #2521 #2578 #2424
    • 修复LukeTokenizer当中的字段缺失导致保存时报错的问题。 #2631
    • 修复ChineseBertTokenizer由于Tokenizer机制更新导致expect parameter的问题。 #2625
    • 修复 PretrainedTokenizer special token 设置被覆盖及遗漏的问题 #2534 #2629
    • 修复 albert pad token id 缺失问题 #2495
    • 修复 ERNIE-1.0 预训练使用amp 02时,加载checkpoint错误问题 #2479
    • 移除RandomGenerator的is_init_py属性 #2658

    其他

    • BERT 支持 fused_ffn、fused_attention进行fuse #2523

    Full Changelog: https://github.com/PaddlePaddle/PaddleNLP/compare/v2.3.3...v2.3.4

    Source code(tar.gz)
    Source code(zip)
  • v2.3.3(Jun 7, 2022)

    Bug Fix

    • 修复 AutoModel 模型选择 bug 导致从本地目录加载 ernie-1.0 等模型失败的问题 #2426
    • 修复 tokenizer 从本地目录加载时由于文件检查 bug 导致失败的问题 #2424
    • 修复 Taskflow 依存分析输出的类型问题 #2422
    • 修复 UIE 中 doccano 标注数据转换脚本的 split 检查问题;并完善 Task 使用 ONNX 预测的报错方式 #2417
    • 修复代码中的 data 拼写问题 #2410
    • 修复 PaddleNLP/README 中的 UIE 链接 #2419

    Full Changelog: https://github.com/PaddlePaddle/PaddleNLP/compare/v2.3.2...v2.3.3

    Source code(tar.gz)
    Source code(zip)
  • v2.3.2(Jun 2, 2022)

    New Features

    更快的推理部署

    • UIE 推理加速:支持 UIE 模型 CPU、GPU 设备上高性能推理能力,显著提升 UIE 推理速度。
    • ERNIE 3.0 模型支持 Triton Inference Server服务化部署。

    更多预训练模型

    基础体验优化

    • ERNIE-M 模型支持多项选择式阅读理解任务。
    • 新增支持 XLNet 模型动转静能力。
    • BART Tokenizer 兼容性优化。

    生态模型

    • 新增 GAU-alpha 生态模型。

    Bug Fix

    • 修复 ElectraTokenizer 缺失 do_lower_case 属性问题。#2263
    • 修复 CLUE Benchmark 评估 CHID 任务日志 Bug。#2298
    • 修复语义检索 Application、FAQ System 在 Windows 系统数据类型报错问题。#2381
    • 修复基于 AutoTokenizer 加载 ERNIE 模型报错问题。#2315
    • 修复 load_dataset 函数报 dict_keys 错误问题。#2364
    • 修复文本生成 example Windows 平台数据类型报错问题。#2351
    • 修复 ERNIE 3.0 ONNX Runtime 推理 Bug。#2386
    • 修复 DDParser 针对 1-D Array 的 Padding 问题。#2333

    New Contributors

    • @RicardoL1u made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2299
    • @Intsigstephon made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2285
    • @sljlp made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2398

    Full Changelog: https://github.com/PaddlePaddle/PaddleNLP/compare/v2.3.1...v2.3.2

    Source code(tar.gz)
    Source code(zip)
  • v2.3.1(May 19, 2022)

    Improvements

    • GPT-3支持静态图混合并行情况下的生成推理。 https://github.com/PaddlePaddle/PaddleNLP/pull/2188 https://github.com/PaddlePaddle/PaddleNLP/pull/2245

    BugFix

    • 新增基于 FAISS ANN 引擎一键运行语义检索系统示例。https://github.com/PaddlePaddle/PaddleNLP/pull/2180
    • 修复 PaddleNLP 智能文本产线示例 CPU 运行报错问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2201
    • 修复 GPT 编译报错问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2191
    • 修复 GPT 预训练数据流未传入 max_seq_len 参数问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2192
    • 修复 GPT-3 静态图混合并行,预训练报错问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2190 https://github.com/PaddlePaddle/PaddleNLP/pull/2223 https://github.com/PaddlePaddle/PaddleNLP/pull/2195
    • 修复 tokenizer 非兼容升级导致 NPTag 解码错误问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2199
    • 修复Taskflow UIE Schema 重复构建的问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2170
    • 兼容 NER 标注任务 doccano 多种导出格式的数据转换。https://github.com/PaddlePaddle/PaddleNLP/pull/2187
    • 修复 NPTag 解码问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2233
    • 修复 DuUIE max_seq_len 报错问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2207
    • 修复 Windows 系统默认编码非 UTF8 时的编码报错问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2209
    • 修复 AlbertForQuestionAnswering import 报错问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2216
    • 修复 CLUE Benchmark 预测结果格式问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2215
    • 修复死链问题。https://github.com/PaddlePaddle/PaddleNLP/pull/2231 https://github.com/PaddlePaddle/PaddleNLP/pull/2230 https://github.com/PaddlePaddle/PaddleNLP/pull/2235 https://github.com/PaddlePaddle/PaddleNLP/pull/2240 https://github.com/PaddlePaddle/PaddleNLP/pull/2241

    New Contributors

    • @Spico197 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2170
    • @sandyhouse made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2190
    • @lugimzzz made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2196
    • @qingqing01 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2188

    Full Changelog: https://github.com/PaddlePaddle/PaddleNLP/compare/v2.3.0...v2.3.1

    Source code(tar.gz)
    Source code(zip)
  • v2.3.0(May 16, 2022)

    New Features

    通用信息抽取技术 UIE

    • 新增基于统一结构生成的通用开放域信息抽取框架 UIE (Universal Information Extraction),单个模型可以支持命名实体识别、关系抽取、事件抽取、情感分析等任务,同时在模型规模上支持base和tiny两种结构,满足多种业务场景需求,均支持Taskflow一键预测。
    • 新增医疗领域信息抽取模型 UIE-Medical,支持医疗专名识别和医疗关系抽取两大任务,并支持小样本学习,预测精度业界领先。

    文心NLP大模型升级

    • 新增文心大模型ERNIE 3.0轻量级版本,包含ERNIE 3.0-Base(12层)和 ERNIE 3.0-Medium(6层)两个中文模型,在CLUE Benchmark上实现同规模模型中文最佳效果。
    • 新增中文医疗领域预训练模型 ERNIE-Health,支持医学文本信息抽取(实体识别、关系抽取)、医学术语归一化、医学文本分类、医学句子关系判定和医学问答共5大类任务,并提供 CBLUE benchmark 使用实例。
    • 新增PLATO-XL(11B),全球首个百亿参数对话预训练生成模型,提供FasterGeneration高性能GPU加速,相比上版本推理速度加速2.7倍,更多使用说明请查阅PLATO-XL with FasterGeneration

    FasterGeneration 高性能生成加速

    FasterGeneration本次发版进行了以下的升级,更多使用说明请查阅FasterGeneration文档

    速度更快

    • 更细致的融合加速:UnifiedTransformer、UNIMOText 模型Context计算加入加速支持,速度相比上个版本提升20%~110%
    • 更丰富的模型支持:扩展了 size_per_head 支持范围,支持了 CPM-Large(2.6B)和PLATO-XL(11B)等大模型生成加速
    • 更快的大模型推理:支持Tensor并行和Pipeline并行推理,CPM-Large 上 4卡 Tensor 并行速度较单卡高性能生成提升40%,PLATO-XL在4卡加速比为单卡的2倍

    显存更少

    • 优化模型加载转换显存占用,支持直接使用 FP16 模型并允许去除原始未融合的QKV权重参数

    部署更易

    • 新增参数支持直接使用 Encoder 加速能力,打通 Encoder 加速与 Decoding 加速
    • 支持UnifiedTransformer、UNIMOText 等更多加速版本模型导出静态图并在Paddle Inference实现高性能部署

    更多产业范例与应用场景

    • 新增汽车说明书智能问答应用范例,基于百度领先的开放域问答技术RocketQA和多模态多语言预训练模型LayoutXLM提供了多模态文档问答的应用范例和最佳实践。
    • 新增智能语音指令解析应用范例,可广泛应用于智能语音填单、智能语音交互、智能语音检索、手机APP语音唤醒等场景,提高人机交互效率。
    • 新增端到端智能问答系统应用范例,提供低成本快速搭建可视化智能问答系统能力。
    • 新增端到端语义检索系统应用范例,提供低成本快速搭建语义检索系统能力。
    • 新增 NLP 模型可解释性应用示例 #1752 ,感谢 @binlinquge 的贡献
    • 新增 CLUE Benchmark 评测脚本,更全面的了解PaddleNLP中文预训练模型的效果,帮助开发者便捷完成中文模型选型
    • BERT 静态图训练增加 Graphcore IPU 支持 #1793 更多详情请查阅BERT IPU,感谢 @gglin001 的贡献

    更多的预训练模型

    • 新增 300+ 重要模型权重,涵盖 BERTGPTT5 等模型结构,目前PaddleNLP精选预训练模型数达500+
    • 新增 FNet 模型 #1499,感谢 @HJHGJGHHG 的贡献
    • 新增 ProphetNet 模型 #1698,感谢 @d294270681 的贡献
    • 新增 Megatron-LM 模型 #1678,感谢 @Beacontownfc 的贡献
    • 新增 LUKE 模型 #1677,感谢 @Beacontownfc 的贡献
    • 新增 RemBERT 模型 #1701 ,感谢 @Beacontownfc 的贡献

    Trainer API

    • 新增 Trainer API,简化了模型训练代码,并规范了统一的训练配置,支持VisualDL训练日志可视化,提升实验的可复现性https://github.com/PaddlePaddle/PaddleNLP/pull/1761 。Trainer API 快速上手请参考教程

    Data API

    • 兼容 HuggingFace Datasets,可以直接使用其 load_dataset 返回的数据集(建议在先import paddlenlp后再import datasets)
    • 新增 DataCollatorWithPaddingDataCollatorForTokenClassification 等常用任务的 Data Collator,简化数据处理流程
    • Tokenizer 功能新增与调整:
      • 支持自定义 special token 的保存和加载
      • 提供更丰富的 Padding 方式,包括定长 Pad、Longest Pad 以及 Pad 到特定倍数
      • 支持获取最长单句输入长度和句对输入长度
      • 支持返回 Paddle Tensor 数据
      • IMPORTANT NOTE 在输入为 batch 数据时,默认输出格式由 list of dict 调整为 dict of list (dict 为BatchEncoding类的对象),可通过 return_dict 设置
      • IMPORTANT NOTE save_pretrained 保存内容格式有调整(保证了兼容性,此前保存内容仍能正常使用)

    BugFix

    • 修复Taskflow NPTag 解码问题 #2023
    • 修复语义检索 Application 召回模型训练 output_emb_size = 0 时报错问题 #2090

    Breaking Changes

    • 调用 Tokenizer 在输入为 batch 数据时,默认输出格式由 list of dict 调整为 dict of list (dict 为BatchEncoding类的对象),可通过 return_dict 设置

    New Contributors

    • @mmglove made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/1974
    • @luyaojie made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2012
    • @wjj19950828 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2061
    • @kev123456 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2070
    • @heliqi made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2073
    • @yeliang2258 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/2077

    Full Changelog: https://github.com/PaddlePaddle/PaddleNLP/compare/v2.2.6...v2.3.0

    Source code(tar.gz)
    Source code(zip)
  • v2.2.6(Apr 15, 2022)

    问题修复

    • 优化了AutoModel & AutoTokenizer模块的报错信息 #1902
    • 修复了ErnieDoc模型分类任务默认类别缺失的问题 #1867
    • 修复了Roberta tokenizer加载本地资源报错的问题 #1821
    • 修复了bstc数据集文件缺失的问题
    • 优化了xnli数据集的报错信息 #1838
    • 修复了FewCLUE数据集中unlabeled.json文件为空的问题 #1881
    • 修复了load_dataset读取CLUE tnews数据集所有splits时报错的问题 #1941
    • 修复中文阅读理解指标计算偏低的问题 #1874
    • 修复textcnn静态图预测报错的问题 #1839
    • 修复了文本分类使用预训练模型进行分布式训练时报错的问题 #1839
    Source code(tar.gz)
    Source code(zip)
  • v2.2.5(Mar 21, 2022)

    新功能

    Taskflow

    • 分词和NER多级模式 #1666
    • AutoSplitter/AutoJoiner功能支持无限长文本自动切分 #1666

    问题修复

    • 修复ERNIE-Doc文本分类任务数据集读取错误 #1687
    • 修复原生生成式 API 传入 tensor 为 None 时不能正确执行的问题 #1656
    • 修复 Roberta 模型不支持2维 attention mask #1676
    • 修复 ConvBert 模型不支持动转静 #1643
    • 修复 ERNIE-M 训练hang住的问题 #1681

    文档更新

    • FasterTransformer 文档新增编译报错 FAQ #1750
    • 修复 T5 模型 example 文档 #1652
    • 更新生态贡献权重文档 #1749
    Source code(tar.gz)
    Source code(zip)
  • v2.2.4(Jan 26, 2022)

    我们很高兴的发布 PaddleNLP 2.2.4 版本,主要是对 2.2.3 中一些功能的修复,并对部分功能点和文档做了增强,重点如下:

    新功能

    • 新增西班牙语和荷兰语实体识别数据集 CoNLL-2012。 #1561

    功能优化

    • 小模型 PP-MiniLM 接入 FasterTokenizer,量化、裁剪后的模型推理速度达到 BERTbase 的 8.8 倍。#1542
    • Transformer 动态图支持 O2 级别 AMP 训练@zhangbo9674。#1574
    • 语义索引应用增加Paddle Serving支持。 #1558

    问题修复

    • 修复 ERNIE-Doc 模型 NLTK 包模型下载的错误。#1515
    • 修复多个 Transformer 模型在 FP16 精度下 attention_mask 计算溢出的错误。#1585
    • 修复 LAC 模型 TRT 预测配置错误。 #1606
    • 修复 BART 文本摘要示例的评估错误。#1560
    • 修复 BART 文本摘要示例在 Windows 环境下报错。 #1588
    • 修复 Tokenizer.__call__() 方法truncation_strategy不生效的bug。 #1615
    • 修复 RobertaTokenizer 不能获取special token的bug。 #1618
    • 修复BART和mBART不支持2维attention mask。#1637
    • 修复CNN/DailyMail 和 XNLI 数据集多卡下载报错。#1587

    文档更新

    • 为 ERNIE-1.0 训练任务添加了 CLUECorpusSmall 数据集训练教程。https://github.com/PaddlePaddle/PaddleNLP/pull/1555

    社区贡献

    • 新增 FNet @HJHGJGHHG。#1499
    • 修复 Read the Docs 文档 Dataset API 页面格式错误的问题@GT-ZhangAcer。#1570
    Source code(tar.gz)
    Source code(zip)
  • v2.2.2(Dec 28, 2021)

    New Features

    新增产业应用案例

    新增评论观点抽取的应用案例 #1505

    • 提供评论观点抽取和属性级情感分类能力,并支持全流程情感分析推理能力
    • 提供基于 PP-MiniLM 小模型推理加速解决方案,推理性能提升 900%

    新增端到端语义检索引擎应用案例 #1507

    • 支持监督语义索引模型 In-Batch Negatives 基于 Paddle Inference 计算文本对相似度的推理能力
    • 支持无监督语义索引模型 SimCSE 基于 Paddle Inference 计算文本对相似度的推理能力

    FasterGeneration

    • 优化 JIT 载入自定义 op 逻辑以优化 enable_faster_encoder() need_build 参数以及 pipeline 方式使用多个加速模型时框架冗余的 Warning,提升使用体验 #1495

    New Models

    • 新增长文本语言模型 Funnel Transformer,新增基于Funnel Transformer的SQUAD问答任务示例 #1419

    Bugfix

    • 修复了GPT-3静态图,训练参数选项错误问题 #1500
    • 修复了LayoutXLM模型在windows环境下的报错 #1489
    • 优化静态图参数转化成动态图参数脚本,支持paddlenlp中动静统一的模型结构 #1478
    Source code(tar.gz)
    Source code(zip)
  • v2.2.1(Dec 17, 2021)

    New Features

    中文特色小模型 PP-MiniLM 发布 #1403

    • 推理速度快,推理速度是BERT-base(12L768H) 4.2倍
    • 模型参数少,模型参数量相对BERT-base(12L768H) 减少52%
    • 模型精度高,在中文语言理解评测基准 CLUE 7 个分类数据集上精度比 BERT-base(12L768H) 高 0.32

    产业级语义检索框架发布 #1463

    • 一站式提供高可用的训练&预测语义检索框架,同时集成高性能 ANN 引擎 Milvus
    • 召回模型方案覆盖有监督、无监督多种数据场景,支持只基于无监督数训练语义索引模型

    Taskflow

    • Taskflow 新增中文对话PLATO-mini任务,支持多轮对话记忆功能 #1383

    FasterGeneration

    • 生成解码框架新增注意力机制QKV融合,解码性能最高提升 8% #1455

    Bugfix

    • 修复使用Paddle2.2及其以下版本兼容性问题 #1450
    • 修复MSRA_NER示例中 max_steps 选项,不生效的问题 #1451
    • 修复ERNIE-1.0模型预训练部分参数,增强预训练稳定性 #1344
    • 修复EFL及ernie-matching在windows下的静态图预测问题 #1480
    • 修复Taskflow文本相似度计算任务windows兼容性问题 #1465
    • 修复LayoutXLM模型加载时无法找到yaml文件的问题 #1454
    • 修复SqueezeBert模型vocab等资源路径的缺失和typo #1454
    • 修复FasterGeneration下diversity rate的结果错误的问题 #1477
    • 修复FasterGeneration下GPT模型的repetition_penalty被屏蔽的问题 #1471
    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(Dec 10, 2021)

    New features

    预训练加速训推一体加速开发FasterERNIE

    • 新增支持高性能文本预处理算子FasterTokenizer,提供更快的文本预处理 #1220
    • 融合Fused TransformerEncoder API,极致优化Transformer性能 #1308
    • 新增to_static()接口,支持文本处理与模型计算整图导出,提供更易用的模型导出
    • 优化C++部署体验,显著降低C++开发成本
    • 提供文本分类、序列标注使用示例

    面向生成任务的高性能加速组件FasterGeneration

    • FasterTransformer升级至V4.0版本
    • Transformer 加速版本在 sampling 以及 3 种 beam search 策略下新增 force decoding 策略支持
    • 生成API新增Diverse Beam Search策略

    Taskflow升级

    • 新增名词短语标注及文本相似度计算任务 #1246 #1345
    • 句法分析任务增加已分词方式解析句法树能力 #1351
    • 中文分词、词性标注、命名实体识别任务支持用户自定义词典干预策略 #364 #1420
    • 知识挖掘任务支持自定义模型、自定义Term-Linking等进阶使用方式 #1329
    • 解语套件词类知识标注工具WordTag支持增量数据训练 #1329
    • 解语套件百科知识树TermTree使用体验完善,支持定制化使用 #1329

    更多预训练模型

    • 新增表单多模态模型LayoutLM、LayoutLMv2、LayoutXLM模型
    • 新增基于unimo-text-1.0-lcsts-new中文摘要预训练模型
    • 新增mBART和mBART50模型,用于多语言翻译
    • 解语套件新增NPTag模型,可直接用于名词短语标注,标签类别2000+ #1246
    • 新增GPTModel预训练权重 gpt2-en、gpt2-large-en、gpt2-xl-en,可用于英文文本生成 #1302
    • 新增Mengzi中文预训练模型

    自动模型与分词器加载

    • 新增AutoModel和AutoTokenizer模块,可更便捷加载不同网络结构预训练模型与分词器

    社区贡献

    • 新增BertJapaneseTokenizer & 新增BertJapanese模型预训练权重 by @iverxin in #1115
    • 新增BlenderbotSmall & Blenderbot模型 #868 ,感谢 @kevinng77 的贡献
    • 新增SqueezeBERT模型 #937 ,感谢 @renmada 的贡献
    • 新增CTRL模型 #921 ,感谢 @JunnYu 的贡献
    • 新增T5模型 #916 ,感谢 @JunnYu 的贡献
    • 新增Reformer模型 #870 ,感谢 @JunnYu 的贡献
    • 新增MobileBert模型 #1160 ,感谢 @nosaydomore 的贡献
    • 新增ChineseBert模型 #1100 ,感谢 @27182812 的贡献
    • 新增End-to-End Memory Network模型 #1046,感谢 @yulangz 的贡献
    • 完善Bert模型下游任务代码 & 新增Bert预训练权重 by @JunnYu in #1085
    • 完善BigBird模型下游任务代码 by @iverxin in #1114
    • 完善Electra模型下游任务代码 & 新增Electra预训练权重 by @JunnYu in #1086
    • 完善Roberta模型下游任务代码 & 新增Roberta预训练权重 by @nosaydomore in #1133
    • 完善GPT模型下游任务代码 & 新增GPT预训练权重 by @JunnYu in #1088
    • 完善XLNet模型下游任务代码 & 新增DistilBert预训练权重by @renmada in

    Misc

    • 新增文本分类数据集XNLI #1336
    • GPT-3模型预训练,支持静态图Pure FP16训练 #1353
    • 命名实体识别,增加了peoples_daily_ner数据集支持,同时支持使用ERNIE模型 #1361
    • 优化ViterbiDecoder解码性能,在GPU设备上可提升10倍 #1291

    Bugfix

    • 修复下载进度条单位不正确的问题
    • 修复GPT模型导出后,预测报错问题 #1303
    • 修复文本纠错模型指标统计Bug #1255 #1265 #1273
    • 修复generate API接口的get_logits_processor参数缺失 @JunnYu in #1399
    • 修复BERT模型对2D attention mask的支持 @JunnYu in #1226
    Source code(tar.gz)
    Source code(zip)
  • v2.1.1(Oct 20, 2021)

    New Features

    GPT-3动态图模式增加pure fp16支持。 Taskflow情感分析任务增加预测score输出。 Generation API新增Diverse Sibling Search策略。 Generation API新增Repetition Penalty策略。@JunnYu

    Bug Fix

    修复 FasterUNIMOText 在 top_p 为 1.0 时不能调用加速的问题。

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Oct 11, 2021)

    New Features

    • 新增开箱即用的工业级NLP能力Taskflow,预置中文分词、词性标注、专名识别、句法分析、情感分析、文本纠错等8个任务,更多使用说明请参考Taskflow文档
    • 新增基于Promot Tuning的NLP小样本学习应用实例,配合R-Drop策略显著提升效果,更多技术细节请参考FewCLUE
    • 集成FasterTransformer加速能力,显著提升翻译、对话等文本生成任务的推理速度。支持Transformer/GPT/BART等主流生成结构与Beam Search与Sampling-based解码策略,更多使用说明请参考FasterTransformer使用文档

    New Examples

    New Pretrained Models

    • 新增RoFormer模型 #804 ,感谢 @JunnYu 的贡献🎉。
    • 新增ConvBert模型 #819,感谢 @JunnYu 的贡献🎉。
    • 新增MPNet模型 #869,感谢 @JunnYu 的贡献🎉。

    New Dataset

    • 新增文本摘要数据集CNN/DailyMail #1061。

    Bug Fix

    • 修复维特比解码在长度为1的输入下预测不准确的问题 #1126 。
    • 修复词法分析模型的计算精度问题 #962 。
    • 修复Tokenizer计算offset mapping时对特殊字符处理的问题 #882,感谢 @JunnYu 的贡献🎉。
    • 修复Windows环境下出现的int类型变量错误 #856 #1023 #1146。

    Docs

    • 优化Transformer API Reference文档,更加清晰准确易懂。感谢 @huhuiwen99 的贡献🎉。

    New Contributors

    • @huhuiwen99 made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/914 🎉
    • @iamqiz made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/950 🎉
    • @ForFishes made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/986 🎉
    • @AI-Mart made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/1009 🎉
    • @zhaoyinglia made their first contribution in https://github.com/PaddlePaddle/PaddleNLP/pull/1064 🎉
    Source code(tar.gz)
    Source code(zip)
  • v2.0.8(Aug 22, 2021)

    New Pretrained-Models

    新增文本生成UNIMO-text模型和tokenizer,包括unimo-text-1.0和unimo-text-1.0-large。 新增长文本预训练模型ERNIE-Doc。

    New Dataset

    新增问题生成数据集DuReaderQG。 新增文案生成数据集AdvertiseGen。 新增短摘要生成数据集LCSTS_new。 新增长文本语义匹配数据集CAIL2019-SCM。 新增长阅读理解数据集C3。 新增文本分类数据集HYP、THUCNews。

    New Feature

    新增Layerwise-decay优化器。 新增 R-Drop loss API.

    BugFix

    修复生成API中min_out_len参数不起作用的bug和一些文档问题。 修复tokenizer计算offset mapping时会把原本有意义的#删除的问题。 @JunnYu

    New Examples

    新增【千言:面向事实一致性的生成评测比赛】baseline。 新增【千言-问题匹配鲁棒性评测】baseline.。

    Source code(tar.gz)
    Source code(zip)
  • v2.0.7(Aug 2, 2021)

    功能更新

    1. 新增PET策略的Few-Shot Learning基线;
    2. 新增BART模型;
    3. 新增C3, TriviaQa, CAIL2019-SCM数据集;
    4. FasterTransformer能力增强 4.1 Unified Transformer新增Beam Search和Sampling解码策略; 4.2 Top-k Sampling解码策略支持任意k;

    Bug Fix

    1. 简化依赖,提升安装速度;
    2. 修复TaskFlow API的多线程使用问题;
    Source code(tar.gz)
    Source code(zip)
  • v2.0.6(Jul 20, 2021)

    功能更新

    1. 新增TaskFlow一键预测API,支持情感分析、知识关联(text2knowledge)任务;
    2. 文本匹配任务新增SimBERT模型;
    3. 情感分析模块中新增情绪分析任务;
    4. 新增长文本分类hyp thunews数据集;

    Bug Fix

    1. 修复GPT任务中ClipGradByGlobalNorm 和 Megatron不一致的Bug;
    2. 修复Unified Transformer在Windows上的数据类型;
    3. 修复CRF batch_size=1的训练出错问题;
    Source code(tar.gz)
    Source code(zip)
  • v2.0.5(Jun 29, 2021)

    Bug fix

    • 修复了预训练模型vocab无法保存的问题。

    更多的预训练模型

    • 新增macbert-base-chinesemacbert-large-chinese预训练模型,与其他BERT模型的加载方式一致。
    Source code(tar.gz)
    Source code(zip)
  • v2.0.4(Jun 29, 2021)

    Bug fix

    • 修复了ERNIE-GRAM的vocab中,idx_to_tokentoken_to_idx不对应的问题。感谢@BFJL的贡献!🎉 🎉 🎉

    更多的数据集

    • 新增SE-ABSA16_CAME中文情感分类数据集,感谢 @jiaqianjing 的高质量贡献! 🎉 🎉 🎉
    • 新增COTE-BD & COTE-MFW中文语义角色识别数据集,感谢 @jiaqianjing 的高质量贡献! 🎉 🎉 🎉

    Finetuned model

    • 新增ernie-2.0-en-finetuned-squad模型,由ernie-2.0-ensquad1.0数据集上finetune得到。
    Source code(tar.gz)
    Source code(zip)
  • v2.0.3(Jun 17, 2021)

    API功能优化

    • 升级了load_dataset()方法,现在同时传入splitsdata_files参数时将由splits参数来指定读取本地数据集的格式。行为更加符合直觉。
    • 生成式APIgenerate()现在支持GPT预训练模型了!

    更多的数据集

    • 新增BQCorpus中文文本相似度数据集,感谢 @frozenfish123 的高质量贡献! 🎉 🎉 🎉
    • 新增PAWS-X中文文本相似度数据集,感谢 @jiaqianjing 的高质量贡献! 🎉 🎉 🎉
    • 新增NLPCC14-SC中文情感分类数据集,感谢 @fiyen 的高质量贡献! 🎉 🎉 🎉
    Source code(tar.gz)
    Source code(zip)
Owner
null
Grading tools for Advanced NLP (11-711)Grading tools for Advanced NLP (11-711)

Grading tools for Advanced NLP (11-711) Installation You'll need docker and unzip to use this repo. For docker, visit the official guide to get starte

Hao Zhu 2 Sep 27, 2022
Explore different way to mix speech model(wav2vec2, hubert) and nlp model(BART,T5,GPT) together

SpeechMix Explore different way to mix speech model(wav2vec2, hubert) and nlp model(BART,T5,GPT) together. Introduction For the same input: from datas

Eric Lam 31 Nov 7, 2022
Yuqing Xie 2 Feb 17, 2022
Use PaddlePaddle to reproduce the paper:mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer

MT5_paddle Use PaddlePaddle to reproduce the paper:mT5: A Massively Multilingual Pre-trained Text-to-Text Transformer English | 简体中文 mT5: A Massively

null 2 Oct 17, 2021
Super easy library for BERT based NLP models

Fast-Bert New - Learning Rate Finder for Text Classification Training (borrowed with thanks from https://github.com/davidtvs/pytorch-lr-finder) Suppor

Utterworks 1.8k Dec 27, 2022
Super easy library for BERT based NLP models

Fast-Bert New - Learning Rate Finder for Text Classification Training (borrowed with thanks from https://github.com/davidtvs/pytorch-lr-finder) Suppor

Utterworks 1.5k Feb 18, 2021
Pytorch NLP library based on FastAI

Quick NLP Quick NLP is a deep learning nlp library inspired by the fast.ai library It follows the same api as fastai and extends it allowing for quick

Agis pof 283 Nov 21, 2022
Princeton NLP's pre-training library based on fairseq with DeepSpeed kernel integration 🚃

This repository provides a library for efficient training of masked language models (MLM), built with fairseq. We fork fairseq to give researchers mor

Princeton Natural Language Processing 92 Dec 27, 2022
Learn meanings behind words is a key element in NLP. This project concentrates on the disambiguation of preposition senses. Therefore, we train a bert-transformer model and surpass the state-of-the-art.

New State-of-the-Art in Preposition Sense Disambiguation Supervisor: Prof. Dr. Alexander Mehler Alexander Henlein Institutions: Goethe University TTLa

Dirk Neuhäuser 4 Apr 6, 2022
TextAttack 🐙 is a Python framework for adversarial attacks, data augmentation, and model training in NLP

TextAttack ?? Generating adversarial examples for NLP models [TextAttack Documentation on ReadTheDocs] About • Setup • Usage • Design About TextAttack

QData 2.2k Jan 3, 2023
Poetry PEP 517 Build Backend & Core Utilities

Poetry Core A PEP 517 build backend implementation developed for Poetry. This project is intended to be a light weight, fully compliant, self-containe

Poetry 293 Jan 2, 2023
Scikit-learn style model finetuning for NLP

Scikit-learn style model finetuning for NLP Finetune is a library that allows users to leverage state-of-the-art pretrained NLP models for a wide vari

indico 665 Dec 17, 2022
Scikit-learn style model finetuning for NLP

Scikit-learn style model finetuning for NLP Finetune is a library that allows users to leverage state-of-the-art pretrained NLP models for a wide vari

indico 631 Feb 2, 2021
Using Bert as the backbone model for lime, designed for NLP task explanation (sentence pair text classification task)

Lime Comparing deep contextualized model for sentences highlighting task. In addition, take the classic explanation model "LIME" with bert-base model

JHJu 2 Jan 18, 2022
Toward Model Interpretability in Medical NLP

Toward Model Interpretability in Medical NLP LING380: Topics in Computational Linguistics Final Project James Cross ([email protected]) and Daniel Kim

null 1 Mar 4, 2022
nlabel is a library for generating, storing and retrieving tagging information and embedding vectors from various nlp libraries through a unified interface.

nlabel is a library for generating, storing and retrieving tagging information and embedding vectors from various nlp libraries through a unified interface.

Bernhard Liebl 2 Jun 10, 2022
Ray-based parallel data preprocessing for NLP and ML.

Wrangl Ray-based parallel data preprocessing for NLP and ML. pip install wrangl # for latest pip install git+https://github.com/vzhong/wrangl See exa

Victor Zhong 33 Dec 27, 2022
Official Stanford NLP Python Library for Many Human Languages

Stanza: A Python NLP Library for Many Human Languages The Stanford NLP Group's official Python NLP library. It contains support for running various ac

Stanford NLP 6.4k Jan 2, 2023