百度飞桨:ERNIE 3.0 、通用信息抽取 UIE、paddleNLP的安装使用[一]
相关文章:
基础知识介绍:
【一】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/PaddleNLP
https://github.com/PaddlePaddle/PaddleNLP
1.安装paddle
首先在anaconda下创建虚拟环境:
conda create -n test python=3.8 #test为创建的虚拟环境名称
在安装paddle
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”即可:
python -c "import platform;print(platform.architecture()[0]);print(platform.machine())"
2.通用信息抽取 UIE
paddlenlp安装
环境依赖
- python >= 3.6
- paddlepaddle >= 2.2
pip install --upgrade paddlenlp
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提供一键预测功能,无需训练,直接输入数据即可开放域抽取结果:【信息提取】
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.9857379716035553,
'start': 0,
'text': '2月8日上午'}],
'赛事名称': [{'end': 23,
'probability': 0.8503087823987343,
'start': 6,
'text': '北京冬奥会自由式滑雪女子大跳台决赛'}],
'选手': [{'end': 31,
'probability': 0.8981548639781138,
'start': 28,
'text': '谷爱凌'}]}]
当然定义实体提取的模式有一定灵活性:
ie = Taskflow('information_extraction', schema=schema)
[{'分数': [{'end': 39,
'probability': 0.9873907344274926,
'start': 32,
'text': '188.25分'}],
'时间': [{'end': 6,
'probability': 0.9857379716035553,
'start': 0,
'text': '2月8日上午'}],
'赛事名称': [{'end': 23,
'probability': 0.8503087823987343,
'start': 6,
'text': '北京冬奥会自由式滑雪女子大跳台决赛'}],
'选手': [{'end': 31,
'probability': 0.8981548639781138,
'start': 28,
'text': '谷爱凌'}]}]
这里如果增加“”“奖牌、名次”等实体则无法实现
schema = ['时间', '选手', '赛事名称',"城市","分数"] # Define the schema for entity extraction
[{'分数': [{'end': 39,
'probability': 0.9873907344274926,
'start': 32,
'text': '188.25分'}],
'城市': [{'end': 8,
'probability': 0.8775704061407907,
'start': 6,
'text': '北京'}],
'时间': [{'end': 6,
'probability': 0.9857379716035553,
'start': 0,
'text': '2月8日上午'}],
'赛事名称': [{'end': 23,
'probability': 0.8503087823987343,
'start': 6,
'text': '北京冬奥会自由式滑雪女子大跳台决赛'}],
'选手': [{'end': 31,
'probability': 0.8981548639781138,
'start': 28,
'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/PaddleNLP
https://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 |
|---|---|---|---|---|---|
使用预训练模型Fine-tune完成中文文本分类任务
百度飞桨:ERNIE 3.0 、通用信息抽取 UIE、paddleNLP的安装使用[一]的更多相关文章
- 树莓派4B安装 百度飞桨paddlelite 做视频检测 (一、环境安装)
前言: 当前准备重新在树莓派4B8G 上面搭载训练模型进行识别检测,训练采用了百度飞桨的PaddleX再也不用为训练部署环境各种报错发愁了,推荐大家使用. 关于在树莓派4B上面paddlelite的文 ...
- 提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件
提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件 11月5日,在『WAVE Summit+』2019 深度学习开发者秋季峰会上,百度对外发布基于 ERNIE 的语义理解 ...
- 百度飞桨数据处理 API 数据格式 HWC CHW 和 PIL 图像处理之间的关系
使用百度飞桨 API 例如:Resize Normalize,处理数据的时候. Resize:如果输入的图像是 PIL 读取的图像这个数据格式是 HWC ,Resize 就需要 HWC 格式的数据. ...
- Ubuntu 百度飞桨和 CUDA 的安装
Ubuntu 百度飞桨 和 CUDA 的安装 1.简介 本文主要是 Ubuntu 百度飞桨 和 CUDA 的安装 系统:Ubuntu 20.04 百度飞桨:2.2 为例 2.百度飞桨安装 访问百度飞桨 ...
- 我做的百度飞桨PaddleOCR .NET调用库
我做的百度飞桨PaddleOCR .NET调用库 .NET Conf 2021中国我做了一次<.NET玩转计算机视觉OpenCV>的分享,其中提到了一个效果特别好的OCR识别引擎--百度飞 ...
- 【百度飞桨】手写数字识别模型部署Paddle Inference
从完成一个简单的『手写数字识别任务』开始,快速了解飞桨框架 API 的使用方法. 模型开发 『手写数字识别』是深度学习里的 Hello World 任务,用于对 0 ~ 9 的十类数字进行分类,即输入 ...
- 百度ERNIE 2.0强势发布!16项中英文任务表现超越BERT和XLNet
2019年3月,百度正式发布NLP模型ERNIE,其在中文任务中全面超越BERT一度引发业界广泛关注和探讨. 今天,经过短短几个月时间,百度ERNIE再升级.发布持续学习的语义理解框架ERNIE 2. ...
- 【一】ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?
参考文章: 深度剖析知识增强语义表示模型--ERNIE_财神Childe的博客-CSDN博客_ernie模型 ERNIE_ERNIE开源开发套件_飞桨 https://github.com/Pad ...
- 百度NLP预训练模型ERNIE2.0最强实操课程来袭!【附教程】
2019年3月,百度正式发布NLP模型ERNIE,其在中文任务中全面超越BERT一度引发业界广泛关注和探讨.经过短短几个月时间,百度ERNIE再升级,发布持续学习的语义理解框架ERNIE 2.0,及基 ...
- 百度艾尼ERNIE专场再入魔都,11月23日线下开讲!
这个十一月,是属于深度学习开发者们的秋季盛宴.『WAVE Summit+』2019 深度学习开发者秋季峰会刚刚落下帷幕,基于ERNIE的语义理解工具套件也在此次峰会上全新发布,旨在为企业级开发者提供更 ...
随机推荐
- UltraEdit 去除文本中的空行,按指定字符换行
在将JSON格式的数据,整理到 Excel中查看时,可以通过文本替换的方式将JSON存到csv 后,使用 UltraEdit 编辑工具按需进行替换处理 去除多个空行 ^p^p 替换成 ^p 按逗号换 ...
- UVA 156 Ananagrams STL应用
https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&prob ...
- AtCoder Beginner Contest 204 (AB水题,C题DFS,D题位运算DP,E题BFS好题)
补题链接:Here A - Rock-paper-scissors 石头剪刀布,两方是一样的则输出该值,否则输出该值 int s[4] = {0, 1, 2}; void solve() { int ...
- 二、java发送https的各类请求
导航 一.java发送http的各类请求 二.java发送https的各类请求 java开发中需要调用其他服务的对外提供的https请求,上一篇写的是调用http,处理方式不太一样,可以参考如下代码: ...
- .NET CORE实战项目之CMS 部署篇 思维导图
.NET Core实战项目之CMS 第十七章 CMS网站系统的部署 如何优雅的利用Windows服务来部署ASP.NET Core程序
- poj 2533 LIS(最长上升序列)
***一道裸题, 思路:在g数组内往里加元素,一直扩大这个数组,每次查询的时候,用二分查找,时间复杂度O(nlog(n)) *** #include<iostream> #include& ...
- 基于python的租房网站-房屋出租租赁系统(python+django+vue)
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品.欢迎大家提出宝贵建议. 功能介绍 平台采用B/S结构,后端采用主流的Python+Django进行 ...
- AHB2APB设计
AHB2APB Bridge位置 AHB子系统时钟在200Mhz左右,APB时钟在几十Khz到几十Mhz 所以要进行跨时钟域处理,从AHB高时钟频率转到APB低时钟频率 AHB2APB Bridge规 ...
- 电子科技大学--ARM实验Keil uvison5 安装以及S3C2440A芯片包下载
1.简介 本教程主要服务于电子科技大学软工嵌入式新生,节省一些查找资料的时间 2.过程 请按如下顺序安装: 1,安装mdk_514.exe (主体文件) 2,安装Keil.STM32F1xx_DFP. ...
- 【Mysql系列】(二)日志系统:一条更新语句是如何执行的
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 这篇文章是从Github ReadMe拷贝的,内容实践下载是没问题的,能够正 ...