datawhale 大模型学习 第五章-模型训练

news/2024/7/20 17:08:51 标签: 学习, 大模型

一、目标函数

今天要讨论的是以下三种模型结构:
Decoder-only模型:例如,GPT-3,单向上下文嵌入,在生成文本时一次生成一个token
Encoder-only模型:例如,BERT,利用双向上下文注意力生成embeding
Encoder-decoder模型:例如,T5,利用双向上下文编码,利用单向上下文生成文本

最终结果就是将token序列映射为一个Embedding向量

\sigma :V^{L}\rightarrow R^{d*L}

其中:
 L :代表文本长度
 d:代表embeding向量的维度

1.1 Decoder-only 模型

自回归语言模型预测是一个条件分布:即根据1,2,。。。i-1个词语,去预测第1个词语是什么

公式为:P(X_{i}:X_{1:i-1}) =softmax(Embedding(1:i-1))

那格局最大似然原理(通俗点讲就是,找到一个参数,是的概率最大),定义以下负对数似然目标函数:
O(\theta ) =\sum_{x\in D}-logP(x)= \sum_{x\in D}^{}\sum_{i\in L}^{L}-logP(X_{i}:X_{1:i-1})

1.2 Encoder-only模型

Decoder-only模型,它会产生(单向)上下文嵌入,更适合文本生成任务

Encoder-only模型,他是双向上下文嵌入,更适合分类任务

1.2.1 Bert 模型

BERT的目标函数,它包含以下两个部分:

  • 掩码语言模型(Masked language modeling)
  • 下一句预测(Next sentence prediction)

其中有两个特殊的token:

  • [CLS] :包含用于驱动分类任务的嵌入,即Next sentence prediction 任务
  • [SEP] :用于告诉模型区分第一个序列(例如,前提)与第二个序列(例如,假设)。
1.2.1.1 掩码语言模型

基本思想是通过加噪然后预测来进行训练:

[the,[MASK],ate,[MASK],cheese]   ⇒    [the,mouse,ate,the,cheese]
需要模型把[MASK]位置的词语给预测出来

噪声函数的定义:

  • 假设 I⊂{1,…,L} 代表所有位置中随机的15%。
  • 对于每个 i∈I,(x~i 代表需要mask的位置):
    • 以0.8的概率, x~i​←[MASK]
    • 以0.1的概率, x~i​←xi​
    • 以0.1的概率, x~i​←random word from V
1.2.2 RoBERTa

RoBERTa对BERT进行了以下改进:

  • 删除了下一句预测这一目标函数(发现它没有帮助)。
  • 使用更多数据训练(16GB文本 ⇒⇒ 160GB文本 )。
  • 训练时间更长。
  • RoBERTa在各种基准上显著提高了BERT的准确性(例如,在SQuAD上由81.8到89.4)。

1.3 Encoder-Decoder模型:

  • 首先像BERT一样对输入进行双向编码。
  • 然后像GPT-2一样对输出进行自回归解码。
1.3.1 BART(Bidirectional Auto-Regressive Transformers)

BART (Lewis et al. 2019)是基于Transformer的编码器-解码器模型。

  • 使用与RoBERTa相同的编码器架构(12层,隐藏维度1024)。
  • 使用与RoBERTa相同的数据进行训练(160GB文本)。

基于BERT的实验,最终模型进行以下了变换:

  • 掩码文档中30%的token
  • 将所有子句打乱

最后,通过微调,BART在分类和生成任务上都展示了强大的效果。

1.3.2 T5(Text-to-Text Tranfer Transformer)

训练过程:给定一段文本,在随机位置将其分割为输入和输出:

T= {the,mouse ,ate ,the ,cheese}
X1 = {the}   Y1 = {mouse,ate,the,cheese}
X2 = {the,mouse} Y2=  {ate,the,cheese}
X3 = {the ,mouse,ate} Y3= {the,cheese}
 

差异:

  • BERT使用 [CLS][CLS] 的嵌入来预测。
  • T5、GPT-2、GPT-3等(生成模型)将分类任务转换成自然语言生成。

二、大模型参数优化算法

2.1 随机梯度下降 (SGD)

2.2 Adam( adaptive moment estimation)

引入了一阶动量和二阶动量的概念

参数跟新过程:

说明:

学习\alpha 
一阶指数移动平滑加权  m_{t}
二阶指数移动平滑加权  v_{t}
一阶指数移动加权衰减系数 \beta 1
二阶指数皮冻加权衰减系数 \beta 2

内存占用:
之前SGD训练时只需要保存 (\theta _{t},g_{t})  是模型参数的2倍
现在Adam训练要保存(\theta _{t},g_{t}m_{t},v_{t}) 是模型参数的4倍

2.3 混合半精度训练

简单理解就是:
训练的时候用F16,跟新模型参数的时候用F32

2.4 学习

  • 训练过程中使用衰减学习
  • 对于Tranformer模型,还需要增加一个(warmup)学习

2.5 参数初始化

  • 给定矩阵W∈Rm×n ,标准初始化(即,xavier初始化)为 Wij​∼N(0,1/n) 。
  • GPT-2和GPT-3通过额外的 1/N​ 缩放权重,其中 N 是残差层的数量。
  • T5将注意力矩阵增加一个1/d​ (代码)。

以GPT-3为例,使用的参数如下:

  • Adam参数: 1=0.9,2=0.95,8β1​=0.9,β2​=0.95,ϵ=10−8
  • 批量小:320万个token(约1500个序列)
  • 使用梯度剪裁(t​←gt​/min(1,∥g∥2​) )
  • 线性学习率预热(前3.75亿个token)
  • 余弦学习率衰减到10%
  • 逐渐增加批大小
  • 权重衰减设为0.1


http://www.niftyadmin.cn/n/5342875.html

相关文章

【数据结构与算法】4.自主实现单链表的增删查改

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点&…

redis高可用之Sentinel模式

文章目录 前言1. 创建联想主服务器的网络连接2. 创建连向其他Sentinel的命令连接 (也就是调度中心的高可用)3.选举领头Sentinel 调度中心高可用4.故障转移 选出新的主服务器 redis服务器高可用如何挑选新的主服务器? 总结 前言 Sentinel(哨岗…

uniapp pages.json 页面路由

pages.json 页面路由 pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。 它类似微信小程序中app.json的页面管理部分。注意定位权限申请等原属于app.json的内容,在uni-app中是在manifes…

【Java程序员面试专栏 专业技能篇】计算机网络核心面试指引

关于计算机网络部分的核心知识进行一网打尽,包括计算机的网络模型,各个层的一些重点概念,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 分层基本概念 计算机网络模型的分层及具体作用 计算机网络有哪些分层模型 可以按照应用层到物…

如何优化Mysql etl性能?

mysql 一、分区表<一>、按年分区<二>、按月分区<三>、自定义分区二、rewriteBatchedStatements三、on duplicate key update四、索引五、大事务拆分一、分区表 分区表是将表数据分割成多个较小的分区,每个分区可以独立地进行管理和维护。通过将数据分布在多…

小程序技术实践:快速开发适配鸿蒙的App

今年&#xff0c;在中国&#xff0c;被各大媒体和开发者称为“鸿蒙元年”。 在2023年底就有业内人士透露&#xff0c;华为明年将推出不兼容安卓的鸿蒙版本&#xff0c;未来IOS、鸿蒙、安卓将成为三个各自独立的系统。 果不其然&#xff0c;执行力超强的华为&#xff0c;与202…

计算机网络-AAA原理概述

对于任何网络&#xff0c;用户管理都是最基本的安全管理要求之一&#xff0c;在华为设备管理中通过AAA框架进行认证、授权、计费实现安全验证。 一、AAA概述 AAA&#xff08;Authentication(认证), Authorization(授权), and Accounting(计费)&#xff09;是一种管理框架&#…

第8章-网络设备文件管理

1. 网络设备的文件系统 1.1. 概述 1.2. 文件类型 1.3. 存储方式 1.4. 文件管理 2. 文件的管理 3. 网络设备软件维护基础 4. 常见问题 1. 网络设备的文件系统 1.1. 概述 ① 设备以文件的方式对运行所需的数据进行存储&#xff1b; ② Linux&#xff1b; 文件&#xff1a…