简体中文 | English
-
🔥 2021.5.18-19直播课,解读信息抽取UIE和ERNIE 3.0轻量级模型能力,欢迎报名来交流
-
🔥 2022.5.16 PaddleNLP release/2.3
- 新增文心大模型 ERNIE 3.0,在CLUE Benchmark上实现同规模模型中文最佳效果;新增中文医疗领域预训练模型 ERNIE-Health;新增超大规模百亿(11B)开放域对话预训练模型 PLATO-XL(英文),并提供FasterGeneration高性能GPU加速,相比上版本推理速度加速2.7倍。
- 通用信息抽取技术 UIE发布,单个模型可以同时支持命名实体识别、关系抽取、事件抽取、情感分析等任务;
-
2022.3.21 PaddleNLP release/2.2.5 一键预测工具Taskflow全新升级!欢迎体验更丰富的功能、更便捷的使用方式;新推出适合不同场景的中文分词、命名实体识别模式!
-
2021.12.28 PaddleNLP release/2.2.2 发布语义检索、问答、评论观点抽取和情感倾向分析 产业化案例,快速搭建系统!配套视频课程直通车!
PaddleNLP是飞桨自然语言处理开发库,旨在提升开发者在文本领域的开发效率,并提供丰富的NLP应用示例。具备以下四大特性:
Taskflow旨在提供开箱即用的产业级NLP预置任务能力,覆盖自然语言理解与生成两大场景,提供产业级的效果与极致的预测性能。
更多使用方法可参考Taskflow文档。
- Transformer 预训练模型
精选 45+ 个网络结构和 500+ 个预训练模型参数,⭐️⭐️ 国内下载速度快!⭐️⭐️ 既包括百度自研的预训练模型如ERNIE系列, PLATO, SKEP等,也涵盖业界主流的中文预训练模型如BERT,GPT,RoBERTa,T5等。使用paddlenlp.transformers.AutoModel
可以下载不同网络结构的预训练模型:
from paddlenlp.transformers import *
ernie = AutoModel.from_pretrained('ernie-3.0-base-zh')
bert = AutoModel.from_pretrained('bert-wwm-chinese')
albert = AutoModel.from_pretrained('albert-chinese-tiny')
roberta = AutoModel.from_pretrained('roberta-wwm-ext')
electra = AutoModel.from_pretrained('chinese-electra-small')
gpt = AutoModelForPretraining.from_pretrained('gpt-cpm-large-cn')
对预训练模型应用范式如语义表示、文本分类、句对匹配、序列标注、问答等,提供统一的API体验(可展开详情)
import paddle
from paddlenlp.transformers import *
tokenizer = AutoTokenizer.from_pretrained('ernie-3.0-medium-zh')
text = tokenizer('自然语言处理')
# 语义表示
model = AutoModel.from_pretrained('ernie-3.0-medium-zh')
sequence_output, pooled_output = model(input_ids=paddle.to_tensor([text['input_ids']]))
# 文本分类 & 句对匹配
model = AutoModelForSequenceClassification.from_pretrained('ernie-3.0-medium-zh')
# 序列标注
model = AutoModelForTokenClassification.from_pretrained('ernie-3.0-medium-zh')
# 问答
model = AutoModelForQuestionAnswering.from_pretrained('ernie-3.0-medium-zh')
PaddleNLP预训练模型适用任务汇总(可展开详情)
Model | Sequence Classification | Token Classification | Question Answering | Text Generation | Multiple Choice |
---|---|---|---|---|---|
ALBERT | ✅ | ✅ | ✅ | ❌ | ✅ |
BART | ✅ | ✅ | ✅ | ✅ | ❌ |
BERT | ✅ | ✅ | ✅ | ❌ | ✅ |
BigBird | ✅ | ✅ | ✅ | ❌ | ✅ |
BlenderBot | ❌ | ❌ | ❌ | ✅ | ❌ |
ChineseBERT | ✅ | ✅ | ✅ | ❌ | ❌ |
ConvBERT | ✅ | ✅ | ✅ | ❌ | ✅ |
CTRL | ✅ | ❌ | ❌ | ❌ | ❌ |
DistilBERT | ✅ | ✅ | ✅ | ❌ | ❌ |
ELECTRA | ✅ | ✅ | ✅ | ❌ | ✅ |
ERNIE | ✅ | ✅ | ✅ | ❌ | ✅ |
ERNIE-CTM | ❌ | ✅ | ❌ | ❌ | ❌ |
ERNIE-Doc | ✅ | ✅ | ✅ | ❌ | ❌ |
ERNIE-GEN | ❌ | ❌ | ❌ | ✅ | ❌ |
ERNIE-Gram | ✅ | ✅ | ✅ | ❌ | ❌ |
ERNIE-M | ✅ | ✅ | ✅ | ❌ | ❌ |
FNet | ✅ | ✅ | ✅ | ❌ | ✅ |
Funnel-Transformer | ✅ | ✅ | ✅ | ❌ | ❌ |
GPT | ✅ | ✅ | ❌ | ✅ | ❌ |
LayoutLM | ✅ | ✅ | ❌ | ❌ | ❌ |
LayoutLMv2 | ❌ | ✅ | ❌ | ❌ | ❌ |
LayoutXLM | ❌ | ✅ | ❌ | ❌ | ❌ |
LUKE | ❌ | ✅ | ✅ | ❌ | ❌ |
mBART | ✅ | ❌ | ✅ | ❌ | ✅ |
MegatronBERT | ✅ | ✅ | ✅ | ❌ | ✅ |
MobileBERT | ✅ | ❌ | ✅ | ❌ | ❌ |
MPNet | ✅ | ✅ | ✅ | ❌ | ✅ |
NEZHA | ✅ | ✅ | ✅ | ❌ | ✅ |
PP-MiniLM | ✅ | ❌ | ❌ | ❌ | ❌ |
ProphetNet | ❌ | ❌ | ❌ | ✅ | ❌ |
Reformer | ✅ | ❌ | ✅ | ❌ | ❌ |
RemBERT | ✅ | ✅ | ✅ | ❌ | ✅ |
RoBERTa | ✅ | ✅ | ✅ | ❌ | ✅ |
RoFormer | ✅ | ✅ | ✅ | ❌ | ❌ |
SKEP | ✅ | ✅ | ❌ | ❌ | ❌ |
SqueezeBERT | ✅ | ✅ | ✅ | ❌ | ❌ |
T5 | ❌ | ❌ | ❌ | ✅ | ❌ |
TinyBERT | ✅ | ❌ | ❌ | ❌ | ❌ |
UnifiedTransformer | ❌ | ❌ | ❌ | ✅ | ❌ |
XLNet | ✅ | ✅ | ✅ | ❌ | ✅ |
可参考Transformer 文档 查看目前支持的预训练模型结构、参数和详细用法。
- 模型应用示例,覆盖NLP全场景
覆盖从学术到产业级的NLP应用示例,涵盖NLP基础技术、NLP系统应用以及相关拓展应用。全面基于飞桨核心框架2.0全新API体系开发,为开发者提供飞桨文本领域的最佳实践。
精选预训练模型示例可参考Model_Zoo。
更多场景示例文档可参考examples目录、Notbook交互式教程。
PaddleNLP针对信息抽取、语义检索、问答、情感倾向分析,推出场景系统技术方案,打通数据标注-模型训练-调优-预测部署全流程。
- 智能语音指令解析
集成了业界领先的语音识别(Automatic Speech Recognition, ASR)、信息抽取(Information Extraction, IE)等技术,打造智能一体化的语音指令系统,广泛应用于智能语音填单、智能语音交互、智能语音检索、手机APP语音唤醒等场景,提高人机交互效率。
更多可参考智能语音指令解析。
- 语义检索系统
针对无监督数据、有监督数据等多种数据情况,结合SimCSE、In-batch Negatives、ERNIE-Gram单塔模型等,推出前沿的语义检索方案,包含召回、排序环节,打通训练、调优、高效向量检索引擎建库和查询全流程。
更多可参考语义检索系统。
- 智能问答系统
推出基于语义检索技术的问答系统,支持FAQ问答、说明书问答等多种业务场景。
更多可参考智能问答系统。
- 评论观点抽取与情感分析
基于情感知识增强预训练模型SKEP,针对产品评论进行评价维度和观点抽取,以及细粒度的情感分析。
更多可参考情感分析。
- 飞桨4D混合并行分布式训练
更多技术细节可参考GPT-3
- 高性能Transformer类文本分词器:FasterTokenizer
更多内容可参考FasterTokenizer文档
- 面向生成任务的高性能加速组件:FasterGeneration
更多内容可参考FasterGeneration文档
- 微信扫描二维码并填写问卷之后,加入交流群领取福利
- 获取5月18-19日每晚20:30《产业级通用信息抽取技术UIE+ERNIE轻量级模型》直播课链接
- 10G重磅NLP学习大礼包:
- python >= 3.6
- paddlepaddle >= 2.2
pip install --upgrade paddlenlp
更多关于PaddlePaddle和PaddleNLP安装的详细教程请查看Installation。
这里以信息抽取-命名实体识别任务,UIE模型为例,来说明如何快速使用PaddleNLP:
- 一键预测
PaddleNLP提供一键预测功能,无需训练,直接输入数据,即可得到预测结果,以情感分析任务为例:
from pprint import pprint
from paddlenlp import Taskflow
schema = ['时间', '选手', '赛事名称'] # Define the schema for entity extraction
ie = Taskflow('information_extraction', schema=schema)
pprint(ie("2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌!"))
>>> [{'时间': [{'end': 6,
'probability': 0.9857378532924486,
'start': 0,
'text': '2月8日上午'}],
'赛事名称': [{'end': 23,
'probability': 0.8503089953268272,
'start': 6,
'text': '北京冬奥会自由式滑雪女子大跳台决赛'}],
'选手': [{'end': 31,
'probability': 0.8981548639781138,
'start': 28,
'text': '谷爱凌'}]}]
- 定制训练
如果对一键预测效果不满意,也可以进行模型微调,这里对UIE模型进行微调,以进一步提升命名实体识别的准确率:
from paddlenlp.transformers import ErniePretrainedModel,AutoTokenizer
完整微调代码,可参考UIE微调
更多内容可参考:多场景示例,PaddleNLP on AI Studio。
PaddleNLP提供全流程的文本领域API,可大幅提升NLP任务建模的效率:
- 支持丰富中文数据集加载的Dataset API;
- 灵活高效地完成数据预处理的Data API;
- 提供500+预训练模型的Transformers API。
更多使用方法请参考API文档。
更多版本更新说明请查看ChangeLog
如果PaddleNLP对您的研究有帮助,欢迎引用
@misc{=paddlenlp,
title={PaddleNLP: An Easy-to-use and High Performance NLP Library},
author={PaddleNLP Contributors},
howpublished = {\url{https://github.com/PaddlePaddle/PaddleNLP}},
year={2021}
}
我们借鉴了Hugging Face的Transformers🤗关于预训练模型使用的优秀设计,在此对Hugging Face作者及其开源社区表示感谢。
PaddleNLP遵循Apache-2.0开源协议。