大语言模型-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

相关推荐
云-缩影39 分钟前
文生图技术落地:从广告到游戏,哪些场景真的能用
人工智能·游戏
冬奇Lab3 小时前
一天一个开源项目(第254篇):NVIDIA Auto Ontology —— 给数据 Agent 搭一层「可认证的语义层」,答不了就老实说答不了
人工智能
其实防守也摸鱼4 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
甲维斯4 小时前
Workbuddy+HY4 略超预期!
人工智能
天远API5 小时前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
朱涛的自习室5 小时前
212 个需求、22 万行代码:Agent 接管开源项目的 19 天
android·前端·人工智能
美林数据Tempodata5 小时前
高职大数据技术专业升级的六个落地样本:从产业链需求库到实训室数据链路
大数据·人工智能·数字化转型·产教融合·ai教育
美好世界5 小时前
OpenAI Codex 源码深度剖析(三):执行引擎与内核沙箱深度剖析
人工智能
敖老师5 小时前
Dify 接入高德地图 MCP:Agent 策略、新旧节点与配置全流程避坑指南
人工智能