【零基础-1】PaddlePaddle学习Bert

一、准备工作

Bert作为一个近几年兴起的深度学习模型框架,凭借其在多个数据集中state-of-the-art的表现,在自然语言处理(Natural Language Processing, NLP)和计算机视觉(Computer Vision, CV)声名鹊起。

BERT: Pre-training of Deep Bidirectional Transformers for Language Understandingicon-default.png?t=LA92https://arxiv.org/pdf/1810.04805.pdf飞浆(PaddlePaddle)是目前国内唯一自主研发、开源开放、功能完备的产业级深度学习平
台,集深度学习核心框架、基础模型库、端到端开发套件、工具组件和服务平台于一体。

飞桨PaddlePaddle-源于产业实践的开源深度学习平台icon-default.png?t=LA92https://www.paddlepaddle.org.cn/个人观点:学习一个算法、模型或框架,纯读论文多少有点纸上得来终觉浅的味道。

这里贴一个可以跑通的Bert项目,接下来将逐行分析该项目的代码,以理解Bert。

BERT系列-BERT模型的初步认识 - 飞桨AI Studio - 人工智能学习与实训社区BERT系列(1)-BERT模型的初步认识 - 飞桨AI Studio - 人工智能学习与实训社区https://aistudio.baidu.com/aistudio/projectdetail/1704137一般地,调用主流的库函数如numpy,将其报错信息或API百度一下就可以解决90%的问题,而一些目前较小众的如PaddlePaddle的paddlenlp,其相关信息很难在百度中查找得到,这时候就需要借助其官方文档。

欢迎使用PaddleNLP — PaddleNLP 文档icon-default.png?t=LA92https://paddlenlp.readthedocs.io/zh/latest/index.html

二、代码理解

Cell 1

导包

# 导入所需要的包
from functools import partial
import argparse
import os
import random
import time

import numpy as np
import paddle
import paddle.nn.functional as F

import paddlenlp as ppnlp
from paddlenlp.data import Stack, Tuple, Pad
from paddlenlp.datasets import load_dataset
from paddlenlp.transformers import LinearDecayWithWarmup

Cell 2

chnsenticorp是paddlenlp内置的一个中文数据集,全称ChnSentiCorp_htl_all,由谭松波在GitHub中开源。

7000 多条酒店评论数据,5000 多条正向评论,2000 多条负向评论icon-default.png?t=LA92https://github.com/SophonPlus/ChineseNlpCorpus/blob/master/datasets/ChnSentiCorp_htl_all/intro.ipynbload_dataset函数读取了chnsenticorp数据集,splits将其指定划分为训练集(train)、开发集(dev)和测试集(test),该函数的返回值为训练集(train_ds)、开发集(dev_ds)和测试集(test_ds)。

# 下载paddlenlp预置数据
train_ds, dev_ds, test_ds = load_dataset("chnsenticorp", splits=["train", "dev", "test"])
print('训练集规模:', len(train_ds))
print('开发集规模:', len(dev_ds))
print('测试集规模:', len(test_ds))

 打印三个集合的规模,观察输出结果可以发现,训练集、开发集和测试集的比例为8:1:1。

猜你喜欢

转载自blog.csdn.net/qq_42276781/article/details/121488335