AI 大模型训练中,通常会采用哪些方法?(输入篇)

大家好

某种程度来说大模型训练的核心算法就是300到400行代码,如果真正理解了并不难。下面我将带大家分析常规大模型训练有几个阶段以及在训练中一般会用到哪些方法。

图片

由上图可以看出,大模型训练主要有四个阶段:预训练、有监督微调、奖励建模、强化学习。开始的第一个阶段是预训练阶段。这个阶段在这个图中有点特殊,因为这个图没有按比例缩放。实际上预训练消耗的时间占据了整个训练pipeline的99%。

因此,这个阶段就是我们在超级计算机中使用数千个GPU以及数月的训练来处理互联网规模数据集的地方。

其他三个阶段是微调阶段,更多地遵循少量GPU和数小时或数天的路线。

那么首先让我们来看看预训练阶段用到了哪些方法。

1.数据分布

首先做预训练需要收集大量数据,那么数据分布大致需要满足什么条件呢?

图片

由上图可以看出,这是Meta发布了关于Llama基础模型训练时候的数据分布。大约1.4T的tokens,包含github、Wikeipedia等数据。

我们都知道大模型需要大量的高质量的训练数据,在目前这个Transformer为主导的背景下,算法其实差不多都固化了。市面上有关大模型的公司,投入人力物力最大的地方除了算力就是数据这一块了。如何高效获取数据、清洗数据、标注数据、质检数据以及如何平衡各类别数据占比等等问题是否解决,决定了这个大模型是否work。

数据问题解决后,接下来面对的问题是:机器只知道01二进制,如何把这些数据转化成机器能够看懂的语言?

2.标记化(tokenization)

实际训练这些数据之前,我们需要再经过一个预处理步骤,即标记化(tokenization)。

图片

如上图所示tokenization分为两个阶段,第一阶段将原始文本转化成tokens,请注意并不是说一个单词就是一个token,这与你采用的tokenization算法相关。第二阶段,将tokenization之后的tokens,去词表中查找对应的ids,输出得到一个很长的整数列表。

举个例子,下面我以GPT2为例,展示如何使用tiktoken这个python包来实现tokenization。

代码:

import tiktoken
input = "The GPT family of models process text using tokens, which are commonsequences of characters found in text. The models understand thestatistical relationships between these tokens, and excel at producingthe next token in asequence of tokens.You can use the tool below to understand how a piece of text would betokenized by the API, and the total count of tokens in that piece oftext."
enc = tiktoken.encoding_for_model("gpt2")enc_output =  enc.encode(input)
print("输入文字:"+str(input))
print("编码后的token:"+str(enc_output))
for token in enc_output:    print("将token:"+str(token)+" 变成文本:"+str(enc.decode_single_token_bytes(token)))
#输入文字:The GPT family of models process text using tokens, which are commonsequences of characters found in text. The models understand thestatistical relationships between these tokens, and excel at producingthe next token in asequence of tokens.You can use the tool below to understand how a piece of text would betokenized by the API, and the total count of tokens in that piece oftext.
#编码后的token:[464, 402, 11571, 1641, 286, 4981, 1429, 2420, 1262, 16326, 11, 543, 389, 2219, 3107, 3007, 286, 3435, 1043, 287, 2420, 13, 383, 4981, 1833, 262, 14269, 19929, 6958, 1022, 777, 16326, 11, 290, 27336, 379, 9194, 1169, 1306, 11241, 287, 257, 43167, 286, 16326, 13, 1639, 460, 779, 262, 2891, 2174, 284, 1833, 703, 257, 3704, 286, 2420, 561, 731, 4233, 1143, 416, 262, 7824, 11, 290, 262, 2472, 954, 286, 16326, 287, 326, 3704, 286, 5239, 13]

上面说的是GPT2的tokenization,GPT-3.5和GPT-4 等较新的模型使用与以前的模型不同的tokenization,并且将为相同的输入文本生成不同的tokens。

如果你想体验GPT-3.5和GPT-4的tokenization,只需更换成如下代码即可。

enc = tiktoken.encoding_for_model("cl100k_base") 

3.嵌入化(embedding)

介绍embedding时,首先要弄明白几个名词:

  • dim:embedding后的向量长度
  • vocab_size:词表的长度

通过2.tokenization编码后得到tokens:[464, 402, 11571, …,13],共计79个数字。

通过embedding层,即权重为[vocab_size, dim]的矩阵。

所以我们的 [79x1] tokens通过embedding层,输出是 [79x4096],即79个长度为4096的向量(每个token一个)

代码实现如下:

在这里插入图片描述

4.batch思想

图片

我们将embedding后的数组输入Transformer,不可能全部一次性输入,需要用batch思想分批导入。

在此批量大小是B,T是最大上下文长度。

在上面这个图中,长度T只有10,实际工作这可能是2000、4000 等等,在llama3中,T可达到8192。

除此之外,图中也提到<|endoftext|> 这样一个特殊字符。在GPT-2中,它表示文本的结束。在llama3中,就不用<|endoftext|> ,采用<|begin_of_text|>,<|end_of_text|>等特殊字符。

5.归一化(Normalization)

输出embedding后,我们还需做归一化。做归一化的原因有很多:1、同一量纲;2、加速收敛;3、提高模型性能等等。很多解释都是实验结果导向,实验做好了,自然有很多故事来解释它。下面我们来解释大模型训练中常用到的一些归一化方法。

首先需要理解LayerNorm

Layer Normalization (LayerNorm) 是一种归一化技术,常用于深度学习模型中,特别是在 Transformer 模型中。

与 Batch Normalization 不同,Layer Normalization 是在特征维度上进行标准化的,而不是在数据批次维度上。

Layer normalization 的计算可以分为两步。

(1)计算均值和方差。

在本文章的例子中,“The”这个token可以表示成一个4096维度的向量。需计算这个向量中所有元素的均值与方差。

(2)标准化和重新缩放

利用(1)中计算得到的均值与方差,将该向量标准化。并且设置两个可学习的参数,重新缩放和偏移。

总结一句话:LayerNorm就是将每个token对应向量的数据分布通过线性变换转化成正态分布。

代码如下:

在这里插入图片描述

RMS Norm

RMS Norm是LayerNorm的一种变体,LLaMA最新开源的LLaMA3也使用到了RMS Norm。

相比普通正则化,它的计算效率更高,并且原论文的实验结果显示这种简化并没有对模型的训练速度和性能产生明显影响。

图片

具体RMS Norm计算过程如上所示,我们使用RMS Norm对embedding输出进行归一化,计算公式如下。

其中为输入,如果dim=4096,即i=0,1,2…,4095。

为输出,同理,i=0,1,2…,4095:

图片

RMS Norm代码实现如下:

def rms_norm(tensor, norm_weights):    return (tensor * torch.rsqrt(tensor.pow(2).mean(-1, keepdim=True) + norm_eps)) * norm_weights

为什么要用Layer Norm不用Batch Norm

很多图像识别方面的任务都是采用Batch Norm,为什么在文本大模型这一块一般不使用Batch Norm而是使用Layer Norm呢?

首先,Transformer中的输入序列长度可变,不同样本的序列长度不同,具体实现的时候需要通过pad来满足序列长度的统一。在这样的情况下,Batch Norm计算每个batch的均值和方差不太合理,而LayerNorm在每个样本内部做归一化,不受batch size影响。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

大模型的高考数学成绩单:及格已经非常好了

让考生头皮发麻的高考数学&#xff0c;可难倒了顶尖 AI 大模型。 一年一度的高考即将落幕&#xff0c;衷心希望各位考生都超常发挥&#xff0c;考出满意的好成绩&#xff01;&#xff01; 和往年一样&#xff0c;除了让 AI 大模型写写高考作文&#xff0c;我们也选取了六家国…

打工人和学生党的福利,NewspaceGpt使用新体验

使用地址&#xff1a;https://newspace.ai0.cn/ 个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮…

小型气象站:现代气象监测的便携化解决方案

TH-QC12在气象监测领域&#xff0c;技术的不断创新和进步推动了监测设备的多样化和便携化。小型气象站作为这一趋势下的产物&#xff0c;以其体积小、功能全、操作简便等特点&#xff0c;受到了广泛的关注和应用。 小型气象站的技术特点 小型气象站集成了多种气象传感器&…

提升易用性,OceanBase生态管控产品的“从小到大”

2022年&#xff0c;OceanBase发布4.0版本“小鱼”&#xff0c;并首次公开提出了单机分布式一体化这一理念&#xff0c;旨在适应大小不同规模的工作负载&#xff0c;全面满足用户数据库“从小到大”全生命周期的需求。当时&#xff0c;我们所说的“从小到大”主要聚焦于数据库的…

【Qt 学习笔记】Qt窗口 | 对话框 | 模态与非模态对话框的创建

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt窗口 | 对话框 | 创建模态及非模态对话框 文章编号&#xff1a;Qt 学…

准橙人工翻译微信小程序,100+专业领域的译者在线帮你翻译!藏语、维吾尔语、哈萨克语、壮语、彝文、蒙古语统统支持人工翻译!

亲爱的朋友们&#xff0c;我们深知每一种语言都承载着独特的文化和历史&#xff0c;为了传承和弘扬这些宝贵的文化遗产&#xff0c;我们诚挚地邀请具备翻译经验并熟练掌握以下任意一门语言的您加入我们的团队&#xff01; 中国少数民族语言&#xff1a;藏语、维吾尔语、哈萨克…

懵了!伦敦银是现货白银吗?

近期&#xff0c;伦敦银价格出现了比较强势的上涨&#xff0c;很多朋友想入场炒银。不过当他们接触伦敦银交易市场的时候就懵了&#xff0c;这个交易品种好像有很多名称&#xff0c;一会儿说伦敦银&#xff0c;一会儿说现货白银&#xff0c;搞得自己都混乱了。到底伦敦银是现货…

CVE-2023-37569(未授权任意文件上传+弱口令爆破)

靶场简介 Online Piggery Management System v1.0 - 存在未授权的文件上传漏洞&#xff0c;登陆界面弱口令爆破 进入靶场 猜测弱口令admin/admin&#xff0c;错误&#xff0c;进行账号密码爆破 得到账号密码 admin/password 登陆进入&#xff0c;找到一处文件上传位置 上传…

千问Qwen7B chat:本地部署及网页端使用

基于前面的安装经验&#xff0c;千问大模型的本地部署并不算难&#xff0c;主要时间用在大模型文件的下载上。同时系统运行对硬件也有较高的要求&#xff0c;本机的硬件配置为N卡3060&#xff0c;显存12G。 使用conda创建虚拟环境&#xff0c;主要版本如下&#xff1a; Pyth…

生成式人工智能 - stable diffusion web-ui安装教程

一、Stable Diffusion WEB UI 屌丝劲发作了,所以本地调试了Stable Diffusion之后,就去看了一下Stable Diffusion WEB UI,网络上各种打包套件什么的好像很火。国内的也就这个层次了,老外搞创新,国内跟着屁股后面搞搞应用层,就叫大神了。 不扯闲篇了,我们这里从git源码直接…

Vue18-列表渲染

一、v-for渲染列表 1-1、遍历数组&#xff08;用的多&#xff09; 1-2、key属性 让每一个<li>都有一个唯一的标识&#xff01; 1、写法一 只有用了遍历的方式(v-for)来生成多个同样结构的数据&#xff0c;必须给每个结构取一个唯一的标识。 2、写法二 或者&#xff1a;…

【全开源】生产管理系统源码(FastAdmin+ThinkPHP+Layui+uniapp)

&#x1f525;揭秘高效生产管理系统&#xff0c;让你的企业腾飞&#xff01;&#x1f680; 一款基于FastAdminThinkPHPLayuiuniapp开发的生产管理系统&#xff0c;帮助企业数字化转型&#xff0c;打造智能工厂&#xff0c;专业为生产企业量身开发的一套完整的生产管理系统。主…

【乐吾乐2D可视化组态编辑器】管道绘制,水流动画

用乐吾乐2D可视化连线丰富的外观和动画效果&#xff0c;快速绘制各种风格的管道和水流动画。 乐吾乐2D可视化组态编辑器地址&#xff1a;https://2d.le5le.com/ 方式一&#xff1a;线条渐变 特点&#xff1a;呈现管道的金属光泽和管道剖面 外观&#xff1a;线条渐变--线性渐…

Jenkins 和 GitLab CI/CD比较

近十年来&#xff0c;持续集成&#xff08;Continuous Integration&#xff0c;CI&#xff09;和持续交付&#xff08;Continuous Delivery&#xff0c;CD&#xff09;领域都取得了很大的进步。DevOps 测试的兴起导致了对 CI/CD 工具的快速需求。现有的解决方案总是随着时间的推…

LlamaIndex 四 数据连接器

前言 我们通过各项配置&#xff0c;理解了LlamaIndex在构建知识库和基于知识库的推荐两个阶段&#xff0c;怎么和业务相结合。本文&#xff0c;我们将开始深入理解LlamaIndex的各个模块。首先&#xff0c;LlamaIndex强大的Data Connector 数据连接器上场。 LlamaIndex擅长和各…

聆思CSK6大模型开发板英语评测类开源SDK详解

离线英文评测算法SDK 能力简介 CSK6 大模型开发套件可以对用户通过语音输入的英文单词进行精准识别&#xff0c;并对单词的发音、错读、漏读、多读等方面进行评估&#xff0c;进行音素级的识别&#xff0c;根据用户的发音给出相应的建议和纠正&#xff0c;帮助用户更好地掌握单…

正大国际期货:如何做恒指期货

要想获得较好的收益&#xff0c;就必须要知道恒指做单的技巧&#xff0c;毕竟掌握了技巧才是最重要的。 第一、下单之前一定看准行情并且顺势操作。何为顺势&#xff1f;就是我们平时说的趋势&#xff0c;只要趋势做对了&#xff0c;在中途可能会有一些起伏&#xff0c;但是最后…

中间件复习之-分布式存储系统

单机存储系统介绍 存储引擎&#xff1a;存储系统的发动机&#xff0c;提供数据的增、删、改、查能力&#xff0c;直接决定存储系统的功能&#xff08;支持怎么样的查询&#xff0c;锁能锁到什么程度&#xff09;和性能&#xff08;增删改查速度&#xff09;。 性能因素 写入方…

计算机网络知识CIDR(无类别域区间路由)

目录 介绍 基本信息 优点与关联 如何计算判定范围&#xff08;你应该是来看这个的&#xff0c;前面是水字数的&#xff09; 省流版 介绍 无类别域间路由&#xff08;Classless Inter-Domain Routing、CIDR&#xff09;是一个用于给用户分配IP地址以及在互联网上有效地路由…

智慧监狱大数据整体解决方案(51页PPT)

方案介绍&#xff1a; 智慧监狱大数据整体解决方案通过集成先进的信息技术和大数据技术&#xff0c;实现对监狱管理的全面升级和智能化改造。该方案不仅提高了监狱管理的安全性和效率&#xff0c;还提升了监狱的智能化水平&#xff0c;为监狱的可持续发展提供了有力支持。 部…