---
title: 【大規模言語モデル入門Ⅱ】14章 14.1-14.2.2
tags: 
author: [京都大学人工知能研究会KaiRA](https://convert.docswell.com/user/kyoto-kaira)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/5EGYLZMDEL.jpg?width=480
description: 【大規模言語モデル入門Ⅱ】14章 14.1-14.2.2 by 京都大学人工知能研究会KaiRA
published: January 16, 25
canonical: https://convert.docswell.com/s/kyoto-kaira/KV19ME-2025-01-16-210818
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/5EGYLZMDEL.jpg)

2024年度後期輪読会 #13（2025/1/16）
大規模言語モデル入門Ⅱ 14.1-14.2.2
京都大学工学部理工化学科 1回生
岡本和優
0


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4JQMYLRX7P.jpg)

アジェンダ
◼ 14.1 分散並列学習とは
◼ 14.2 さまざまな分散並列学習手法
1


# Page. 3

![Page Image](https://bcdn.docswell.com/page/K74VWD82J1.jpg)

アジェンダ
◼ 14.1 分散並列学習とは
◼ 14.2 さまざまな分散並列学習手法
2


# Page. 4

![Page Image](https://bcdn.docswell.com/page/LJ13YZ2K7G.jpg)

14.1 分散並列学習とは
分散並列学習でメモリと学習時間の問題が解決できる
• LLMのパラメータ数は性能に大きな影響を与える→性能が向上するにつれてモデルが大規模化
• 学習を1枚のGPUで行うことが、メモリと学習時間の問題で困難になった
• ex. 70億パラメータのモデルをそのまま学習するには、80GBのメモリでも足りない
分散並列学習のメリット
• 1枚のGPUでは学習できない大きさのモデルを学習できる
• 複数のGPUが大きなデータセットを分担して処理することで、学習時間を短縮できる
3


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GJWPG9RP72.jpg)

14.1 分散並列学習とは
分散並列学習の用語と基礎知識
• ホスト：主となるGPU。一般的にはノード0のGPU0
• ポート：通信に用いるホストのポート。JOB_IDの値を設定することが多い
• ランク（グローバルランク）：ネットワーク上のGPUに与えられる固有のID
• ローカルランク：ノード内でのみ利用されるランク番号
• world size：学習に用いるGPUの総数
• 1つのノードで複数のGPUを用いて
学習を行うことをマルチGPU学習、
複数のノードを用いて学習を行うことを
マルチノード学習、と呼ぶ
• 分散並列学習ではGPU間で通信を行い、
必要が情報を共有している
4


# Page. 6

![Page Image](https://bcdn.docswell.com/page/4EZKL9R6E3.jpg)

アジェンダ
◼ 14.1 分散並列学習とは
◼ 14.2 さまざまな分散並列学習手法
5


# Page. 7

![Page Image](https://bcdn.docswell.com/page/Y76QWKRL7V.jpg)

14.2 さまざまな分散並列学習手法
データ並列：データセットを分割して学習を行う
データ並列のポイント
• データセットを分割しGPUごとに割り当てる
• 分割した分だけ学習時間が短縮される
• 並列して処理するデータを増やすことは、
バッチサイズを大きくすることに相当。
→収束が遅くなったり、汎化性能が悪化したりする
• GPUごとにモデルの複製をもつ
• より大きなモデルを扱えるようにはならない
• 誤差逆伝播後に勾配の同期をとる
• All-Reduceにより勾配を平均化。
これを用いてパラメータを更新する
6


# Page. 8

![Page Image](https://bcdn.docswell.com/page/G75RMP8ME4.jpg)

14.2 さまざまな分散並列学習手法
DeepSpeed ZeRO：パラメータ、勾配、最適化器の状態を分割して保持
• Adam最適化器は勾配とモデルのパラメータだけでなく、
勾配の移動平均や勾配を2乗した値の移動平均も保持する
→最適化器の状態は大きなメモリ量を要求する
• ZeROは最適化器の状態等を分割して保持することにより、メモリ消費量を抑える手法
→単純なデータ並列と異なり、より大きなモデルを扱うためにも有効
アニメーションでDeepSpeed (ZeRO1)の仕組みを完全に理解する
7


# Page. 9

![Page Image](https://bcdn.docswell.com/page/9J2D96KRJR.jpg)

14.2 さまざまな分散並列学習手法
ZeROの通信量：ZeRO1、ZeRO2はデータ並列と同じ
• ZeROの通信プロセス：担当領域ごとに通信→全体に共有
• All-Reduce = Reduce-Scatter + All-Gather
• Reduce-Scatterのように、担当する勾配について平均化を行う。その後パラメータを更新
• All-Gatherで更新したパラメータを全体に共有する
• ZeRO1、ZeRO2の通信料は結局
データ並列（All-Reduce）と同じ！
• ZeRO3は前向き計算のときに
All-Gatherでパラメータを集める分
通信料が増加する
8


# Page. 10

![Page Image](https://bcdn.docswell.com/page/DEY249N5EM.jpg)

参考文献リスト
• 大規模モデルを支える分散並列学習のしくみ Part1
• アニメーションでDeepSpeed (ZeRO1)の仕組みを完全に理解する
• DeepSpeed:深層学習の訓練と推論を劇的に高速化するフレームワーク
9


