AI大模型探索之路-训练篇2:大语言模型预训练基础认知

文章目录

  • 前言
  • 一、预训练流程分析
  • 二、预训练两大挑战
  • 三、预训练网络通信
  • 四、预训练数据并行
  • 五、预训练模型并行
  • 六、预训练3D并行
  • 七、预训练代码示例
  • 总结


前言

在人工智能的宏伟蓝图中,大语言模型(LLM)的预训练是构筑智慧之塔的基石。预训练过程通过调整庞大参数空间以吸纳数据中蕴含的知识,为模型赋予从语言理解到文本生成等多样化能力。本文将深入探讨预训练过程中的技术细节、所面临的挑战、通信机制、并行化策略以及如何通过这些技术的融合提升预训练的效率和性能。

一、预训练流程分析

预训练大语言模型涉及对海量参数的优化。这个过程起始于一个简单的前提:

给定输入(X)和相应的输出(Y),模型通过不断迭代学习,不断更新修改参数,使得其生成的输出尽可能接近真实结果(Y)。

当模型输出与实际结果之间的差距—通常由损失函数量化—减小到一个可接受的阈值时,我们可以认为预训练过程达到预期效果。在这个过程中,模型参数经历从随机初始化到精细调整的转变,逐步捕捉并内化语言的复杂规律。
在这里插入图片描述

大语言模型预训练过程核心:
1)输入 Batch 数据
2)前向传播计算损失
3)后向传播计算梯度
4)优化器更新大模型参数
5)反复迭代循环
在这里插入图片描述

二、预训练两大挑战

随着模型规模向百亿甚至千亿参数迈进,预训练任务面临两大主要挑战:
1.显存效率:模型参数量的巨大使得即便是最先进的GPU也难以单独容纳所有参数,这直接导致了显存溢出的问题。例如,一个具有1750亿参数的GPT-3模型,其参数本身就需要消耗约700GB的显存,加上Adam优化器的状态,总共需要超过2.8TB的显存
2.计算效率:巨大的模型参数和海量的训练数据使得计算量激增,导致单机训练时间长达数年,这对于计算资源的有效利用提出了极大的挑战。

三、预训练网络通信

网络通信是多机多GPU预训练过程中不可或缺的环节。点对点通信方式因其一对一的数据交换模式,虽然成本较低,但传输速率较慢,成为速度瓶颈。相对而言,集体通信方式通过同时进行多个进程间的数据传输,大大提升了通信速度,但相应地增加了成本。选择合适的通信方式对于提高预训练效率至关重要。
1.点对点通信:一个进程发送数据,一个进程接收数据,速度慢,成本低。
在这里插入图片描述

2.集体通信:多个进程发送数据,多个进程接收数据,速度快,成本高。

在这里插入图片描述

四、预训练数据并行

1. 数据并行:数据并行是处理大规模数据集的常用策略,它通过将整个数据集分割成多个子集,每张GPU分配一部分数据独立进行模型训练。

在这里插入图片描述

2. 数据并行三个提高效率的技巧
1)梯度分桶:动机是集体通信在大张量上比在小张量上效率更高。
2)计算与通信重叠:有了梯度分桶之后,在等待同一个桶内的梯度计算完后,就可以进行通信操作。
3)跳过梯度同步:梯度累加,减少梯度通信的频次。
在这里插入图片描述

五、预训练模型并行

当单张GPU无法装载整个模型时,模型并行成为解决之道。

1.流水线并行
层间划分,将不同的层划分到不同的 GPU 上;比如:前 3 层在 0 号卡上,后 3 层在 1 号卡上
在这里插入图片描述

2.张量并行
层内划分,切分一个独立的层划分到不同的 GPU 上;比如:0 号卡和 1 号卡分别计算某个层的不同部分
在这里插入图片描述

六、预训练3D并行

3D并行是一种综合性策略,它结合了数据并行、张量并行和流水线并行的优势,以平衡显存利用率和计算效率。在此框架下,每种并行方法承担着不同的角色:数据并行提供高效的计算利用率,张量并行减少单个层的显存占用,而流水线并行则降低跨层通信的频率。

1. 数据并行:计算效率高、实现简单。
• 显存效率:每张卡上都保存了完整的模型、梯度、优化器状态,因此显存效率不高。
• 计算效率:当增加并行度时,单卡的计算量是保持恒定的,可以实现近乎完美的线性扩展。但规约梯度的通信开销,与模型大小成正相关。

2. 张量并行:因模型结构而异,实现难度大。
• 显存效率:随着并行度增加,成比例地减少显存占用。是减少单层神经网络中间激活的唯一方法。
• 计算效率:频繁的通信,限制了两个通信阶段之间的计算量,影响了计算效率,计算效率很低。

3. 流水线并行:通信成本最低
• 显存效率:减少的显存与流水线并行度成正比。但流水线并行不会减少每层中间激活的显存占用。
• 计算效率:成本更低的点对点(P2P)通信。通信量与流水线各个阶段边界的激活值大小成正比。
在这里插入图片描述

4. 3D并行实例
Bloom-176B模型的预训练实施了这种3D并行策略,在NVIDIA A100 GPU上实现了对数万亿Token的训练工作。
在这里插入图片描述

5. 3D 并行训练框架
同时支持数据并行 、流水线并行、张量并行的3D并行训练框架:Microsoft DeepSpeedNVIDIA Megatron
1)Microsoft DeepSpeed:微软开发的优化库,专门用于简化和提高深度学习分布式训练的效率。它通过结合数据并行和其他并行技术,如流水线并行,实现了一种基于3D并行的训练方法。
2)NVIDIA Megatron:由NVIDIA的研究团队开发的一个专为大型Transformer模型设计的训练框架。

七、预训练代码示例

预训练代码简单示例:


import torch
from transformers import AutoTokenizer, AutoModelForMaskedLM

# 加载预训练模型和分词器
model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForMaskedLM.from_pretrained(model_name)

# 准备输入数据
input_text = "This is an example sentence."
inputs = tokenizer(input_text, return_tensors="pt")

# 进行前向传播
outputs = model(**inputs)

# 提取预测结果
predictions = outputs.logits

# 输出预测结果
print(predictions)


总结

预训练大语言模型是一项既富有挑战又极具价值的工作。随着模型规模的不断扩大和数据量的激增,如何高效地进行预训练已经成为了AI研究的核心议题。3D并行作为一种先进的预训练框架,不仅解决了单一GPU资源限制的问题,还通过合理的资源分配和优化手段显著提高了预训练的性能。未来的预训练技术将继续沿着这条道路前进,不断探索新的边界,并将机器学习模型推向前所未有的高度。

👉系列篇章:AI大模型探索之路-训练篇1:大语言模型微调基础认知
🔖更多专栏系列文章:AIGC-AI大模型探索之路

文章若有瑕疵,恳请不吝赐教;若有所触动或助益,还望各位老铁多多关注并给予支持。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

优先级队列(堆)和四个比较(==,equals,Comparable,Comparator)

本节具体阐述堆的概念和自己如何实现堆(底层) 掌握PriorityQueue的使用 优先级概念 前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优 先级,一般出队列时,可能需要优先级高的…

Docker共享Nginx配置文件

先去一个容器中,找到Nginx.conf配置文件的目录 去创建一个容器,将容器中存放nginx.conf的目录挂载到宿主机存放nginx.conf目录上 去宿主机中找到nginx/html/index.html目录位置 进入宿主机的index.html中修改页面内容 curl 192.168.91.106访问一下 进入…

Tomcat安装和配置以及多实例部署(附脚本)

TOMCAT详细部署 Tomcat服务器简介核心组件Tomcat 各组件及关系工作流程 Tomcat server.xml 配置详解serverserviceConnectorEngineHostContextValve 阀门 Tomcat部署与安装部署脚本主要目录说明 Tomcat多实例部署扩展和优化 Tomcat 的 catalina.sh 文件以调整 JVM 参数 Tomcat服…

lt Redis变慢的原因及排查解决方法

前言 Redis 作为优秀的内存数据库,其拥有非常高的性能,单个实例的 OPS 能够达到 10W 左右(5-10W)。但也正因此如此,当我们在使用 Redis 时,如果发现操作延迟变大的情况,就会与我们的预期不符。 你也许或多或少地&…

LLaMA-Factory参数的解答(命令,单卡,预训练)

前面这个写过,但觉得写的不是很好,这次是参考命令运行脚本,讲解各个参数含义。后续尽可能会更新,可以关注一下专栏!! *这是个人写的参数解读,我并非该领域的人如果那个大佬看到有参数解读不对或…

一文扫盲:数据中台,可不是搞几个报表就叫中台。

Hi,我是贝格前端工场,相比大家会经常听说数据中台这个词汇,很多老铁会想当然的人为数据中台就是各种报表,本文给大家纠正和普及一下。 一、什么是数据中台 数据中台是指一个企业内部的数据管理和分发平台,它通过集中…

​解析什么是物联网接入网关?-天拓四方

随着物联网技术的飞速发展,越来越多的设备、传感器和系统被连接到互联网,形成了一个庞大的、相互连接的智能网络。在这个网络中,物联网接入网关扮演着至关重要的角色,它不仅是连接物联网设备和云平台的桥梁,还是实现设…

excel一列同乘同一个数

excel一列同乘同一个数 第一种方法(excel本身功能) 在空白区域输入要乘以的数,比如0.5 右键选择复制 选中需要乘以的单元格,选择性粘贴 点击乘,选择确定 删除0.5后也不会改变值 第二种方法(方方格子…

STM32自己从零开始实操01:原理图

在听完老师关于 STM32 物联网项目的所有硬件课程之后,就是感觉自己云里雾里,明明课程都认真听完了,笔记也认真记录,但是就是感觉学到的知识还不是自己。 遂决定站在老师的肩膀上自己开始设计项目,将知识变成自己的&am…

Lagent AgentLego 智能体应用搭建-笔记六

本次课程由Lagent&AgentLego 核心贡献者樊奇老师讲解【Lagent & AgentLego 智能体应用搭建】课程 课程视频:https://www.bilibili.com/video/BV1Xt4217728/ 课程文档:https://github.com/InternLM/Tutorial/tree/camp2/agent 大语言模型的局限…

MybatisPlus开发业务接口

💟💟前言 ​ 友友们大家好,我是你们的小王同学😗😗 今天给大家打来的是 MybatisPlus开发业务接口 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄 小王的主…

(mac)Promethues监控之mysqld_exporter(MySQL监控)

搭建Mysqld_exporterPrometheusGrafana监控系统 普罗米修斯是后端数据监控平台,通过Mysqld_exporter收集mysql数据,Grafana将数据用图形的方式展示出来 前提:已安装grafana和promethues 1.下载安装Mysql (1)启动MySQL…

回到唐诗宋词的创作现场,与伟大诗词人的灵魂共振

一、教程前言 本套唐诗宋词教程,大小3.15G,1个压缩文件。 二、教程目录 1-读诗,或许可以让我们更加接近自己.mp4 2-漠漠水田飞白鹭——王维的自然世界.mp4 3-不知何处是他乡——李白的酒徒生涯.mp4 4-桃花流水窅然去——李白的轻盈写作…

异步日志方案spdlog

异步日志方案spdlog spdlog 是一款高效的 C 日志库,它以其极高的性能和零成本的抽象而著称。spdlog 支持异步和同步日志记录,提供多种日志级别,并允许用户将日志输出到控制台、文件或自定义的接收器。 多线程使用和同步、异步日志没有关系是…

信号带宽和上升沿时间

我们在抽取高速信号的S参数时避不开的一个环节是设置仿真带宽,经常听到有人讲要设置基频(奈奎斯特频率)的4倍or 5倍带宽,如果是这样,就有一个问题:如果是56Gbps的NRZ信号,那仿真带宽真要设置到1…

Android Studio 报错:AVD Pixel_3a_API_30_x86 is already running

在我的Android Studio和虚拟机运行时,我的电脑不小心关机了,在启动后再次打开Android Studio并运行虚拟机时发现报错。 Error while waiting for device: AVD Pixel_3a_API_30_x86 is already running. If that is not the case, delete the files at C…

NAT网络地址转换实验(思科)

华为设备参考:NAT网络地址转换实验(华为) 一,技术简介 NAT(Network Address Translation),即网络地址转换技术,是一种在现代计算机网络中广泛应用的技术,主要用于有效管…

Markdown 对勾符号

Markdown中根号符号不完美,少了上面一横,更像对勾:√ 输入: 即可显示为: 在 youtrack 上面的 KB 页面,也适用。 Markdown 对勾符号 - 文档交付 - iSharkFlyMarkdown中根号符号不完美,少了上面一…

配置Trunk

1、实验目的 通过本实验可以掌握: Native VLAN 的含义和配置。IEEE802.1q 封装。Trunk 配置和调试方法。 2、实验拓扑 配置 Trunk 的实验拓扑如下图所示。 3、实验步骤 3.1 在交换机S1、S2上创建 VLAN 并把端口划分到相应的VLAN中 (1)配…

【网络安全】HTTP协议 — 基础

专栏文章索引:网络安全 有问题可私聊:QQ:3375119339 目录 学习目标​ 一、万维网的诞生与发展​编辑 1.万维网的诞生与发展 2.HTTP协议诞生与发展 二、网络基础 1.TCP/IP分层传输 1)TCP/IP协议 2)封装与拆封 …