LLM分布式训练第三课-模型并行之流水线并行

在实际的生产中,在训练时面对的压力主要是模型太大,无法装载进一块GPU中。

  举一个例子,一般来讲现代LLM训练采用的精度都是FP16或者BF16,采用这种精度来训练模型,如果1个模型参数,要占用2个字节,也就是16bit。

  在上一章开头的7B案例已经讲过,如果对一个7B模型用BF16或者FP16来进行预训练那么现在市面上最高显存的GPU,如H100/80G也是无法进行装载的。因此由于这个物理上的硬件限制,在训练时我们都会进行模型并行化处理。

  何为模型并行化,总体来说分为纵向和横向的模型并行化拆分,即:

  • 流水线并行PP(Pipeline Parallelism)

  • Tensor并行TP (Tensor Parallelism)

流水线并行

  流水线并行PP(Pipeline Parallelism),是一种最常用的并行方式,也是最初Deepspeed和Megatron等大模型训练框架都支持的一种并行方式。

  什么是流水线并行呢?简而言之是把一个参数量较大的模型按照不同的层进行划分,将多个模型的层尽可能均匀的分布在不同的GPU显存上,来起到装载更大模型的能力。

图片

PP的通信和运行方式

   如图所示,假设一个大模型有4层,采用PP的方式,可

相关推荐

  1. PostgreSql

    2024-03-20 11:12:09       72 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 11:12:09       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 11:12:09       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 11:12:09       82 阅读
  4. Python语言-面向对象

    2024-03-20 11:12:09       91 阅读

热门阅读

  1. vue将中国标准时间转成年月日

    2024-03-20 11:12:09       34 阅读
  2. vue组件

    vue组件

    2024-03-20 11:12:09      41 阅读
  3. vue3 使用element-plus 如何再次封装table组件

    2024-03-20 11:12:09       44 阅读
  4. React——组件通讯

    2024-03-20 11:12:09       38 阅读
  5. Golang 开发实战day05 - Loops(1)

    2024-03-20 11:12:09       42 阅读
  6. 2020.9.8C++Primer学习笔记————模板函数

    2024-03-20 11:12:09       42 阅读
  7. uniapp:wx.switchTab: url 不支持 queryString

    2024-03-20 11:12:09       38 阅读
  8. docker离线安装

    2024-03-20 11:12:09       41 阅读
  9. Android 12 SystemUI调试

    2024-03-20 11:12:09       37 阅读
  10. 模拟计算机和数字计算机

    2024-03-20 11:12:09       37 阅读
  11. 服务器时间不准确的风险

    2024-03-20 11:12:09       37 阅读
  12. Python基础----冒泡排序和二分查找(持续更新中)

    2024-03-20 11:12:09       40 阅读