经典大语言模型解读(2):生成式预训练的先锋GPT-1

news2024/11/10 13:35:47

论文地址:Improving Language Understanding by Generative Pre-Training

概述

现实世界中包含了大量的文本语料数据,然而,绝大多数语料都是无标签的。

为了充分利用这些无标签语料库,GPT1.0提出直接利用这些未标记的语料来进行生成式预训练,然后对每个特定任务进行判别式微调(在标注数据上),从而显著提升在这些任务上的性能。

文中涉及的主要NLP任务包括:

  • Textual Entailment:文本蕴含,即给定一个前提文本(premise),根据这个前提文本去推断假说文本(hypothesis)与前提文本之间的关系,关系包括蕴含和矛盾两种。蕴含关系指能从前提文本推断出假说文本,而矛盾关系则指前提文本与假锁文本相矛盾。

  • Question Answer:理解用户提出的问题并从文本或知识库中找到准确的答案。

  • Semantic Similarity Assessment:计算文本之间的相似度。

  • Document Classification:文本分类任务。

下面将对GPT-1的框架进行详细的介绍。

GPT框架

GPT-1遵循了Transformer架构,但模型仅基于Transformer的解码器构建

模型的训练流程分为两个阶段:预训练和微调。

无监督预训练

给定无监督token语料库 U = { u 1 , … , u n } \mathcal{U}=\left\{u_1, \ldots, u_n\right\} U={u1,,un},模型使用标准的语言建模目标来最大化如下似然函数:
L 1 ( U ) = ∑ i log ⁡ P ( u i ∣ u i − k , … , u i − 1 ; Θ ) L_1(\mathcal{U})=\sum_i \log P\left(u_i \mid u_{i-k}, \ldots, u_{i-1} ; \Theta\right) L1(U)=ilogP(uiuik,,ui1;Θ)

其中 k k k表示上下文窗口大小,条件概率 P P P通过具有参数 Θ \Theta Θ的神经网络来建模。

想了解最大似然估计的可以参考这篇文章:一文搞懂极大似然估计

在本文中,神经网络采用的是多层Transformer编码器,该模型对输入的上下文词馈送到神经网络中,然后通过线性层生成目标词的输出分布:
h 0 = U W e + W p h l = transformer_block ⁡ ( h l − 1 ) ∀ i ∈ [ 1 , n ] P ( u ) = softmax ⁡ ( h n W e T ) \begin{aligned} h_0 & =U W_e+W_p \\ h_l & =\operatorname{transformer\_ block}\left(h_{l-1}\right) \forall i \in[1, n] \\ P(u) & =\operatorname{softmax}\left(h_n W_e^T\right) \end{aligned} h0hlP(u)=UWe+Wp=transformer_block(hl1)i[1,n]=softmax(hnWeT)

其中 U = ( u − k , … , u − 1 ) U=\left(u_{-k}, \ldots, u_{-1}\right) U=(uk,,u1)表示词的上下文向量, n n n是层数, W e W_e We是词嵌入矩阵, W p W_p Wp是位置嵌入矩阵,两者都是可学习的。

有监督微调

在完成预训练后,GPT-1根据有监督的目标任务对预训练模型的参数进行调整。

假设存在带标签的数据集 C \mathcal{C} C,其中每个实例由一个输入词序列 ( x 1 , … , x m ) (x^1, \ldots, x^m) (x1,,xm)和相应的标签 y y y组成。将输入传入预训练模型来获取输入表示 h l m h_l^m hlm,然后将其输入一个额外的线性输出层预测 y y y W y W_y Wy表示该层的可学习参数:
P ( y ∣ x 1 , … , x m ) = softmax ⁡ ( h l m W y ) P\left(y \mid x^1, \ldots, x^m\right)=\operatorname{softmax}\left(h_l^m W_y\right) P(yx1,,xm)=softmax(hlmWy)

在学习的过程中需要最大化如下目标:
L 2 ( C ) = ∑ ( x , y ) log ⁡ P ( y ∣ x 1 , … , x m ) L_2(\mathcal{C})=\sum_{(x, y)} \log P\left(y \mid x^1, \ldots, x^m\right) L2(C)=(x,y)logP(yx1,,xm)

值得注意的是,作者发现将语言建模作为微调的辅助目标有助于学习,因为这可以改善有监督模型的泛化能力和加速收敛。于是,可以得到如下的优化目标:
L 3 ( C ) = L 2 ( C ) + λ ∗ L 1 ( C ) L_3(\mathcal{C})=L_2(\mathcal{C})+\lambda * L_1(\mathcal{C}) L3(C)=L2(C)+λL1(C)

其中 λ \lambda λ为权重。

可以看出,在微调的过程中,唯一需要学习的参数为 W y W_y Wy,这极大地降低了模型的训练成本,同时也能获取到足够好的效果。

特定任务的输入转换

由于NLP任务的广泛性,各类任务的输入差异显著。像文本分类之类的任务可以像上面描述的那样对模型进行微调,而对于像问答和文本蕴含之类的任务,则需要对输入进行修改,才能适配预训练模型进行有效微调。

下图中对GPT-1中的输入转换提供了一个可视化说明。所有转换都包括添加随机初始化的开始和结束标记 ( < s > , < e > ) (<s>,<e>) (<s>,<e>)

Input Transformation

Textual entailment

对于蕴含任务,用分隔符将前提和假设连接起来,中间用分隔符$($)$标记。

Similarity

对于相似性任务,由于两个句子没有固有的顺序,因此需要修改输入序列以包含两种可能的句子顺序(句子之间同样包含分隔符)。两个拼接的序列都独立输入到预训练模型中获取序列表示,之后进行相加后输入被馈送到线性输出层。

Question Answering and Commonsense Reasoning

对于知识问答和因果推理,输入中包含一个上下文文档 z z z、一个问题 q q q和一组可能的答案 { a k } \{a_k\} {ak}。GPT-1将将文档上下文和问题与每个可能的答案连接起来,并在其间添加分隔符,即$[z;q;$;a_k]$。每个凭借的序列同样都利用模型进行独立处理,然后通过Softmax层进行归一化,以产生可能答案的输出分布。

结语

以上便是本文的全部内容,若是觉得不错可以支持一下博主,你们的支持是博主更新的不竭动力。若是有任何问题也敬请批评指正。

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

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

相关文章

【BLE】三.GATT/ATT规范

基本概念回顾 CS交互流程 SPP&#xff08;蓝牙透传&#xff09;的示例初始化&#xff1a; SPP示例运行过程&#xff1a; GATTS&GAP回调&#xff1a; 黄色&#xff1a;事件回调 绿色&#xff1a;事件 蓝色&#xff1a;执行 GATTC&GAP回调&#xff1a; 服务特征…

安全入门day.04

一、密码存储加密知识点 1、MD5 MD5加密是一种广泛使用的密码杂凑函数&#xff0c;它可以将任意长度的信息通过一系列复杂的数学和位操作转化为一个128位&#xff08;16字节&#xff09;的散列值&#xff08;hash value&#xff09;&#xff0c;这个散列值通常被表示为一个32位…

【Qt】工具栏

工具栏 工具栏是应用程序中集成各种功能实现快捷键使用的一个区域。 在Qt中使用QToolBar表示工具栏对象&#xff0c;一个窗口可以有多个工具栏&#xff0c;也可以没有&#xff0c;工具栏也是可以进行手动移动位置。 例子&#xff1a;创建工具栏 &#xff08;1&#xff09;创…

信息系统运维服务方案(Word原件完整版)

1 编制目的 2 系统运行维护 2.1 系统运维内容 2.2 日常运行维护方案 2.2.1 日常巡检 2.2.2 状态监控 2.2.3 系统优化 2.2.4 软件系统问题处理及升级 2.2.5 系统数据库管理维护 2.2.6 灾难恢复 2.3 应急运行维护方案 2.3.1 启动应急流程 2.3.2 成立应急小组 2.3.3 …

【hot100篇-python刷题记录】【轮转数组】

R7-数组篇 思路&#xff1a; 印象题&#xff0c;我记得可以使用python切片拼接 python切片 要轮转k个位置&#xff0c;那从第k个下标开始切片&#xff0c;然后拼接[0,k) class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not re…

云计算第二阶段---DBA Day8-Day9

DBA Day8 该阶段的2天内容,都会和数据库中间件,集群配置有关. 什么是中间件&#xff1f; 通俗来说&#xff0c;就是在正式文件内容从客户端发送或获取请求时&#xff0c;在传播过程中地点中间商&#xff0c;负责管理请求&#xff0c;并对其进行分类。 环境准备: 准备…

【入门教程】基于深度学习的遥感图像分割流程(附代码)

本文为入门遥感图像分割的朋友提供一份详细教程&#xff0c;看完你将收获&#xff1a; 大致了解图像分割的基本流程能够独立完成从拿到数据集到完成分割结果并评估的任务 有任何问题欢迎关注or私信&#xff0c;看到即回复&#xff0c;文末附代码链接。 文章目录 0.引言1.数据…

农事管理系统

摘 要 使用旧方法对农事管理系统的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在农事管理系统的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。这次开发的农事管理系…

2-83 基于matlab的自适应正则化核的模糊均值聚类框架(ARKFCM)

基于matlab的自适应正则化核的模糊均值聚类框架(ARKFCM)&#xff0c;用于脑磁共振图像的分割。该框架采用三种算法&#xff0c;分别平均滤波器、中值滤波器和设计的加权图像的灰度来代替局部平均灰度。利用邻域中灰度的异质性获取局部信息&#xff0c;并用高斯径向基核函数替换…

【#第三期实战营闯关作业 ## MindSearch在 Hugging FaceSpace的部署】

把MindSearch 部署到Github Codespace后&#xff0c;下一步就是上传到 Hugging Face Space&#xff0c;以下是记录了实操的过程及截图&#xff1a; 打开 https://huggingface.co/spaces &#xff0c;并点击 Create new Space&#xff0c;如下图所示:在输入 Space name 并选择 …

数据仓库系列18:如何建立一个有效的元数据管理体系?

目录 什么是元数据?为什么它如此重要?元数据管理体系的核心组件如何设计元数据模型步骤1: 识别关键元数据类型步骤2: 定义元数据属性步骤3: 建立元数据之间的关系步骤4: 选择合适的建模方法示例: 使用关系模型设计元数据模型最佳实践 元数据采集策略1. 识别元数据来源2. 自动…

正则表达式pattern

String qq "1234567890" qq.matches("[1-9]\\d{5,19}") [1-9]第一位不等于零 \\d都是数字 {5,19}后面的5到19位。 正则表达式的作用 作用1&#xff1a;校验字符串是否满足规则 作用2&#xff1a;在一段文本中查找满足要求的内容 sout("\"…

Cesium 地球云图

Cesium 地球云图 使用自定义图原(Primitive)实现。 支持速度和透明的动态调整。 支持设置云图高度, 当相机高度小于云图高度时, 渐隐消失。 Cesium 地球云图

Qt-初始Qt

1. Qt背景介绍 1.1 什么是Qt Qt是⼀个跨平台的C图形⽤⼾界⾯应⽤程序框架。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是完全⾯向对象的&#xff0c;很容易扩展。Qt为开发者提供了⼀种基于组件的开发模式&#xff0c;开发者可以通过简单的拖拽和组合来实现…

003.精读《MapReduce: Simplified Data Processing on Large Clusters》

文章目录 1. 引言&#xff1a;2. 精读2.1 背景2.2 模型应用2.3 基本原理2.4 其他 3. 总结 1. 引言&#xff1a; 在本期的精读会中&#xff0c;我们将深入探讨一篇具有里程碑意义的论文——《MapReduce: Simplified Data Processing on Large Clusters》。这篇论文不仅奠定了大…

【AI音频处理】:重塑声音世界的无限可能

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ 文章目录 引言一、语音识别&#xff1a;人机交互的新篇章二、语音合成&#xff1a;让机器“说话”的艺术三、音乐创作与推荐&#xff1a;AI赋予音乐新生命四、声音效果处理&#xff1a;让声音更加完美五、AI在…

浅谈维度建模、数据分析模型,何为数据仓库,与数据库的区别

往期推荐 大数据HBase图文简介-CSDN博客 数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS-CSDN博客 数仓常见名词解析和名词之间的关系-CSDN博客 数仓架构&#xff1a;离线数仓、实时数仓Lambda和Kappa、湖仓一体数据湖-CSDN博客 0. 前言 1991年&#xff0c;数据仓库之父 比尔恩门 著…

【C++ | 设计模式】代理模式的详解与实现

1. 概念 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;用于控制对对象的访问。它通过引入代理对象&#xff0c;间接地操作目标对象&#xff0c;从而实现对目标对象的控制。代理模式的核心思想是通过代理对象来控制对目标对象的访问。代理对…

坐标系的那些事儿

哈喽&#xff0c;大家好&#xff01;地理坐标系、投影坐标系等知识是地图学、GIS和地图发布、应用等绕不开的话题&#xff0c;今天我们一起聊一聊坐标系的那些事儿&#xff01; 1.地理坐标系 为了确定地面点在地球椭球体表面位置而定义的空间参考系&#xff0c;主要用经纬度来…

软件设计师笔记-多媒体基础知识

媒体 感觉媒体&#xff08;使人产生感觉的媒体&#xff09;表示媒体&#xff08;传输感觉媒体的中介媒体&#xff09;表现媒体&#xff08;进行信息输入和输出的媒体&#xff09;存储媒体&#xff08;用于存储表示媒体的物理介质&#xff09;传输媒体&#xff08;传输表示媒体…