大语言模型-Bert-Bidirectional Encoder Representation from Transformers

一、背景信息:

Bert是2018年10月由Google AI研究院提出的一种预训练模型。

主要用于自然语言处理(NLP)任务,特别是机器阅读理、文本分类、序列标注等任务。

BERT的网络架构使用的是多层Transformer结构,有效的解决了长期依赖问题。

二、整体结构:

BERT由多个Transformer Encoder一层一层地堆叠起来。

BERT全名叫做Bidirectional Encoder Representation from Transformers,下图中用Trm表示Transformer中的Encoder模块。Encoder中在编码一个token的时候会同时利用了其上下文的token,即为Bidirectional双向的体现。

三、Bert 的输入

Bert 的输入向量,由x的三种向量求和而成,三种向量分别为x的词向量、句子分类向量、位置向量。

其中
词向量Token Embeddings ,第一个词是[CLS]标志,通常会用在分类任务中;[SEP]标志分句符号,用于断开输入语料中的两个句子或者表示句子的结束。
句子分类向量Segment Embeddings ,用来区别两种句子,有两种情况;问答等任务全部所有token全为0,其余任务第一句句所有token为0第二句所有为1。
位置向量Position Embeddings ,这里的位置向量为可学习的绝对位置编码,优点是可以学习到不同位置的不同编码,而不是固定的编码。因为位置编码的维度是固定的,需要设定最大长度,不能预测超过长度的句子。

四、Bert训练

BERT的训练包含预训练fine-tune两个阶段。

Bert预训练:

Bert预训练(Pre-training)任务是由MLM和NSP两个自监督任务组成。

MLM:

MLM随机在输入语料上Mask掉一些词,并通过上下文预测该词。其中15%的WordPiece Token会被随机Mask掉。

  • 80%的时候会直接替换为[Mask]
  • 10%的时候将其替换为其它任意单词
  • 10%的时候会保留原始Token。
bash 复制代码
1、若句子中的某个Token 100%都会被mask掉,那么在fine-tuning的时候模型就会有一些没有见过的单词。
2、加入随机Token的原因是因为Transformer要保持对每个输入token的分布式表征。
3、因为一个单词被随机替换掉的概率只有15%*10% =1.5%,单词带来的负面影响可以忽略不计。
4、每次只预测15%的单词,因此模型收敛的比较慢。
# 优点:
# 10%的概率用任意词替换赋予Bert一定文本纠错能力;
# 10%的概率保留原始Token,缓解了finetune时与预训练时的输入不匹配。
# 缺点:
# Mask汉字割裂了连续汉字之间的相关性
NSP:

Next Sentence Prediction(NSP)任务判断句子B是否是句子A的下文。如果是的话输出'IsNext',否则输出'NotNext'。

Bert的微调

基于Bert模型的微调应用近些年来,已经越来越丰富了,下面介绍三种具有代表性的简单版本的微调应用。当然如今的bert微调应用是不仅仅只有下面这零星的几个例子。

1、单文本分类

在需要进行分类的文本的开头和结尾分别加上CLS和SEP标记

bash 复制代码
[CLS] 文本 [SEP]

Bert模型输出的[CLS]标记的向量,表示整个文本序列的语义信息。

文本分类微调需要新增一个全连接层,将[CLS]标记的向量输入到全连接层,输出各类别的概率分布。

2、问答任务

从给定的上下文中找到问题的答案。输入包含上下文和问题两部分

bash 复制代码
[CLS] 上下文 [SEP] 问题 [SEP]

Bert模型的顶部添加两个分类层,分别用于预测答案的起始位置和终止位置。

3、信息抽取

对句子中语义连贯的词汇或短语逐个字的标注。

Bert模型的最后一层输出每个token的表示向量。通常在Bert模型顶部添加一个分类器,用于预测每个token是否是命名实体的token。例如:TPLinker

Reference

1.Attention Is All You Need

2.BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

相关推荐
小于小于大橙子2 小时前
视觉SLAM数学基础
人工智能·数码相机·自动化·自动驾驶·几何学
封步宇AIGC4 小时前
量化交易系统开发-实时行情自动化交易-3.4.2.Okex行情交易数据
人工智能·python·机器学习·数据挖掘
封步宇AIGC4 小时前
量化交易系统开发-实时行情自动化交易-2.技术栈
人工智能·python·机器学习·数据挖掘
陌上阳光4 小时前
动手学深度学习68 Transformer
人工智能·深度学习·transformer
OpenI启智社区4 小时前
共筑开源技术新篇章 | 2024 CCF中国开源大会盛大开幕
人工智能·开源·ccf中国开源大会·大湾区
AI服务老曹4 小时前
建立更及时、更有效的安全生产优化提升策略的智慧油站开源了
大数据·人工智能·物联网·开源·音视频
YRr YRr4 小时前
PyTorch:torchvision中的dataset的使用
人工智能
love_and_hope5 小时前
Pytorch学习--神经网络--完整的模型训练套路
人工智能·pytorch·python·深度学习·神经网络·学习
思通数据5 小时前
AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
大数据·人工智能·目标检测·计算机视觉·自然语言处理·数据挖掘·ocr
兔老大的胡萝卜5 小时前
关于 3D Engine Design for Virtual Globes(三维数字地球引擎设计)
人工智能·3d