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

[CLS] 文本 [SEP]

Bert模型输出的[CLS]标记的向量,表示整个文本序列的语义信息。
文本分类微调需要新增一个全连接层,将[CLS]标记的向量输入到全连接层,输出各类别的概率分布。

2、问答任务

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

[CLS] 上下文 [SEP] 问题 [SEP]

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

3、信息抽取

对句子中语义连贯的词汇或短语逐个字的标注。
Bert模型的最后一层输出每个token的表示向量。通常在Bert模型顶部添加一个分类器,用于预测每个token是否是命名实体的token。例如:TPLinker

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络知识-面试点1

1. 三握四挥 定义: 在计算机网络中,特别是TCP/IP协议中,“三握”指的是三次握手(Three-way Handshake),而“四挥”则指的是四次挥手(Four-way Handshake)。这两个过程分别用于TCP连接…

LangChain的使用详解

一、 概念介绍 1.1 Langchain 是什么? 官方定义是:LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序,它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供…

Qt实战:专栏内容介绍及目录

1、专栏介绍 Qt相比Visual Studio (VS) 的优势主要体现在跨平台能力、‌丰富的功能、‌高性能、‌现代UI设计、‌社区支持和企业支持等方面。‌ 跨平台能力:‌Qt 允许应用程序在多个操作系统上编译和运行,‌无需为每个平台编写特定的代码,‌…

构建高效园区导览系统:基于3DGIS与物联网技术的实现方案

园区导航的挑战与机遇 在现代化的大型园区中,随着面积的不断扩张和布局的日益复杂,传统的纸质地图已难以满足日益增长的导航需求。每栋楼、每层楼都有着不同的办公室,不同的业务。这种低效的寻路过程不仅影响了客户的来访体验,也…

SSD基本架构与工作原理

SSD的核心由一个或多核心的CPU控制器、DRAM缓存以及多个NAND闪存芯片组成。CPU控制器负责管理所有读写操作,并通过DRAM缓存存储映射表等元数据,以加速寻址过程。 NAND闪存则是数据存储的实际介质,其组织结构从大到小依次为通道(包…

MySQL_JDBC

目录 一、JDBC常用的接口和类 1.1 数据库连接 Connection 1.2 Statement 对象 二、JDBC的使用 总结 【Java 的数据库编程】 JDBC 即 Java Database Connectivity (Java数据库连接),是一种用于执行 SQL 语句的 Java API。这个 API 由 java.sql.*,javax.sql.* …

数据结构(Java):七大排序算法【详解】

目录 1、排序的概念 1.1 排序 1.2 排序的稳定性 1.3 内部排序&外部排序 1.4 各排序算法总结对比 2、 插入排序 2.1 🌸直接插入排序 2.2 🌸希尔排序 3、 选择排序 3.1 🌸直接选择排序 3.2 直接选择排序优化 3.3 🌸…

如何给7Z分卷文件设置密码?简单几步给文件加上安全锁

在压缩7Z文件的时候,如果文件比较大,很多小伙伴都会把文件压缩成7Z分卷文件,那想要保护7Z分卷文件,要如何设置密码呢?不清楚的小伙伴,一起来看看吧! 我们可以使用7-Zip解压缩文件,在…

qt初入门9:qt记录日志的方式,日志库了解练习(qInstallMessageHandler,qslog, log4qt)

项目中用到qt,考虑有需要用到去记录日志,结合网络,整理一下,做记录。 简单了解后,qt实现日志模块思考: 1:借助qt自带的qInstallMessageHandler重定向到需要的目的地。 2:自己封装一…

openmv学习笔记(24电赛备赛笔记)

#openmv简介 openmv一种小型,可编程机器视觉摄像头,设计应用嵌入式应用和计算边缘,是图传模块,或者认为是一种,具有图像处理功能的单片机,提供多种接口(I2C SPI UART CAN ADC DAC &#xff0…

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(三)基变换与坐标变换;微分方程;李群和李代数;雅可比矩阵

一、基变换与坐标变换 字小,事不小。 因为第一反应:坐标咋变,坐标轴就咋变呀。事实却与我们想象的相反。这俩互为逆矩阵。 第一次读没有读明白,后面到事上才明白。 起因是多传感器标定:多传感器,就代表了多个坐标系,多个基底。激光雷达和imu标定。这个标定程序,网上,…

Bootstrap5 Navbar多级下拉框

实现目标&#xff1a; 1、访问 Bootstrap5-navbar 2、修改dropdown为多级 <!DOCTYPE HTML> <html lang"en-US"> <head><meta charset"UTF-8"><title></title><link rel"stylesheet" href"https…

(7) cmake 编译C++程序(二)

文章目录 概要整体代码结构整体代码小结 概要 在ubuntu下&#xff0c;通过cmake编译一个稍微复杂的管理程序 整体代码结构 整体代码 boss.cpp #include "boss.h"Boss::Boss(int id, string name, int dId) {this->Id id;this->Name name;this->DeptId …

05 HTTP Tomcat Servlet

文章目录 HTTP1、简介2、请求数据格式3、响应数据格式 Tomcat1、简介2、基本使用3、Maven创建Web项目4、IDEA使用Tomcat Servlet1、简介2、方法介绍3、体系结构4、urlPattern配置5、XML配置 HTTP 1、简介 HTTP概念 HyperText Transfer Protocol&#xff0c;超文本传输协议&am…

鸿蒙 动态共享包HSP的创建和引用

1.什么是动态共享包HSP HSP&#xff08;Harmony Shared Package&#xff09;是动态共享包&#xff0c;可以包含代码、C库、资源和配置文件&#xff0c;通过HSP可以实现代码和资源的共享。HSP不支持独立发布&#xff0c;而是跟随其宿主应用的APP包一起发布&#xff0c;与宿主应…

【Django5】模板引擎

系列文章目录 第一章 Django使用的基础知识 第二章 setting.py文件的配置 第三章 路由的定义与使用 第四章 视图的定义与使用 第五章 二进制文件下载响应 第六章 Http请求&HttpRequest请求类 第七章 会话管理&#xff08;Cookies&Session&#xff09; 第八章 文件上传…

redis的学习(三):Java客户端jedis的例子和SpringDataRedis的简介

简介 Java客户端jedis的例子和SpringDataRedis的简介## Java客户端 常用的Java客户端有jedis&#xff0c;lettuce&#xff0c;redission。 优缺点&#xff1a; jedis简单实用&#xff0c;api名是redis的命令&#xff0c;学习成本低。不过jedis实例的线程是不安全的&#xff…

VideoAgent: Long-form Video Understanding with Large Language Model as Agent

VideoAgent: Long-form Video Understanding with Large Language Model as Agent 基本信息 博客贡献人 燕青 作者 Xiaohan Wang, Yuhui Zhang, et al. 标签 Large Language Model Agent, Long-form Video Understanding, Vision-Language Foundation Models 摘要 长视…

Android中systrace配置及注意问题

Android中systrace配置及注意问题 systrace配置的官方文档地址如下&#xff1a;优化启动时间 Systrace systrace 允许在启动期间收集内核和 Android 跟踪记录。systrace 的可视化可以帮助分析启动过程中的具体问题。&#xff08;不过&#xff0c;如果要查看整个启动过程中的平…

2024.7.22 作业

1.将双向链表和循环链表自己实现一遍&#xff0c;至少要实现创建、增、删、改、查、销毁工作 循环链表 looplinklist.h #ifndef LOOPLINKLIST_H #define LOOPLINKLIST_H#include <myhead.h>typedef int datatype;typedef struct Node {union {int len;datatype data;}…