GPT-1 与 BERT 架构

GPT-1

架构特点

  1. 仅解码器架构:摈弃了传统transformer中的编码器层,而是直接用解码器和自注意力,同时抛弃掉了交叉多头注意力层,自注意力通过mask来完成计算。
  2. 注意力块添加到12个,Attention的输出维数为762维,FeedForward的升维维数增加到2048维。总参数量达1.5亿(0.15B)。
  3. 可学习的位置编码:位置编码不再使用固定的公式计算,而是作为神经网络参数的一部分进行学习。

训练过程

无监督预训练

给定一个句子,无监督预训练做的就是根据之前的token预测下一个token,每个batch里面包含的是该句子的前若干个token组成的输入,(但是实际实现中不会真的去这样做切分,而是用注意力掩码来控制注意力的计算)。输出是对应的下一个token。

每一个token的注意力嵌入最后通过前馈网络都能生成下一个token的预测,最终根据每一个token预测计算交叉熵平均损失,从而得到这个输入的训练损失。

有监督微调

与预训练的方法类似,但是存在以下两个区别:

  • 训练数据的内容是人为标注的,符合人们对模型的工具定位,要求模型必须按用户的需求回答
  • 在计算损失部分,不会把prompt部分的自损失计算上,而只会计算人为标注的输出部分的每个token预测的损失平均值。

GPT-1的缺陷

  • GPT-1使用的Transformer Decoder是单向语言模型,提取信息的能力不如Bert,但生成文本的能力很强
  • GPT-1针对每一个下游任务都需要训练一个模型,工作量大

BERT

架构特点

  1. BERT编码器架构所以BERT丧失输出文本能力
  2. BERT输入进行嵌入除了常规嵌入位置编码BERT还会句子序列序列进行编码

此处我们可以看到两个特殊标识[CLS][SEP],它们没有自身语义[CLS]表示序列开头[SEP]表示句子结尾BERT输入只会1 - 2 序列

如果输入两个序列第二个序列段落编码1否则段落编码0.

序列编码示例

  1. <CLS> my dog is cute <SEP> --> 0 0 0 0 0 0
  2. <CLS> my dog is cute <SEP> he likes play ##ing <SEP> ---> 0 0 0 0 0 0 1 1 1 1 1

训练过程

BERT预训练过程包括两个任务

掩码语言模型MLM)

15% 概率随机句子某个token替换 [MASK] , 随后模型预测位置对应token什么这样可以模型更好捕捉语义

  • 存在问题模型过于关注[MASK]这个token但是下游任务并不会出现[MASK],所以可能出现过拟合现象
  • 解决方案选择token之后三种选择
    • 替换[MASK] token
    • 替换其他随机token
    • 不替换

由于模型不知道句子对应token是否token所以模型尝试根据句子语义找到token

邻接序列预测NSP)

输入两个序列模型判断两个序列是否语义相关联或者后面序列是否语料前面序列临近

  • 通过CLS向量信息进行二分类因为CLS本身没有语义信息内部信息只能句子整体信息

举例

Input1=[CLS] the man went to [MASK] store [SEP] he bought a gallon [MASK] milk [SEP]Label1=IsNextInput2=[CLS] the man [MASK] to the store [SEP] penguin [MASK] are flight ##less birds [SEP]Label2=NotNext

应用场景

句子分类
句子情感预测
语句问答
标注标注句子出现每一个token标签

缺陷

BERT失去了文本生成的能力,换来了更强的信息提取能力

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

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

相关文章

Day04_C语言基础数据结构重点复习笔记20250618

1.什么是计算机的大小端存储&#xff1f; 答&#xff1a;大端是数据的高位字节存储在低地址&#xff0c;低位字节存储在高地址&#xff0c;网络协议&#xff08;如TCP/IP&#xff09;通常采用大端序&#xff08;称为“网络字节序”&#xff09;。例如&#xff1a;32位整数 0x12…

基于OpenSSL实现AES-CBC 128算法的 SeedKey DLL的生成与使用

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

进程间通信、线程间通信

进程间通信、线程间通信 进程间通行&#xff08;Inter-Process Communication&#xff0c; IPC&#xff09;和线程间通信&#xff08;Thread Communication&#xff09;的方式不完全相同&#xff0c;因为进程和线程的运行环境和特性不同 进程和线程的本质区别 进程 进程是操…

【FPGA学习】FPGA入门学习即数字逻辑复习

前言&#xff1a;最近开始学习FPGA了&#xff0c;希望通过博客记录下每一次学习的过程&#xff0c;与大家共勉。 目录 一、组合逻辑电路的设计&#xff08;工程学习引入&#xff09; 二、3-8译码器设计、下载和功能演示&#xff08;在的8段数码管显示&#xff09; 2.1 Logs…

ffmpeg python rgba图片合成 4444格式mov视频,保留透明通道

def convert_pngs_to_mov(input_pattern, output_path, frame_rate30):"""将BGRA四通道PNG序列转换为ProRes 4444编码的MOV视频&#xff08;保留透明通道&#xff09;参数:input_pattern: PNG序列路径模式&#xff08;如&#xff1a;"/path/to/frames/fram…

Java 实现 PDF 转图片功能:实战教程 + 场景解析

作者:云起川南|专注 Java 实战与自动化集成 在 PDF 文档处理的各类业务场景中,“将 PDF 页面转为图片”是一个高频、刚需的功能,广泛应用于 预览展示、文件归档、图片加密水印、OCR 文本识别 等系统中。 本文将带你一步一步实战如何使用 Java 实现 PDF 转图片 功能,使用开…

面试题-有个对象key全部是string,值全部是number要定义他,不使用interface和type如何定义

在 TypeScript 里&#xff0c;若要定义一个键为string类型、值为number类型的对象&#xff0c;并且不使用interface和type&#xff0c;可以采用以下几种方式&#xff1a; 1. 内联类型注解&#xff08;Inline Type Annotation&#xff09; 直接在变量声明时使用索引签名进行类…

领域驱动设计(DDD)【3】之事件风暴

文章目录 说明一 事件风暴理论知识1.1 事件风暴的核心目标1.2事件风暴的关键步骤1.2.1 准备工作1.2.2 核心流程1.2.3 事件风暴的输出 1.3 事件风暴的优势1.4 常见问题Q1&#xff1a;事件风暴适合所有项目吗&#xff1f;Q2&#xff1a;事件风暴后如何落地&#xff1f;Q3&#xf…

Vue3中监听 Ref 类型的数字数组

在 Vue 3 中&#xff0c;监听一个 Ref 类型的数字数组&#xff08;如 ref<number[]>([])&#xff09;时&#xff0c;根据需求的不同&#xff0c;有几种监听方式&#xff1a; 1. 监听整个数组的引用变化 当整个数组被重新赋值时触发&#xff1a; typescript 复制 下载…

PoolThreadCache 类的结构和源码实现

PoolThreadCache 在 Netty 的内存池中扮演着线程本地缓存的角色。它的主要目的是减少线程在分配内存时对全局 PoolArena 的竞争&#xff0c;通过缓存一部分最近释放的内存块&#xff0c;使得同一线程后续申请相同规格的内存时能够快速获取&#xff0c;从而提高分配效率。 下面…

Linux中的阻塞信号与信号原理

在Linux操作系统中&#xff0c;信号&#xff08;Signal&#xff09;是进程间通信和进程控制的核心机制之一。信号是一种异步通知机制&#xff0c;可以向进程发送异步事件通知&#xff0c;以便进程能够处理系统级别的事件。本文将详细探讨Linux中的信号原理&#xff0c;重点讲解…

QT学习教程(三十五)

事件处理&#xff08;- Event Processingn&#xff09; 事件是视窗系统或者Qt 本身在各种不同的情况下产生的。当用户点击或者释放鼠标&#xff0c;键盘时&#xff0c;一个鼠标事件或者键盘事件就产生了。当窗口第一次显示时&#xff0c;一个绘制事件会产生告诉新可见的窗口绘…

【Dify 案例】【MCP实战】【三】【超级美食家】

接上次的超级助理,我们这一期给出一个超级美食家 首先:我的MCP要申请一个key ` 我们来看看这个MCP服务怎么使用呢。`https://modelscope.cn/mcp/servers/@worryzyy/howtocook-mcp插件里面需要配置 {"mcpServers":{"amap-amap-sse":{"url":&qu…

4.文件管理(文本、日志、Excel表)

目录 1.文本 2.日志 3.Excel表 1.文本 using System.Text;namespace (自己创建的一个类) {/// <summary>/// 配置文件*.ini读写器。/// </summary>public class IniFile{[System.Runtime.InteropServices.DllImport("kernel32")]private static ex…

Java 包装类详解

什么是包装类 Java包装类&#xff08;Wrapper Classes&#xff09;是将8种基本数据类型封装成对象的类&#xff0c;位于java.lang包中。每个基本数据类型都有对应的包装类&#xff1a; byte → Byteshort → Shortint → Integerlong → Longfloat → Floatdouble → Doublec…

阿里云ACP认证-数据仓库

数据仓库 Kappa架构&#xff1a;将实时和离线代码统一&#xff08;优化lambda架构&#xff09;&#xff0c;但是不好修正数据&#xff0c;开发周期长&#xff0c;成本浪费&#xff0c;对于历史数据的高吞吐量力不从心 原一代数据仓库&#xff1a; 离线&#xff1a;hivemaxcom…

WebRTC(五):TURN协议

TURN&#xff08;Traversal Using Relays around NAT&#xff09;协议是一个网络协议&#xff0c;旨在解决 NAT&#xff08;网络地址转换&#xff09;和防火墙 环境下的 UDP/TCP通信问题。它通常与 STUN 和 ICE 协议一起使用&#xff0c;广泛应用于 WebRTC、SIP 和视频会议等实…

Python 的内置函数 hasattr

Python 内建函数列表 > Python 的内置函数 hasattr Python 的内置函数 hasattr() 用于检查一个对象是否具有指定的属性或方法。该函数的语法为&#xff1a; hasattr(object, name)参数说明&#xff1a; object&#xff1a;要检查的对象&#xff0c;可以是任何 Python 对象…

docker使用技巧之把扩展卷命名变成有意义

背景 之前使用别人的镜像之后&#xff0c;启动docker后发出现了一堆看不懂名称的扩展卷 eg&#xff1a;集群查看 扩展卷查看 这个时候如果有很多集群需要清理扩展卷就很麻烦&#xff0c;不知道是哪个集群的 操作步骤 可以实现的分析&#xff1a;这个扩展卷的信息应该是和…

《博物通书》《博物新编》与满清历史篡改

《博物新编》作为近代西方科技输入中国的首部著作&#xff0c;其问世犹如一颗投入平静湖面的巨石&#xff0c;在 19 世纪中期的中国激起层层涟漪&#xff0c;对中国近代科学发展产生了多维度、深层次的影响。它不仅是知识传播的载体&#xff0c;更是推动中国科学从传统走向近代…