孤岛危机3收集品位置升级最大值的五角星不出现怎么办~

基于预训练模型 ERNIE 实现语义匹配
本案例介绍 NLP 最基本的任务类型之一 —— 文本语义匹配,并且基于 PaddleNLP 使用百度开源的预训练模型 ERNIE1.0 为基础训练效果优异的语义匹配模型,来判断 2 个文本语义是否相同。
文本语义匹配任务,简单来说就是给定两段文本的相,让模型来判断两段文本是不是语义相似。
在本案例中以权威的语义匹配数据集 LCQMC 为例,LCQMC 数据集是基于百度知道相似问题推荐构造的通问句语义匹配数据集。训练集中的每两段文本都会被标记为 1(语义相似) 或者 0(语义不相似)
例如百度知道场景下,用户搜索一个问题,模型会计算这个问题与候选问题是否语义相似,语义匹配模型会找出与问题语义相似的候选问题返回给用户,避免用户重复提问。例如,当某用户在搜索引擎中搜索 “深度学习的教材有哪些?”,模型就自动找到了一些语义相似的问题展现给用户: 
介绍如何准备数据,基于 ERNIE1.0 模型进行匹配网络大家,然后快速进行语义匹配模型的训练、评估和预测。
为了训练匹配模型,一般需要准备三个数据集:训练集 train.tsv、验证集dev.tsv、测试集test.tsv。此案例我们使用 PaddleNLP 内置的语义数据集 Lcqmc 来进行训练、评估、预测。
训练集: 用来训练模型参数的数据集,模型直接根据训练集来调整自身参数以获得更好的分类效果。
验证集: 用于在训练过程中检验模型的状态,收敛情况。验证集通常用于调整超参数,根据几组模型验证集上的表现决定哪组超参数拥有最好的性能。
测试集: 用来计算模型的各项评估指标,验证模型泛化能力。
Lcqmc 数据集是公开的语义匹配权威数据集。PaddleNLP 已经内置该数据集,一键即可加载。
# 正式开始实验之前首先通过如下命令安装最新版本的 paddlenlp
# 一键加载 Lcqmc 的训练集、验证集、测试集
# 输出训练集的前 20 条样本
通过 paddlenlp 加载进来的 Lcqmc 数据集是原始的明文数据集,这部分我们来实现组 batch、tokenize 等预处理逻辑,将原始明文数据转换成网络训练的输入数据
# 后续样本转换函数基于 tokenizer 对文本进行切分
 # 在预测或者评估阶段,不返回 label 字段
### 对训练集的第 1 条数据进行转换
# 为了后续方便使用,我们给 convert_example 赋予一些默认参数
# 训练集的样本转换函数
上一小节,我们完成了对单条样本的转换,本节我们需要将样本组合成 Batch 数据,对于不等长的数据还需要进行 Padding 操作,便于 GPU 训练。
paddlenlp.data.Pad 将长度不同的多个句子padding到统一长度,取N个输入数据中的最大长度
# 因此针对这 3 个字段需要分别定义 3 个组 batch 操作
# 定义分布式 Sampler: 自动对训练数据进行切分,支持多卡并行训练
# 针对验证集数据加载,我们使用单卡进行评估,所以采用 paddle.io.BatchSampler 即可
自从 201810 月以来,NLP 个领域的任务都通过 Pretrain + Finetune 的模式相比传统 DNN 方法在效果上取得了显著的提升,本节我们以百度开源的预训练模型 ERNIE1.0 为基础模型,在此之上构建 Point-wise 语义匹配网络。
首先我们来定义网络结构:
 
 # 语义匹配任务: 相似、不相似 2 分类任务
 # 返回的 cls_embedding 就表示这两段文本经过模型的计算之后而得到的语义表示向量
 # 基于文本对的语义表示向量进行 2 分类任务
# 采用交叉熵 损失函数
# 评估的时候采用准确率指标
# 因为训练过程中同时要在验证集、测试集上进行模型评估,因此我们先定义评估函数
# 接下来,开始正式训练模型
 
 # 每间隔 100 step 在验证集和测试集上进行评估
 
# 训练结束后,存储模型参数
模型训练过程中会输出如下日志:
基于默认参数配置进行单卡训练大概要持续 4 个小时左右,会训练完成 3 个 Epoch, 模型最终的收敛指标结果如下:
可以看到: 我们基于 PaddleNLP ,利用 ERNIE1.0 预训练模型使用非常简洁的代码,就在权威语义匹配数据集上取得了很不错的效果.
接下来我们使用已经训练好的语义匹配模型对一些预测数据进行预测。待预测数据为每行都是文本对的 tsv 文件,我们使用 Lcqmc 数据集的测试集的文本 Pair 作为我们的待预测数据,存储在 predict.tsv。
下载我们已经训练好的语义匹配模型, 并解压
# 下载我们基于 Lcqmc 事先训练好的语义匹配模型并解压
# 预测数据由 2 列文本构成,tab 分隔
谁有狂三这张高清的 这张高清图,谁有
英雄联盟什么英雄最好 英雄联盟最好英雄是什么
这是什么意思,被蹭网吗 我也是醉了,这是什么意思
{'query': '请问晶达电子厂现在的工资待遇怎么样要求有哪些', 'title': '三星电子厂工资待遇怎么样啊'}
 
 # 预测阶段打开 eval 模式,模型中的 dropout 等操作会关掉
 
# 预测数据的转换函数
加载已训练好的模型参数
# 根据预测概率获取预测 label

我要回帖

更多关于 孤岛危机3收集品位置 的文章

 

随机推荐