《大规模语言模型从理论到实践》--分布式训练

本笔记结合个人理解整理,如有建议欢迎评论指出。

感谢B站zomi酱up主。

一、计算机基础知识

5分钟看懂电脑硬件配置 - 知乎 (zhihu.com)

1.1 GPU和CPU

显存

定义:显存是显卡上的专用高速缓存,用于存储图形处理器(GPU)在处理图像和视频数据时所需的临时数据。

功能:显存的主要作用是提供GPU快速访问的数据存储,支持图形渲染和并行计算任务。

内存

定义:内存(RAM)是计算机系统中的一种易失性存储器,用于存储CPU执行程序时所需的临时数据。

功能:内存为CPU提供快速访问的数据存储,支持程序的运行和数据的处理。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行。

CPU

定义:CPU(Central Processing Unit)是计算机系统的核心处理器,负责执行程序中的指令,处理数据。

功能:CPU通过读取内存中的数据,执行指令,完成计算和控制任务。它是信息处理和程序运行的最终执行单元。

GPU

定义:GPU(Graphics Processing Unit)是图形处理器,专门用于处理图形和图像数据,以及进行并行计算。

功能:GPU通过其大量的核心和高速显存,能够高效地处理图形数据,同时支持深度学习等并行计算任务。

显卡

定义:显卡(Graphics Card)是一种专门用于处理图像和视频数据的硬件设备

功能:显卡的主要作用是将计算机中的数字信号转换为可以在显示器上显示的图像信号。它通常由处理器(GPU)、显存、电路板等部分组成。

1.2 计算机参数和数据量的单位

1.2.1参数量的单位

参数量指的是模型中所有权重和偏置的数量总和。在大模型中,参数量的单位通常以“百万”(M)或“亿”(B,也常说十亿)来表示。

  • 百万(M):表示一百万个参数。例如,如果一个模型有110M个参数,那么它实际上有110,000,000(即1.1亿)个参数。
  • 亿(B):表示十亿个参数。例如,GPT-3模型有175B个参数,即175,000,000,000(即1750亿)个参数。

1.2.2 数据量的单位

在大数据和机器学习的语境下,数据量通常指的是用于训练或测试模型的数据的大小。数据量的单位可以是字节(Byte)、千字节(KB)、兆字节(MB)、吉字节(GB)等。

  • 字节(Byte):是数据存储的基本单位。一个字节由8个比特(bit)组成。
  • 千字节(KB):等于1024个字节。
  • 兆字节(MB):等于1024个千字节,也常用于表示文件或数据的大小。
  • 吉字节(GB):等于1024个兆字节,是较大的数据存储单位。

在大模型中,由于模型参数通常是以浮点数(如float32)存储的,因此可以通过模型参数量来计算模型所需的存储空间大小。例如,如果一个模型有1.1亿个参数,并且每个参数用float32表示(即每个参数占4个字节),那么该模型所需的存储空间大约为44MB(1.1亿×4字节/1024/1024)。

bit(比特):bit是二进制数字中的位,是信息量的最小单位。在二进制数系统中,每个0或1就是一个bit。bit是计算机内部数据存储和传输的基本单位。在数据传输过程中,通常以bit为单位来表示数据的传输速率或带宽。

字节(Byte)定义:字节是计算机信息技术用于计量存储容量的一种单位,也表示一些计算机编程语言中的数据类型和语言字符。字节通常由8个bit组成。字节是计算机中数据处理的基本单位。在存储数据时,通常以字节为单位来表示数据的大小或容量。

bit和字节的关系:1字节(Byte)等于8比特(bit)。在计算机科学中,经常需要将数据的大小从字节转换为比特,或者从比特转换为字节。例如,在数据传输过程中,如果知道数据的传输速率是以比特每秒(bps)为单位的,那么可以通过除以8来将其转换为字节每秒(Bps)的单位。

 二、 AI集群

2.1 集群的概念

 集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理。当用户请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器。

2.2集群的硬件组成

硬件组成

1.核心处理器:CPU和GPU、TPU等。

2.内存与存储

3.网络与通信

网络硬件:RDMA网络

通信协调硬件:

GPU与GPU之间可以通过NVLink等技术实现高速互联。

CPU与GPU之间也可以通过PCIe、NVLink等技术进行通信。

2.3 集群的软件架构

软件架构:集群需要运行特定的软件,如分布式计算框架(如TensorFlow、PyTorch等),这些框架能够协调不同节点上的计算任务。

2.4 AI集群通信

带宽:每一秒通信多少数据;延迟:通信的快慢

2.4.1 机器内通信:共享内存、PCIe、NVLink

同一机器内:

  • CPU之间可以通过共享内存来实现
  • CPU和GPU 可以通过PCIE\NVLink
  • GPU之间,可以通过NVLink直连

2.4.2 机器间通信:TCP/IP网络、RDMA直连网络

 通信协调硬件:PCIE、NVLink、RDMA

通信协调软件:MPI、NCCL

 三、AI框架分布式功能

3.1 并行处理硬件架构

单线程:在编程和操作系统中,单线程指的是程序在执行时只有一个主要的执行线程,该线程按顺序执行所有任务。

多线程(multithreading)是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

处理器(CPU,Central Processing Unit)是计算机系统的核心,负责执行各种计算任务和控制操作。

指令又称为机器指令,是指计算机执行某种操作的命令,是计算机运行的最小功能单位。

控制器是计算机硬件的一个重要组成部分,主要负责从内存中取出指令、对指令进行译码以及产生相应的控制信号来控制各个部件协调工作。它是计算机的指挥控制中心,协调和指挥整个计算机系统的操作。包括。指令控制、时序控制、操作控制、中断和异常处理。

假设我们有一个简单的图像处理应用,它需要对一系列图片进行灰度转换(即将彩色图片转换为灰度图片)。

单线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值