Coder Social home page Coder Social logo

xieydd / paddlenlp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from paddlepaddle/paddlenlp

0.0 1.0 0.0 76.34 MB

Easy-to-use and powerful NLP library with Awesome model zoo, supporting wide-range of NLP tasks from research to industrial applications, including Neural Search, Question Answering, Information Extraction and Sentiment Analysis end-to-end system.

Home Page: https://paddlenlp.readthedocs.io

License: Apache License 2.0

Shell 1.87% C++ 10.11% Python 83.47% C 0.03% Cuda 3.86% Makefile 0.01% CMake 0.64% Batchfile 0.01% Dockerfile 0.01%

paddlenlp's Introduction

简体中文🀄 | English🌎


PaddleNLP是一款简单易用功能强大的自然语言处理开发库。聚合业界优质预训练模型并提供开箱即用的开发体验,覆盖NLP多场景的模型库搭配产业实践范例可满足开发者灵活定制的需求。

News 📢

  • 🔥 2022.10.14 发布 PaddleNLP v2.4.1

    • 🧾 发布多语言跨模态布局增强文档智能大模型 ERNIE-Layout,刷新11项任务SOTA。同步发布基于ERNIE-Layout的文档抽取问答模型DocPrompt 🔖,精准理解文档图片布局与语义信息,轻松应对各类业务场景。
  • 🔥 2022.9.6 发布 PaddleNLP v2.4

    • 💎 NLP工具:NLP 流水线系统 Pipelines 发布,支持快速搭建搜索引擎、问答系统,可扩展支持各类NLP系统,让解决 NLP 任务像搭积木一样便捷、灵活、高效!
    • 💢 产业应用:新增 文本分类全流程应用方案 ,覆盖多分类、多标签、层次分类各类场景,支持 小样本学习TrustAI 可信计算模型训练与调优;通用信息抽取 UIE 能力升级,发布 UIE-M,支持中英文混合抽取,新增UIE 数据蒸馏方案,打破 UIE 推理瓶颈,推理速度提升 100 倍以上;
    • 🍭 AIGC 内容生成:新增代码生成 SOTA 模型CodeGen,支持多种编程语言代码生成;集成文图生成潮流模型 DALL·E Mini、Disco Diffusion、Stable Diffusion,更多趣玩模型等你来玩;新增中文文本摘要应用,基于大规模语料的中文摘要模型首次发布,可支持 Taskflow 一键调用和定制训练;
    • 💪 框架升级:模型自动压缩 API 发布,自动对模型进行裁减和量化,大幅降低模型压缩技术使用门槛;小样本 Prompt能力发布,集成 PET、P-Tuning、RGL 等经典算法。

社区交流

  • 💥 直播预告:10.25-10.28,PaddleNLP研发团队详解PaddleNLP v2.4新发功能,并带来前沿技术分享,以及企业落地实践。微信扫描下方二维码,关注公众号并填写问卷后进入官方交流群,获取直播链接与10G重磅NLP学习大礼包。

特性

开箱即用的NLP工具集

Taskflow提供丰富的📦开箱即用的产业级NLP预置模型,覆盖自然语言理解与生成两大场景,提供💪产业级的效果⚡️极致的推理性能

taskflow1

Taskflow最新集成了文生图的趣玩应用,三行代码体验 Stable Diffusion

from paddlenlp import Taskflow
text_to_image = Taskflow("text_to_image", model="CompVis/stable-diffusion-v1-4")
image_list = text_to_image('"In the morning light,Chinese ancient buildings in the mountains,Magnificent and fantastic John Howe landscape,lake,clouds,farm,Fairy tale,light effect,Dream,Greg Rutkowski,James Gurney,artstation"')

image

更多使用方法可参考Taskflow文档

丰富完备的中文模型库

🀄 业界最全的中文预训练模型

精选 45+ 个网络结构和 500+ 个预训练模型参数,涵盖业界最全的中文预训练模型:既包括文心NLP大模型的ERNIE、PLATO等,也覆盖BERT、GPT、RoBERTa、T5等主流结构。通过AutoModel API一键⚡高速下载⚡。

from paddlenlp.transformers import *

ernie = AutoModel.from_pretrained('ernie-3.0-medium-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一键使用文心ERNIE-Tiny全系列轻量化模型,降低预训练模型部署难度。

# 6L768H
ernie = AutoModel.from_pretrained('ernie-3.0-medium-zh')
# 6L384H
ernie = AutoModel.from_pretrained('ernie-3.0-mini-zh')
# 4L384H
ernie = AutoModel.from_pretrained('ernie-3.0-micro-zh')
# 4L312H
ernie = AutoModel.from_pretrained('ernie-3.0-nano-zh')

对预训练模型应用范式如语义表示、文本分类、句对匹配、序列标注、问答等,提供统一的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')

💯 全场景覆盖的应用示例

覆盖从学术到产业的NLP应用示例,涵盖NLP基础技术、NLP系统应用以及拓展应用。全面基于飞桨核心框架2.0全新API体系开发,为开发者提供飞桨文本领域的最佳实践。

精选预训练模型示例可参考Model Zoo,更多场景示例文档可参考examples目录。更有免费算力支持的AI Studio平台的Notbook交互式教程提供实践。

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 文档 查看目前支持的预训练模型结构、参数和详细用法。

产业级端到端系统范例

PaddleNLP针对信息抽取、语义检索、智能问答、情感分析等高频NLP场景,提供了端到端系统范例,打通数据标注-模型训练-模型调优-预测部署全流程,持续降低NLP技术产业落地门槛。更多详细的系统级产业范例使用说明请参考Applications

🔍 语义检索系统

针对无监督数据、有监督数据等多种数据情况,结合SimCSE、In-batch Negatives、ERNIE-Gram单塔模型等,推出前沿的语义检索方案,包含召回、排序环节,打通训练、调优、高效向量检索引擎建库和查询全流程。

更多使用说明请参考语义检索系统

❓ 智能问答系统

基于🚀RocketQA技术的检索式问答系统,支持FAQ问答、说明书问答等多种业务场景。

更多使用说明请参考智能问答系统文档智能问答

💌 评论观点抽取与情感分析

基于情感知识增强预训练模型SKEP,针对产品评论进行评价维度和观点抽取,以及细粒度的情感分析。

更多使用说明请参考情感分析

🎙️ 智能语音指令解析

集成了PaddleSpeech百度开放平台的的语音识别和UIE通用信息抽取等技术,打造智能一体化的语音指令解析系统范例,该方案可应用于智能语音填单、智能语音交互、智能语音检索等场景,提高人机交互效率。

更多使用说明请参考智能语音指令解析

高性能分布式训练与推理

⚡ FasterTokenizer:高性能文本处理库

AutoTokenizer.from_pretrained("ernie-3.0-medium-zh", use_faster=True)

为了实现更极致的模型部署性能,安装FastTokenizers后只需在AutoTokenizer API上打开 use_faster=True选项,即可调用C++实现的高性能分词算子,轻松获得超Python百余倍的文本处理加速,更多使用说明可参考FasterTokenizer文档

⚡️ FasterGeneration:高性能生成加速库

model = GPTLMHeadModel.from_pretrained('gpt-cpm-large-cn')
...
outputs, _ = model.generate(
    input_ids=inputs_ids, max_length=10, decode_strategy='greedy_search',
    use_faster=True)

简单地在generate()API上打开use_faster=True选项,轻松在Transformer、GPT、BART、PLATO、UniLM等生成式预训练模型上获得5倍以上GPU加速,更多使用说明可参考FasterGeneration文档

🚀 Fleet:飞桨4D混合并行分布式训练技术

更多关于千亿级AI模型的分布式训练使用说明可参考GPT-3

安装

环境依赖

  • python >= 3.6
  • paddlepaddle >= 2.2

pip安装

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小样本定制训练

更多PaddleNLP内容可参考:

  • 精选模型库,包含优质预训练模型的端到端全流程使用。
  • 多场景示例,了解如何使用PaddleNLP解决NLP多种技术问题,包含基础技术、系统应用与拓展应用。
  • 交互式教程,在🆓免费算力平台AI Studio上快速学习PaddleNLP。

API文档

PaddleNLP提供全流程的文本领域API,可大幅提升NLP任务建模的效率:

更多使用方法请参考API文档

Citation

如果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}
}

Acknowledge

我们借鉴了Hugging Face的Transformers🤗关于预训练模型使用的优秀设计,在此对Hugging Face作者及其开源社区表示感谢。

License

PaddleNLP遵循Apache-2.0开源协议

paddlenlp's People

Contributors

liuchiachi avatar linjieccc avatar smallv0221 avatar wawltor avatar zeyuchen avatar frostml avatar joey12300 avatar zhui avatar yingyibiao avatar gongel avatar lemonnoel avatar w5688414 avatar guoshengcs avatar wj-mcat avatar junnyu avatar steffy-zxf avatar kinghuin avatar westfish avatar lugimzzz avatar chenxiaozeng avatar huhuiwen99 avatar xiemoyuan avatar moebius21 avatar leeyy2020 avatar luyaojie avatar yeliang2258 avatar sljlp avatar 1649759610 avatar hysunflower avatar haohongxiang avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.