目录

  • paddle调用ERNIE
    • 安装paddle和paddlenlp
    • (下载)加载ERNIE预训练模型
    • tokenizer
    • 获取文本语义特征向量表示
  • ERNIEKIT实践
    • 安装、配置nltk
    • 下载ERNIEKIT源码
    • 运行ERNIEKIT

paddle调用ERNIE

安装paddle和paddlenlp

pip安装paddlepaddle和paddlenlp:
版本:
paddle.version: 2.2.2
paddlenlp.version: 2.4.5

pip install paddlepaddle
pip install paddlenlp

(下载)加载ERNIE预训练模型

import paddlenlp # 加载ERNIE预训练模型
MODEL_NAME = "ernie-3.0-medium-zh"
ernie_model = paddlenlp.transformers.ErnieModel.from_pretrained(MODEL_NAME)

tokenizer

类似于BERT,vocab中几个特殊符号如下:
 [PAD] 0:
 [CLS] 1:位于整个输入的首尾
 [SEP] 2:位于每个句子的句尾
 [MASK] 3
 [UNK] :表示unk_token,其不存在与vocab中,在每个task的配置文件中可以自定义,默认是[UNK]

对文本进行tokenizer处理

model_dir = 'C:\\Users\\cqf\\.paddlenlp\\models\\ernie-3.0-medium-zh' # 上一步下载模型时,默认下载到该地址
tokenizer = paddlenlp.transformers.ErnieTokenizer.from_pretrained(model_dir) # MODEL_NAME,第一次加载(本地没有模型)时可以直接指定模型名,会自动下载保存
encoded_text = tokenizer(text=["冬天来了,春天还会远吗?", '秋天来了,一群大雁往南飞。']) # text参数可以是字符串,也可以是多个字符串组成的列表
print(encoded_text) # 结果:{'input_ids': [[1, 196, 1296, 125, 61, 15, 4, 740, 125, 201, 32, 629, 1114, 12045, 2], [1, 1050, 125, 61, 15, 4, 7, 626, 19, 2665, 638, 219, 706, 12043, 2]], 'token_type_ids': [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]}

结果:

获取文本语义特征向量表示

# 将tokenizer的input_ids、token_type_ids转化为tensor
input_ids = paddle.to_tensor(encoded_text['input_ids']) # padding后作为输入
token_type_ids = paddle.to_tensor(encoded_text['token_type_ids'])# 将tensor形式的input_ids、token_type_ids输入到ERNIE模型,得到输出:
# sequence_output:每个输入token的语义特征表示,shape=(batch_size, seq_len, hidden_size)
# pooled_output:整个句子的语义特征表示,shape=(batch_size, hidden_size)
sequence_output, pooled_output = ernie_model(input_ids, token_type_ids)print("Token wise output: {}, Pooled output: {}".format(sequence_output.shape, pooled_output.shape)) # Token wise output: [2, 15, 768], Pooled output: [2, 768]
print(sequence_output, pooled_output)

特征向量结果:

中文官方说明文档:https://paddlenlp.readthedocs.io/zh/latest/get_started/quick_start.html
文本分类模型(ErnieForSequenceClassification)实操文档:https://aistudio.baidu.com/aistudio/projectdetail/1294333

ERNIEKIT实践

需要已经安装了paddlepaddle、paddlenlp。

安装、配置nltk

① 安装nltk模块(在conda环境中):

conda install nltk

② 下载nltk数据包:nltk_data
直接在网上手动下载(我的网盘中):
链接:https://pan.baidu.com/s/1VrWiG3orbQanK917540rxw
提取码:1xpu
解压后(保证文件夹名为nltk_data)保存到:C:\Users[你的用户名]\AppData\Roaming
③ 进入python,下载数据包:

import nltk
from nltk.book import *

结果显示如下,nltk安装成功。

下载ERNIEKIT源码

GitHub下载地址:https://github.com/PaddlePaddle/ERNIE
也可以使用git命令下载:

git clone https://github.com/PaddlePaddle/ERNIE.git

运行ERNIEKIT

按照GitHub上步骤一步步执行。
注意:(目前测试了 text_classification 和 text_matching 两个任务,text_classification 会报UnicodeDecodeError错误)
(1)下载的模型会保存在:.\ERNIE-ernie-kit-open-v1.0\applications\models_hub
(2)各个task中example文件下是对应的配置文件(_infer后缀的是预测配置文件,不带的为训练配置文件),根据自身设备情况,需要修改对应的 cpu 或者 gpu
  如:“PADDLE_PLACE_TYPE”: “cpu”
(3)训练时,读取数据过程会报UnicodeDecodeError错误,需要修改
① 需修改文件:erniekit\data\data_set_reader\basic_dataset_reader.py
 修改位置,第120行:with open(file_path, "r+") as f:
 修改后代码:with open(file_path, "r+", encoding='utf-8') as f:
② 需修改文件:erniekit\data\vocabulary.py
 修改位置,第30行:file_vocab = open(self.vocab_path)
 修改后代码:file_vocab = open(self.vocab_path, 'r+', encoding='utf-8')
(4)预测时,配置文件中读取的模型文件路径(“inference_model_path”)需要根据自身情况进行修改:
  如:“inference_model_path”: “./output/cls_ernie_3.0_base_fc_ch_dy/save_inference_model/inference_step_251/”

paddlenlp调用ERNIE、使用ERNIEKIT相关推荐

  1. 试试在transformers中调用ERNIE

    ERNIE是什么 ERNIE发展路径 文心大模型ERNIE是百度发布的产业级知识增强大模型,涵盖了NLP大模型和跨模态大模型.在中文场景下,ERNIE有明显的优势,目前已经发布了一系列模型,包括ERN ...

  2. 【PaddleNLP实战】对话意图分类方案

    基于预训练模型ERNIE 3.0 和CrossWOZ数据的意图识别分类任务 AI Studio平台默认安装了Paddle和PaddleNLP,并定期更新版本. 如需手动更新Paddle,可参考飞桨安装 ...

  3. ERNIE源码学习与实践:为超越ChatGPT打下技术基础!

    ★★★ 本文源自AlStudio社区精品项目,[点击此处]查看更多精品内容 >>> ERNIE学习与实践:为超越ChatGPT打下技术基础! ERNIE是BERT相爱相杀的好基友,由 ...

  4. 文心ERNIE源码学习与实践:为超越ChatGPT打下技术基础!

    ERNIE学习与实践:为超越ChatGPT打下技术基础! ERNIE是BERT相爱相杀的好基友,由ERNIE发展起来的文心大模型,是GPT3.0的强劲竞争对手,未来还会挑战ChatGPT的江湖地位! ...

  5. 【Paddle打比赛】基于PaddleNLP法研杯2022 -犯罪事实实体识别

    一.第五届中国法研杯 LAIC2022 司法人工智能挑战赛 [犯罪事实实体识别] 比赛地址: http://data.court.gov.cn/pages/laic.html 1.任务介绍 本赛道由中 ...

  6. 基于ERNIR3.0文本分类:(KUAKE-QIC)意图识别多分类(单标签)

    PaddleNLP基于ERNIR3.0文本分类以中医疗搜索检索词意图分类(KUAKE-QIC)为例[多分类(单标签)] 0.前言:文本分类任务介绍 文本分类任务是自然语言处理中最常见的任务,文本分类任 ...

  7. 2022年iFLYTEKA.I.开发者大赛疫情微博情绪识别挑战赛

    自然语言技术 零基础入门NLP - 新闻文本分类 基于word2vec的word相似度 疫情微博情绪识别挑战赛 自然语言技术 背景 一.赛事任务 二.使用步骤 1.README 2.数据下载 3.模型 ...

  8. 基于Ernie-3.0 CAIL2019法研杯要素识别多标签分类任务

    相关项目: Paddlenlp之UIE模型实战实体抽取任务[打车数据.快递单] Paddlenlp之UIE分类模型[以情感倾向分析新闻分类为例]含智能标注方案) 应用实践:分类模型大集成者[Paddl ...

  9. 『NLP经典项目集』06: 使用预训练模型ERNIE-GEN自动写诗

    使用PaddleNLP预训练模型ERNIE-GEN生成诗歌 诗歌,是中国文化的瑰宝,它饱含作者的思想感情与丰富的想象,语言凝练而形象性强,具有鲜明的节奏,和谐的音韵,富于音乐美.诗歌语句一般分行排列, ...

最新文章

  1. Subsonic设置--新手上路
  2. 【iCore3 双核心板】例程二十一:LAN_TCPS实验——以太网数据传输
  3. [转载] 英语科技论文写作——Difference between APAMLA
  4. Linux中的Screen命令使用技巧详解
  5. 串口接收标志位语句_如何获取串口的发送和接收的标志位?
  6. 触发器初接触-同步两个表的指定字段
  7. c++Numerical string sort数字字符串排序的实现算法(附完整源码)
  8. 经典C语言程序100例之五零
  9. Firefox UI已迁移至Web Components
  10. ModelCoder中的代数环问题
  11. DBUtils结果集处理
  12. 优秀Python学习资源收集汇总
  13. MySQL_DBA整理
  14. 未解决:fatal error: wasm.h: 没有那个文件或目录 #include <wasm.h>
  15. java 浏览器 爬虫_[Java教程]在浏览器客户端进行爬虫开发
  16. 帆软报表更新到服务器控件展示不出来_帆软报表问题汇总
  17. 服务器运行速度测试方法,服务器如何测试运行速度
  18. 解决MySQL5.7在MAC下登录ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  19. Hbase_Hbase 中 bloom filter 的设计与概念
  20. Chrome谷歌浏览器的快捷键:

热门文章

  1. 商用密码应用与安全性评估之(二)商用密码管理法律法规
  2. 使用BURP时,ca证书已经安装,谷歌浏览器总是提示“您的连接不是私密连接”或者是设置一些正常,就是抓不到数据包,网页可以正常打开,BURP拦截不到数据包。火狐浏览器一切正常。
  3. 特朗普荣获医学教育奖!2020年搞笑诺贝尔奖出炉,还有有味道的一系列研究......
  4. go juju/ratelimit 简单使用
  5. TP6 TP5 Db‘ not found
  6. 如何将英文文献完整翻译?公式都可以快速完整插入,比淘宝上的机翻要强一百倍!
  7. 算法练习——判断链表是否有环 leetcode.141 python
  8. 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——1.3 将下载的MIDI歌曲制作成MIDI音乐伴奏...
  9. 转:静态网和动态网的区别
  10. 《人工智能》机器学习 - 第5章 逻辑回归(二 二元逻辑回归实战)