NLP学习笔记(七) BERT简明介绍 上

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
简介: NLP学习笔记(七) BERT简明介绍

前言


大家好,我是半虹,这篇文章来讲(Bidirectional Encoder Representations from Transformers)


目录


0  概述

1  模型架构

2  模型输入

3  预训练和微调


正文


0  概述


从某种程度上来说,深度学习至关重要的一环就是表征学习,也就是学习如何得到数据的向量表示


对于自然语言领域,一个典型的场景是学习文本的向量表示,关于这一点,前人已经做了很多探索



从一开始的 one-hot,到后来的 word2vec ,然后到 ELMo ,最后到现在的 BERT 及其众多变种


这些技术的发展代表着自然语言表征学习的历史进程,为各项自然语言处理任务提供了有力的支撑



在这里,我们不会展开说每种技术的细节以及它们之间的发展关系,这些内容会在之后有一篇文章单独介绍


现在大家只需要清楚,本文介绍的 BERT \text{BERT}BERT 本质上就是一个语言表征模型,用来获取文本向量表示


1  模型架构


事实上,BERT 的模型架构非常简单,就是 Transformer 的编码器,具体的结构如下图所示


编码器由若干个编码层堆叠而成,而且模型中上一个编码层的输出会作为下一个编码层的输入


编码层包括多头注意力机制和前馈神经网络两个子模块,每个子模块后有残差连接和层正则化


由于我们在上一篇文章中已经非常详细介绍过模型细节,所以这里就不再重复

九九九.png

BERT 有两个版本,它们的架构是一样的,不同之处仅在于超参,具体的区别如下 :


BERT-BASE  :编码层数量是 12,多头注意力头数是 12,隐藏层维度是 768  ,总参数量是 110M

BERT-LARGE:编码层数量是 24,多头注意力头数是 16,隐藏层维度是 1024,总参数量是 340M


2  模型输入


首先明确一件事情, BERT 这个模型的输入输出究竟是啥


给定一段文本序列, BERT 的目标是得到序列中每个词元的向量表示



然而,计算机是无法直接识别文本的,我们需要先将其转化成数字表示,这样才能够作为模型的输入


通常,只需要将输入文本经过嵌入层,得到对应每个词元的可学习向量,然后通过数据进行训练即可

目录.png

除了词元本身之外,模型还需要词元的位置信息以及用于区分不同句子的分割信息

这些都可以通过添加不同的嵌入层解决,最后同一词元的各种嵌入会以按元素相加的方式来进行融合

零零.png

这里注意,对于原始输入文本,模型会在其中插入一些特殊标记后才将其送进嵌入层,特殊标记如下:


[CLS]:将该标记插入到文本开头,当模型训练完后,该标记的向量表示可表征整段文本的语义

[SEP]:当文本中包含两个句子时,将该标记插入到两个句子中间,可起到相当于分隔符的作用

[PAD]:将该标记插入到文本末尾,使得同一批量里文本长度相同,要注意该标记可以多次插入

这样说可能还不是很清晰,下面看一个实际的例子


有.png


最后再来对比一下 Transformer 和 BERT 两个模型间输入表示的差异


Transformer的输入表示由词元表示、位置表示相加得到


BERT的输入表示由词元表示、位置表示、分割表示相加得到


Transformer 的位置表示不需要学习,能够直接计算得到


BERT 的位置表示由嵌入层中的可学习向量经过数据训练得到

目录
相关文章
|
12月前
|
机器学习/深度学习 自然语言处理 数据可视化
掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(1)
掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(1)
151 0
|
12月前
|
人工智能 自然语言处理 机器人
掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(2)
掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(2)
116 0
|
2月前
|
机器学习/深度学习 存储 自然语言处理
【NLP-新闻文本分类】3 Bert模型的对抗训练
详细介绍了使用BERT模型进行新闻文本分类的过程,包括数据集预处理、使用预处理数据训练BERT语料库、加载语料库和词典后用原始数据训练BERT模型,以及模型测试。
38 1
|
2月前
|
数据采集 机器学习/深度学习 存储
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–5 Bert 方案
在讯飞英文学术论文分类挑战赛中使用BERT模型进行文本分类的方法,包括数据预处理、模型微调技巧、长文本处理策略以及通过不同模型和数据增强技术提高准确率的过程。
29 0
|
4月前
|
自然语言处理 数据挖掘
【自然语言处理NLP】Bert中的特殊词元表示
【自然语言处理NLP】Bert中的特殊词元表示
57 3
|
4月前
|
机器学习/深度学习 自然语言处理 PyTorch
【自然语言处理NLP】Bert预训练模型、Bert上搭建CNN、LSTM模型的输入、输出详解
【自然语言处理NLP】Bert预训练模型、Bert上搭建CNN、LSTM模型的输入、输出详解
92 0
|
5月前
|
机器学习/深度学习 数据采集 人工智能
【NLP】Datawhale-AI夏令营Day3打卡:Bert模型
【NLP】Datawhale-AI夏令营Day3打卡:Bert模型
|
5月前
|
机器学习/深度学习 自然语言处理 数据格式
训练你自己的自然语言处理深度学习模型,Bert预训练模型下游任务训练:情感二分类
训练你自己的自然语言处理深度学习模型,Bert预训练模型下游任务训练:情感二分类
|
5月前
|
机器学习/深度学习 人工智能 开发工具
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
Hugging Face是一个机器学习(ML)和数据科学平台和社区,帮助用户构建、部署和训练机器学习模型。它提供基础设施,用于在实时应用中演示、运行和部署人工智能(AI)。用户还可以浏览其他用户上传的模型和数据集。Hugging Face通常被称为机器学习界的GitHub,因为它让开发人员公开分享和测试他们所训练的模型。 本次分享如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face。
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
|
5月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图 REV1
Bert Pytorch 源码分析:五、模型架构简图 REV1
69 0
下一篇
无影云桌面