相关文章:

基础知识介绍:

【一】ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?_汀、的博客-CSDN博客_ernie模型

百度飞桨:ERNIE 3.0 、通用信息抽取 UIE、paddleNLP的安装使用[一]_汀、的博客-CSDN博客_paddlenlp 安装


项目实战:

PaddleHub--飞桨预训练模型应用工具{风格迁移模型、词法分析情感分析、Fine-tune API微调}【一】_汀、的博客-CSDN博客

PaddleHub--{超参优化AutoDL Finetuner}【二】_汀、的博客-CSDN博客

PaddleHub实战篇{词法分析模型LAC、情感分类ERNIE Tiny}训练、部署【三】_汀、的博客-CSDN博客

PaddleHub实战篇{ERNIE实现文新闻本分类、ERNIE3.0 实现序列标注}【四】_汀、的博客-CSDN博客

https://github.com/PaddlePaddle/PaddleNLPhttps://github.com/PaddlePaddle/PaddleNLP

1.安装paddle

参考官网:开始使用_飞桨-源于产业实践的开源深度学习平台

首先在anaconda下创建虚拟环境:

  1. conda create -n test python=3.8 #test为创建的虚拟环境名称

在安装paddle

  1. python -m pip install paddlepaddle==2.3.0 -i https://mirror.baidu.com/pypi/simple

验证安装

安装完成后您可以使用 python 进入python解释器,输入import paddle ,再输入 paddle.utils.run_check()

如果出现PaddlePaddle is installed successfully!,说明您已成功安装。

  • 环境主要安装Python和Paddle对应版本要求的环境,中间建议使用pip安装方式进行安装。
  • Python3版本要求:python3.7及以上版本,参考Welcome to Python.org
  • PaddlePaddle版本要求:paddlepaddle2.0+版本,参考MacOS下的PIP安装-使用文档-PaddlePaddle深度学习平台
  • Paddle环境的安装,需要确认Python和pip是64bit,并且处理器架构是x86_64(或称作x64、Intel 64、AMD64)架构,目前PaddlePaddle不支持arm64架构(mac M1除外,paddle 已支持Mac M1 芯片)。下面的第一行输出的是”64bit”,第二行输出的是”x86_64”、”x64”或”AMD64”即可:
  1. python -c "import platform;print(platform.architecture()[0]);print(platform.machine())"

2.通用信息抽取 UIE

paddlenlp安装

环境依赖

  • python >= 3.6
  • paddlepaddle >= 2.2
  1. pip install --upgrade paddlenlp
  1. show paddlenlp

2.1 PaddleNLP一键预测功能:Taskflow API

环境依赖

  • python >= 3.6
  • paddlepaddle >= 2.2.0
  • paddlenlp >= 2.2.5
任务名称 调用方式 一键预测 单条输入 多条输入 文档级输入 定制化训练 其它特性
中文分词 Taskflow("word_segmentation") 多种分词模式,满足快速切分和实体粒度精准切分
词性标注 Taskflow("pos_tagging") 基于百度前沿词法分析工具LAC
命名实体识别 Taskflow("ner") 覆盖最全中文实体标签
依存句法分析 Taskflow("dependency_parsing") 基于最大规模中文依存句法树库研发的DDParser
信息抽取 Taskflow("information_extraction") 适配多场景的开放域通用信息抽取工具
『解语』-知识标注 Taskflow("knowledge_mining") 覆盖所有中文词汇的知识标注工具
文本纠错 Taskflow("text_correction") 融合拼音特征的端到端文本纠错模型ERNIE-CSC
文本相似度 Taskflow("text_similarity") 基于百度知道2200万对相似句组训练
情感倾向分析 Taskflow("sentiment_analysis") 基于情感知识增强预训练模型SKEP达到业界SOTA
生成式问答 Taskflow("question_answering") 使用最大中文开源CPM模型完成问答
智能写诗 Taskflow("poetry_generation") 使用最大中文开源CPM模型完成写诗
开放域对话 Taskflow("dialogue") 十亿级语料训练最强中文闲聊模型PLATO-Mini,支持多轮对话

PaddleNLP提供一键预测功能,无需训练,直接输入数据即可开放域抽取结果:【信息提取】

  1. from pprint import pprint
  2. from paddlenlp import Taskflow
  3. schema = ['时间', '选手', '赛事名称'] # Define the schema for entity extraction
  4. ie = Taskflow('information_extraction', schema=schema) #花费时间会安装文件
  5. pprint(ie("2月8日上午北京冬奥会自由式滑雪女子大跳台决赛中中国选手谷爱凌以188.25分获得金牌!"))
  1. [{'时间': [{'end': 6,
  2. 'probability': 0.9857379716035553,
  3. 'start': 0,
  4. 'text': '2月8日上午'}],
  5. '赛事名称': [{'end': 23,
  6. 'probability': 0.8503087823987343,
  7. 'start': 6,
  8. 'text': '北京冬奥会自由式滑雪女子大跳台决赛'}],
  9. '选手': [{'end': 31,
  10. 'probability': 0.8981548639781138,
  11. 'start': 28,
  12. 'text': '谷爱凌'}]}]

当然定义实体提取的模式有一定灵活性:

  1. ie = Taskflow('information_extraction', schema=schema)
  1. [{'分数': [{'end': 39,
  2. 'probability': 0.9873907344274926,
  3. 'start': 32,
  4. 'text': '188.25分'}],
  5. '时间': [{'end': 6,
  6. 'probability': 0.9857379716035553,
  7. 'start': 0,
  8. 'text': '2月8日上午'}],
  9. '赛事名称': [{'end': 23,
  10. 'probability': 0.8503087823987343,
  11. 'start': 6,
  12. 'text': '北京冬奥会自由式滑雪女子大跳台决赛'}],
  13. '选手': [{'end': 31,
  14. 'probability': 0.8981548639781138,
  15. 'start': 28,
  16. 'text': '谷爱凌'}]}]

这里如果增加“”“奖牌、名次”等实体则无法实现

  1. schema = ['时间', '选手', '赛事名称',"城市","分数"] # Define the schema for entity extraction
  1. [{'分数': [{'end': 39,
  2. 'probability': 0.9873907344274926,
  3. 'start': 32,
  4. 'text': '188.25分'}],
  5. '城市': [{'end': 8,
  6. 'probability': 0.8775704061407907,
  7. 'start': 6,
  8. 'text': '北京'}],
  9. '时间': [{'end': 6,
  10. 'probability': 0.9857379716035553,
  11. 'start': 0,
  12. 'text': '2月8日上午'}],
  13. '赛事名称': [{'end': 23,
  14. 'probability': 0.8503087823987343,
  15. 'start': 6,
  16. 'text': '北京冬奥会自由式滑雪女子大跳台决赛'}],
  17. '选手': [{'end': 31,
  18. 'probability': 0.8981548639781138,
  19. 'start': 28,
  20. 'text': '谷爱凌'}]}]

2.2 小样本调参----轻定制功能

如果对一键预测效果不满意,也可以使用少量数据进行模型精调,进一步提升特定场景的效果,详见UIE小样本定制训练

PaddleNLP/model_zoo/uie at develop · PaddlePaddle/PaddleNLP · GitHubEasy-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. - PaddleNLP/model_zoo/uie at develop · PaddlePaddle/PaddleNLPhttps://github.com/PaddlePaddle/PaddleNLP/tree/develop/model_zoo/uie我们推荐使用数据标注平台doccano 进行数据标注

对于简单的抽取目标可以直接使用paddlenlp.Taskflow实现零样本(zero-shot)抽取,对于细分场景我们推荐使用轻定制功能(标注少量数据进行模型微调)以进一步提升效果。下面通过报销工单信息抽取的例子展示如何通过5条训练数据进行UIE模型微调。

代码结构:
├── utils.py          # 数据处理工具
├── model.py          # 模型组网脚本
├── doccano.py        # 数据标注脚本
├── doccano.md        # 数据标注文档
├── finetune.py       # 模型微调脚本
├── evaluate.py       # 模型评估脚本
└── README.md

标注安装和标注指南:

https://github.com/PaddlePaddle/PaddleNLP/blob/develop/model_zoo/uie/doccano.md

最终效果展示:

Few-Shot实验

我们在互联网、医疗、金融三大垂类自建测试集上进行了实验:

金融 医疗 互联网
0-shot 5-shot 0-shot 5-shot 0-shot 5-shot
uie-tiny 41.11 64.53 65.40 75.72 78.32 79.68
uie-base 46.43 70.92 71.83 85.72 78.33 81.86

0-shot表示无训练数据直接通过paddlenlp.Taskflow进行预测,5-shot表示基于5条标注数据进行模型微调。实验表明UIE在垂类场景可以通过少量数据(few-shot)进一步提升效果。

3.PaddleNLP Transformer预训练模型

PaddleNLP Transformer预训练模型 — PaddleNLP 文档

PaddleNLP的Transformer预训练模型包含从 huggingface.co 直接转换的模型权重和百度自研模型权重,方便社区用户直接迁移使用。 目前共包含了40多个主流预训练模型,500多个模型权重。

Transformer预训练模型适用任务汇总

Model

Sequence Classification

Token Classification

Question Answering

Text Generation

Multiple Choice

ALBERT

BART

BERT

BigBird

Blenderbot

Blenderbot-Small

ChineseBert

ConvBert

CTRL

DistilBert

ELECTRA

ERNIE

ERNIE-CTM

ERNIE-DOC

ERNIE-GEN

ERNIE-GRAM

ERNIE-M

FNet

Funnel

GPT

LayoutLM

LayoutLMV2

LayoutXLM

Luke

MBart

MegatronBert

MobileBert

MPNet

NeZha

PPMiniLM

ProphetNet

Reformer

RemBert

RoBERTa

RoFormer

SKEP

SqueezeBert

T5

TinyBert

UnifiedTransformer

XLNet

使用预训练模型Fine-tune完成中文文本分类任务

https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/text_classification/pretrained_models/

百度飞桨:ERNIE 3.0 、通用信息抽取 UIE、paddleNLP的安装使用[一]的更多相关文章

  1. 树莓派4B安装 百度飞桨paddlelite 做视频检测 (一、环境安装)

    前言: 当前准备重新在树莓派4B8G 上面搭载训练模型进行识别检测,训练采用了百度飞桨的PaddleX再也不用为训练部署环境各种报错发愁了,推荐大家使用. 关于在树莓派4B上面paddlelite的文 ...

  2. 提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件

    提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件 11月5日,在『WAVE Summit+』2019 深度学习开发者秋季峰会上,百度对外发布基于 ERNIE 的语义理解 ...

  3. 百度飞桨数据处理 API 数据格式 HWC CHW 和 PIL 图像处理之间的关系

    使用百度飞桨 API 例如:Resize Normalize,处理数据的时候. Resize:如果输入的图像是 PIL 读取的图像这个数据格式是 HWC ,Resize 就需要 HWC 格式的数据. ...

  4. Ubuntu 百度飞桨和 CUDA 的安装

    Ubuntu 百度飞桨 和 CUDA 的安装 1.简介 本文主要是 Ubuntu 百度飞桨 和 CUDA 的安装 系统:Ubuntu 20.04 百度飞桨:2.2 为例 2.百度飞桨安装 访问百度飞桨 ...

  5. 我做的百度飞桨PaddleOCR .NET调用库

    我做的百度飞桨PaddleOCR .NET调用库 .NET Conf 2021中国我做了一次<.NET玩转计算机视觉OpenCV>的分享,其中提到了一个效果特别好的OCR识别引擎--百度飞 ...

  6. 【百度飞桨】手写数字识别模型部署Paddle Inference

    从完成一个简单的『手写数字识别任务』开始,快速了解飞桨框架 API 的使用方法. 模型开发 『手写数字识别』是深度学习里的 Hello World 任务,用于对 0 ~ 9 的十类数字进行分类,即输入 ...

  7. 百度ERNIE 2.0强势发布!16项中英文任务表现超越BERT和XLNet

    2019年3月,百度正式发布NLP模型ERNIE,其在中文任务中全面超越BERT一度引发业界广泛关注和探讨. 今天,经过短短几个月时间,百度ERNIE再升级.发布持续学习的语义理解框架ERNIE 2. ...

  8. 【一】ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?

    ​ 参考文章: 深度剖析知识增强语义表示模型--ERNIE_财神Childe的博客-CSDN博客_ernie模型 ERNIE_ERNIE开源开发套件_飞桨 https://github.com/Pad ...

  9. 百度NLP预训练模型ERNIE2.0最强实操课程来袭!【附教程】

    2019年3月,百度正式发布NLP模型ERNIE,其在中文任务中全面超越BERT一度引发业界广泛关注和探讨.经过短短几个月时间,百度ERNIE再升级,发布持续学习的语义理解框架ERNIE 2.0,及基 ...

  10. 百度艾尼ERNIE专场再入魔都,11月23日线下开讲!

    这个十一月,是属于深度学习开发者们的秋季盛宴.『WAVE Summit+』2019 深度学习开发者秋季峰会刚刚落下帷幕,基于ERNIE的语义理解工具套件也在此次峰会上全新发布,旨在为企业级开发者提供更 ...

随机推荐

  1. Spring Cloud整体架构解析

    Spring Cloud整体架构 Spring Cloud的中文名我们就暂且称呼它为"春云"吧,听上去是多么朴实无华的名字,不过呢一般名字起的低调的都是厉害角色,我们就看看Spri ...

  2. ICASSP 2022 | 前沿音视频成果分享:基于可变形卷积的压缩视频质量增强网络

    阿里云视频云视频编码与增强技术团队最新研究成果论文<基于可变形卷积的压缩视频质量增强网络>(Deformable Convolution Dense Network for Compres ...

  3. Codeforces Round #694 (Div. 2) A~D、E

    比赛链接:Here 1471A. Strange Partition 题意: 给一个数组,数组中的所有元素可以任意合并,求数组的每个元素除以x上取整的和,求结果的最大值和最小值. 思路: 瞎猜.最小值 ...

  4. 浏览器,navicat,IDEA--快捷键

    mysql快捷键:ctrl+r 运行查询窗口的sql语句ctrl+shift+r 只运行选中的sql语句ctrl+q 打开一个新的查询窗口ctrl+w 关闭一个查询窗口ctrl+/ 注释sql语句 c ...

  5. 终于!我们把 CEO 炒了,让 ChatGPT 出任 CEO

    ️ FBI Warning:本文纯属作者自娱自乐,数字人的观点不代表 CEO 本人的观点,请大家不要上当受骗!! 哪个公司的 CEO 不想拥有一个自己的数字克隆? 想象一下,如果 CEO 数字克隆上线 ...

  6. HP笔记本(Inspiron 7472) 视频时无摄像头的处理方案

    需要视频考试的前一天,测试摄像头时发现微信视频时竟然摄像头打不开.比较焦急,尝试了好几种办法,并在2小时内找出解决方案.   一.查看设备是否被禁用 我的电脑->右键->设备管理器-> ...

  7. GoLang 指针初探

    1. 内置类型和引用类型 Go 中内置类型包括数值类型,字符串类型和布尔类型.引用类型包括切片,映射,通道,接口和函数类型.其中,引用类型表示创建的变量包含一个指向底层数据结构的指针和一组管理底层数据 ...

  8. spring--JDK动态代理的实现原理

    JDK 动态代理的实现原理涉及到 Java 的反射机制.它允许在运行时动态创建一个代理类,这个代理类实现了一组接口,并将所有方法调用转发到一个 InvocationHandler 实例.下面是 JDK ...

  9. 针对docker中的mongo容器增加鉴权

    1. 背景 业务方的服务器经安全检查,发现以docker容器启动的mongo未增加鉴权的漏洞,随优化之 2. 配置 mongo以docker compose方式启动,镜像的版本号为4.2.6,dock ...

  10. P5707 【深基2.例12】上学迟到

    1.题目介绍 2.题解 这里只有两个稍微注意的点 2.1 s % v != 0(向上取整) 这里的话,若是结果不为整数,我们必须向上取整,必须保证空余时间永远大于所需时间! 2.2 ceil向上取整函 ...