DeepSpeed:
深層学習の訓練と推論を劇的に高速化するフレームワーク
Microsoft DeepSpeed Team2023 年 6 月 7 日

このスライドでは、我々が研究開発しているDeepSpeedというフレームワークについて、概要をご紹介します。

1

概要
What is DeepSpeed?

• 数年前から爆発的に広がり• 話題のChatGPTなども深層
学習の成果• 大規模かつ高速な深層学習を容易に実現する様々な機能を持ったソフトウェア• オープンソースソフトウェアとしてGitHubで公開中• DeepSpeed (メインのレポジトリ)• DeepSpeedExamples (使用例).
• Megatron-DeepSpeed (NVIDIAのMegatron-LMと結合したもの).
• DeepSpeed-MII (DeepSpeedの高速な推論を容易に利用するためのツール)

メインレポジトリのURL

DeepSpeedのプロジェクトは、MicrosoftのAI at Scale initiativeの一部で、次世代AIの機能の大規模な実現を進めています。詳細はこちらをご覧ください。

ご存じの通り、深層学習は数年前から爆発的に広く使われるようになり、最近話題のChatGPTなどは、その成果の一つです。
DeepSpeedは、その深層学習を、大規模かつ高速に、しかも容易に実行するための様々な機能を持ったソフトウェアです。
DeepSpeedはオープンソースソフトウェアとして、GitHubで公開されており、誰でもご利用いただけます。DeepSpeedを開発している我々のプロジェクトは、
MicrosoftのAI at Scale initiativeの一部で、次世代AIの機能の大規模な実現を進めています。

2

概要
In fact, DeepSpeed has become thedefacto framework for distributed
machine learning training--- Mark Eugene Russinovich(Azure CTO) が何度も言及

Who uses DeepSpeed?
（利用例）• Microsoft社内では、深層学習の効率化のため広く使用➢ Turing-NLG: A 17-billion-parameter
language model by Microsoft➢ New Z-code Mixture of Experts
models improve quality, efficiency inTranslator and Azure AI➢ Azure empowers easy-to-use, highperformance, and hyperscale modeltraining using DeepSpeed➢ Video super resolution in Microsoft
Edge
What runs ChatGPT? Inside Microsoft's AI supercomputer

技術の詳細に入る前に、DeepSpeedの利用事例をご紹介します。
Microsoft社内では、深層学習の効率化のため広く使用されており、左にはプロジェクトの例をいくつか示しています。
右側の写真は、AzureのCTOがMicrosoftがどのようにAIのためのスーパーコン
ピュータを構築しているかについて話しているビデオです。
このビデオの中で、DeepSpeedは、深層学習の並列分散処理における事実上の標準のフレームワークとして、何度も言及されています。

3

概要

25,000スター（GitHubのWho uses DeepSpeed? （利用例）

Microsoftのオープンソースソフ
トウェアとして11位）• もちろん社外でも広く使われています！
• AI分野のオープソースソフトウェアとして、もっとも広く使用されているものの一つ• 多くの大規模モデルを訓練するために使用
Megatron-Turing NLG (530B), Jurassic-1(178B), BLOOM (176B), GLM (130B), YaLM
(100B).
• Hugging Face Transformers, Hugging Face
Accelerate, PyTorch Lightning, MosaicML
Composer, Determined AI など、多くの著名な
オープンソースの深層学習フレームワークのバッ
クエンドとして利用& 3,000フォーク

通算530万超ダウンロード

How to use DeepSpeed? （使い方）Webサイト (deepspeed.ai) でドキュメント・チュートリアルを提供

DeepSpeedはオープンソースのソフトウェアなので、もちろん社外でも非常に広く使われており、AI分野のオープソースソフトウェアとして、もっとも広く使用されているものの一つと言ってもよいでしょう。
BLOOMなどよく知られたものを含む多くの代表的な大規模モデルは、DeepSpeedを使用して訓練されています。また、HuggingFaceをはじめとする多くの著名な
オープンソースの深層学習フレームワークのバックエンドとして利用されています。
GitHubのスターは25,000を超えており、Microsoftのオープンソースソフトウェ
アの中では、11位です。これは深層学習に限らず、すべてのレポジトリを含めた順位であり、一位はVSCode、2位はPowerToys、3位はTypeScript、となっていています。DeepSpeedのターゲットとなるAIや深層学習、しかもその高速化や大規模化を必要とする層を考えると、この分野においては非常に高い人気があると言えるでしょう。また、ダウンロード数は530万を超えています。
ドキュメントやチュートリアルは、Webサイトで公開されています。

4

概要
Who uses DeepSpeed? （利用例）• 2023年4月にリリースしたDeepSpeedChatには極めて大きな反響• ChatGPTライクなモデルを学習するためのフレームワーク• GIGAZINE, ITmediaなど著名なオンラ
インメディアに掲載

closed source OpenAI/Microsoft
closed source Anthropic
closed source Anthropic
closed source OpenAI/Microsoft
open source, use DeepSpeed technologies

closed source Google Bard
open source, use DeepSpeed technologies

open source
open source

大規模言語モデル（ChatGPTなどに使用されるタイプの深層学習モデル;
LLM）のリーダーボードにおいて

オープンソース勢としてダントツの存在感

open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies

open source

Chat with Open Large Language Models (lmsys.org)

2023年4月に公開したDeepSpeed-Chatは、DeepSpeedのこれまでの成果の中でも、特に大きな反響があったものです。
これはChatGPTライクなモデルを学習するためのフレームワークで、GIGAZINE,
ITmediaなど著名なオンラインメディアに掲載されました。ChatGPT等の、対話を行うタイプのモデルを評価するリーダーボードをみると、トップ数件はGPT-4を含むクローズドなモデルが占めていますが、オープン化されたモデルについては、
DeepSpeedの技術を使用して学習したものが大半を占めており、当該分野では圧倒的な存在感を示しています。

5

科学研究への応用例• OpenFold• OpenFold library は、DeepMind の AlphaFold 2を、PyTorchを用いて訓練可能のオープンソースフレームワーク• GPUメモリ使用量の削減にDeepSpeedを使用• GenSLMs• SARS-CoV-2 (COVID-19)のゲノムの分析用の大規模言語モデル• 受賞: 2022 ACM Gordon Bell Special Prize for High Performance
Computing-Based COVID-19 Research（大規模計算における権威ある賞）• GPUメモリ使用量の削減にDeepSpeedを使用

6

深層学習の課題 –訓練 (Training) 深層学習では、大量の訓練データを与えて、モデルを訓練するが、計算量・メモリ量・処理デー
タ量がとにかく多い• 現実的な時間で訓練を終えるには、GPU等のアクセラレータ（高価）が必要• モデル規模が大きくなる（=学習パラメータが多くなる）、または訓練データの量が増えると、必要な計算量・メモリ量も増え、多数のGPUを用いた並列処理が必要→ 数千億パラメータ規模のモデルの訓練には、数千GPUを用いても2ヶ月 (e.g., MT-NLG)

DeepSpeedは深層学習の訓練における様々な技術的課題を解決
課題

DeepSpeed の機能モデルが大きすぎてGPUメモリに収まらない

ZeRO (Zero Redundancy Optimizer)

数千GPU規模までスケールさせたい

3D parallelism

高い計算効率のモデルを使用したい

DeepSpeed-MoE

GPU間の通信が遅い

Communication Compression

大規模なデータが必要

DeepSpeed Data Efficiency

ChatGPTにも使用されるRLHF 訓練を効率的に実行 DeepSpeed-Chat

DeepSpeedの技術について述べる前に、深層学習の一般的な課題について、簡単にご説明しておきます。
深層学習では、大量の訓練データを与えて、モデルを訓練します。この訓練において、計算量・メモリ量・処理データ量がとにかく多い、という点が、主要な難しさになります。一般には、現実的な時間で訓練を終えるには、GPUなどの高価なアクセラレータが必要になります。また、深層学習のモデルは、その内部にある学習パ
ラメータとよぶ数値データの量でその規模を図るのですが、モデルの規模が大きくなったり、訓練のデータが増えると、多数のGPUを用いた並列処理が必要になります。極端に大きいモデル、例えば数千億パラメータ規模のモデルの訓練には、数千GPUを用いても2ヶ月といった計算時間がかかることもあります。DeepSpeedは、こうした深層学習の計算効率等に関する様々な課題を解決するものです。
ここでは、代表的な課題と、対応するDeepSpeedの技術についてまとめています。
それぞれの技術については、後で取り上げます。

7

深層学習の課題 –推論 (Inference) • 訓練されたモデルを使用するフェーズを推論という• 実サービスで、多数のユーザによって実行されるのは推論 (e.g., newBing)• 訓練より計算量は少ないものの、低レイテンシ（高速な応答）、低コスト化などの要件が重要
DeepSpeedは推論のための様々な機能も提供
課題

DeepSpeedの機能

高速・スケーラブルな推論

DeepSpeed Inference

簡単にデプロイしたい

DeepSpeed-MII

MoEモデルの推論

DeepSpeed-MoE

巨大モデルを高速に推論

DeepSpeed Compression

また、訓練された深層学習モデルを使用するフェーズを、推論といいます。実サー
ビスで、多数のユーザによって実行されるのは推論です。Bing Chatに話しかけると、何かの文章で応答してくれますが、そこで動いているのは推論です。推論は、一般には訓練より計算量は少ないのですが、低レイテンシ、つまり高速な応答が求められますし、多くのユーザに対して提供することから、低コスト化も重要で、訓練とはまた違う技術的課題があります。DeepSpeedでは、この推論についても、様々な機能を提供しています。

8概要
Why use DeepSpeed?（何に使える？）• 数十億～1兆規模のパラメータを持つ超巨大な深層学習モデルの訓練と推論• 高いスループットと数千GPU規模のスケーラビリティの訓練• 限られたGPUリソース環境における訓練と推論• 極めて低レイテンシかつ高スループットな推論• 高度なモデル圧縮技術による低遅延な推論とモデルサイズ削減

When/Where to use DeepSpeed?
（どういうときに特に有効／よく使われてる？）• 多様な深層学習モデルの訓練や推論を加速• 近年もっとも広く使われているTransformerベースのモデルを高速化（ChatGPTなどもTransformerベース）

DeepSpeedがどういうことに使えるか、大まかにまとめたのがこのリストです。
非常に大きいモデルを訓練する、そのためにたくさんのGPUを使う、といった目的
から、GPUリソースは限られている中で、できるだけ大きいモデルを計算したい、というもの、レイテンシを下げスループットを上げる、といった目的などに使えます。実際のよくある使われ方としては、すでに深層学習モデルを持っているユーザ
が、その訓練や推論を高速化したり、モデルを大きくしたり、というものかと思われます。特に、近年広く使われているTransformerベースのモデル、ChatGPTなどもその一種ですが、その高速化にも非常に効果を発揮します。

9

アウトライン
DeepSpeed の様々な機能を広く浅く紹介• システム関連• ZeRO series (ZeRO, ZeRO Offload, ZeRO Infinity)• 3D parallelism• DeepSpeed Inference• DeepSpeed-MII• モデリング関連 / 横断的トピック• DeepSpeed-MoE• Communication Compression• DeepSpeed Data Efficiency• DeepSpeed Compression• DeepSpeed-Chat: ChatGPTライクな大規模モデルを作るためのフレームワーク

以降では、DeepSpeedの様々な機能について、広く浅く紹介します。

10

DeepSpeed ZeRO
(Zero Redundancy Optimizer)

最初に、DeepSpeedの代表的な機能である、DeepSpeed ZeROについてご説明します。

11

Why ZeRO?

2年でパラメータ規模
は500倍に拡大• モデルの規模は劇的に増大• 高スループット・高スケーラビリティが重要

初めに、ZeROが必要となった背景についてご説明します。近年、深層学習のモデ
ルの規模は、劇的に増大しています。2018年に、自然言語処理分野のブレークス
ルーとなったBERTというモデルが発表されて、これは3.4億個の学習パラメータを持ち、当時は非常に大きいモデルとされていました。ところが2年後の2020年には、1750億ものパラメータを持つGPT-3が発表され、たった2年のうちに、モデルの規模は500倍に拡大したことになります。こうした巨大なモデルを訓練あるいは推論するために、効率の良い計算方法や、並列処理の際のスケーラビリティなどが重要な課題となります。

12

深層学習の並列化
モデル並列

データ並列
パイプライン
並列GPU

GPU

深層学習モデルをレイヤごとに分割しパイプラインで計算

テンソル並列GPUGPU• 高い効率を容易に実現• モデル全体をGPUに複製 → 極めて大きなモデルは学習不可能

内部の計算に使われる巨大な行列を分割

×• 大規模なモデルもGPUメモリに格納可能• モデルの書き換えが必要・高い効率の実現できるモデルが限られる訓練のための計算を現実的に終えるためには、GPUを複数使った並列計算が重要になります。深層学習の並列化方式は主に二つあり、一つはデータ並列、もう一つはモデル並列です。データ並列は、高い効率を容易に実現できるメリットがあります
が、モデル全体をそれぞれのGPUに複製して計算するので、GPT-3のように、非常に大きいモデルの訓練はできません。一方のモデル並列は、モデルを分割して複数のGPUに分けて配置して計算するもので、さらにパイプライン並列・テンソル並列
といった方式に分けられます。大規模なモデルもGPUメモリに格納できるのがメリットですが、モデルを定義するプログラムの書き換えが必要だったり、基本的には通信オーバヘッドの影響で計算の実行効率が下がってしまい、特定のモデルでしか高い実行効率が得られないという難しさがあります。

13

What is ZeRO?
• データ並列のメモリ利用を効率化→ 巨大モデルを高い効率で学習、かつどのようなモデル
アーキテクチャでも適用可能
通常のデータ並列

ZeRO (Zero Redundancy Optimizer)

GPU Interconnect

GPU Interconnect

Layer 0Layer 1
Layer 2GPU 0

Layer 0Layer 1
Layer 2
GPU 1

Layer 0Layer 1
Layer 2GPU 2Model States mapping in Data Parallel Training

Layer 0Layer 1
GPU 0

GPU 1

Layer 2GPU 2Model States mapping in ZeRO Training• 通常データ並列では重複して持つ学習パラメータを、重複のないように各GPUに格納• データが必要になった際に、GPU間の通信で必要な部分だけデータを収集し、使い終わったら捨てる

ZeROは、このうちデータ並列のメモリ利用を効率化するものです。高い効率で学習できるうえに、基本的にどのようなモデルにでも適用できる点がメリットです。
左の図は通常のデータ並列で、すべてのGPUに、このレイヤのパラメータを0,1,2を複製して持っています。
右がZeROで、それぞれのGPUで、重複がないようにデータを格納しています。その動作を非常に単純化して説明すると、次のようになります。
Layer0を計算する際には、GPU0がそのデータを他の2つのデータに送信し、共有します。Layer0の計算が終わると、そのデータはGPUメモリ上から削除されます。
そして次にLayer1の計算に進み、同様な処理が繰り返されます。これにより、
ピークメモリを大幅に小さくできます。

14

What is ZeRO?

• パラメータを集めるのに通信オーバヘッドが生じる• 複数の動作モード（Stage）: 省メモリ効果と通信
オーバヘッドのトレードオフが異なるStandard
data parallel
ZeRO
Stage 1
ZeRO
Stage 2
ZeRO
Stage 3
• どのデータを分割配置するかが異なる
7.5B parameter model, Adam optimizer, 64 GPUs

多数のGPUに分割して配置されたモデルパラメータを、必要になるたびに通信で集めていると、基本的に通信オーバヘッドが大きくなってしまいます。そこで、ZeROには、メモリ削減の効果と通信オーバヘッドのトレードオフが異なる、3つの動作モード（Stage）があります。
ここでは、75億パラメータを持つモデルを、64基のGPUで分散して学習する際の必要メモリを示しています。深層学習では、メモリ利用の支配的な要素として、パラメータ, Gradients, Optimizer stagesの3つがあります。標準的なデータ並列では、120GBのメモリが必要となります。Stage 1では、このうちOptimizer
stagesにだけ、ZeROによるデータの分散配置を適用します。これにより、必要メ
モリは31.4GBになります。Stage 2では、さらにGradientsにも同じ技術を適用す
ると、必要メモリは16.6GBになります。Stage 3では、学習パラメータについても同じ技術を適用すると、必要メモリは劇的に減少し、1.9ＧＢになります。
Stage1, 2では、従来手法から通信オーバヘッドをほぼ増やすことなく、必要メモ
リを大幅に削減できます。Stage3は、さらに多くのメモリを削減できますが、通信オーバヘッドが大きくなります。使用するGPUのメモリや、訓練するモデルの規模に応じて、適切なStageを選ぶことになります。

15

Max
Parameter(in billions)Max
ComputeParallelism Efficiency

Usability(Model Rewrite)

データ並列(DP)Approx. 1.2>1000

Very Good

Great

テンソル並列(TP)Approx. 20

Approx. 16

Good

Needs Model Rewrite

TP + DPApprox. 20> 1000Good

パイプライン並列(PP)

Approx. 100

PP + DPApprox. 100> 1000

Very Good

TP + PP + DP

> 1000> 1000

Very Good Needs Significant Model
Rewrite

ZeRO> 1000> 1000

Very Good

Approx. 128 Very Good

Needs Model Rewrite

Needs Model Rewrite
Needs Model RewriteGreat

これは、一般的な並列化手法とZeROとの比較です。一番上が、基本的なデータ並列ですが、実行効率やスケーラビリティを保ったまま、はるかに大きなパラメータを持つモデルを訓練できるようになります。

16

ZeRO-Offload - 誰もが巨大なモデルを学習できるように • 学習パラメータ等のデータをGPUメモリからCPUメモリにオフロード• ZeRO-3との組合せにより、400億パラメータのモデルを一基のGPUだけで学習

Multi-billion parameter model training on
one V100 GPU

各種の技術的工夫でオフロードのオーバヘッドを減少

これまで説明したZeROに加えて、さらに大きなモデルを訓練するための技術がZeRO-Offloadです。学習パラメータ等のデータを、CPUメモリにオフロードする
ことで、400億パラメータという極めて大規模なモデルでも、1基だけのGPUで学習が可能となっています。こうした技術によって、高価なGPUを多数持つ大企業でなくても、巨大なモデルを学習できます。オフロードには一般的に大きなオーバ
ヘッドが伴いますが、各種の技術的な工夫により、良好なスケーラビリティを示し
ています。

17

ZeRO-Infinity - 極限のモデルサイズへの挑戦 • CPUメモリとNVMeストレージの両方にオフロード• 多くの省メモリ技術を組合せ: ZeRO Stage 3, チェックポインティングなど
Data Parallel 1.4
ZeRO Offload

13

ZeRO Stage 3

20

3D Parallelism

20

NVIDIA DGX-2は16基のV100-32GB GPUとCPU
メモリ1.5 TB、20TBのNVMeストレージを備える

70

ZeRO-Infinity (CPU)1000

ZeRO-Infinity (NVMe)
0

100

200

300

400

500

600

700

800

900

1000

Trainable Model Parameter (Billions)

1基のNVIDIA DGX-2で学習できる最大モデルサイズ

さらに極限のモデルサイズでの訓練のため、NVMeストレージへのオフロードを行
うのが、ZeRO-Infinityです。NVIDIA DGX-2という、16基のGPUを備えたサーバを1台で、1兆パラメータという極端に大きなモデルを学習できることを確認して
います。

18

When/Where to use ZeRO
• 誰でもが巨大モデルを訓練できるように、限られた資源で実行• バッチサイズ（一度に処理するデータ件数）が大きくでき、効率が改善

Who uses ZeRO
• スタートアップ含む多くの企業が取り組みを紹介• 主に自然言語処理、StableDiffusionのファインチューニングなど

ZeROは極めて汎用性の高い技術で、これを用いると、従来手法と比べてはるかに巨大なモデルを訓練できます。また、極端に大きなモデルでなくても、学習パラ
メータのメモリ使用量が減少すると、学習の1サイクルで一度に処理するデータ件
数、これをバッチサイズといいますが、それを大きくできます。GPUはその仕組み
上、多くの件数のデータを処理すると効率が改善するため、実際には省メモリだけ
でなく、スループットを改善する効果が得られることがあります。ZeROは実際に広く使われており、Webで探しても多くの利用例がみつかります。

19

Usecase from Databricks Blog
• Hugging FaceとDeepSpeedによる大規模言語モデルのファインチューニング
• DeepSpeedによる省メモリ化で大きなバッチサイズで学習が可能に→ GPUの実行効率が改善→ 実行時間を1／3に短縮= コストも1／3！

深層学習の訓練はAzureのようなクラウドで実行されることも多い

企業の使用例として、Databricks社のブログに乗っていた例をご紹介します。ここでは、ChatGPTのような大規模モデルの訓練に使われており、DeepSpeedで省メモリ化した結果、バッチサイズが大きくでき、実行時間が1/3になったと記載されています。一定規模のGPUサーバやクラスタは、Azureのようなクラウドで実行されることも多いと思われますが、そこでは実行時間と金銭的なコストは直結していますので、つまりコストを1/3にできたということになります。

20

How to use ZeRO
• チュートリアル:• Zero Redundancy Optimizer - DeepSpeed• ZeRO-Offload - DeepSpeed• 多くのフレームワークと結合: Hugging Face Transformers, Hugging Face
Accelerate, PyTorch Lightning, MosaicML Composer, Determined AI.

PyTorchを用いたプ
ログラムに対し、数行のコードの変更でDeepSpeedを適用

ZeROの使用法については、Webにチュートリアルもありますし、HuggingFaceのTransformersといった代表的なフレームワークなどと結合されており、容易に使用できます。もっとも基本的な使い方では、ここに示したように、PyTorchで記載されたプログラムを数行変更するだけで、ZeROを適用できます。

21

How to use ZeRO
• ブログ:• ZeRO & DeepSpeed: New system optimizations enable training models with over 100
billion parameters• Turing-NLG: A 17-billion-parameter language model by Microsoft• ZeRO-2 & DeepSpeed: Shattering barriers of deep learning speed & scale• DeepSpeed: Extreme-scale model training for everyone - Microsoft Research• DeepSpeed ZeRO-3 Offload - DeepSpeed• ZeRO-Infinity and DeepSpeed: Unlocking unprecedented model scale for deep learning
training - Microsoft Research• 論文:• ZeRO: memory optimizations toward training trillion parameter models• ZeRO-Offload: Democratizing Billion-Scale Model Training• ZeRO-infinity: breaking the GPU memory wall for extreme scale deep learning

ZeROについては、ほかにも多くのブログ記事や論文があります。ご興味のあるか
たは、こちらもご覧になってください。

22

3D Parallelism

次に3D Parallelismという技術について説明します23

Why 3D Parallelism - 超大規模モデルへのスケールアップ -世界最大のモデルを学習（5300億パラメータ、
2021年10月当時）
数千億パラメータ規模のモデル・数千GPU規模の学習には、ZeROに加えて、複数種類の並列化の組合せが必要

ZeROは、データ並列の省メモリ化で大規模なモデルを訓練可能にするもので、特に、ZeRO-Infityでは、1兆規模のパラメータのモデルでの訓練を可能にしています。しかし、モデルサイズに加え、訓練データサイズも大きく、数千台という規模のGPUで学習を行うには、ZeROだけでは不十分で、複数種類の並列化の組み合わせが必要です。DeepSpeedのチームでは、これから紹介する3D parallelismを用いて、2021年に、5300億パラメータという当時世界最大サイズのモデルを学習し
ました。

24

深層学習の並列化
モデル並列

データ並列
パイプライン
並列GPU

GPU

深層学習モデルをレイヤごとに分割しパイプラインで計算

テンソル並列GPUGPU• 高い効率を容易に実現• モデル全体をGPUに複製 → 極めて大きなモデルは学習不可能

内部の計算に使われる巨大な行列を分割

×• 大規模なモデルもGPUメモリに格納可能• モデルの書き換えが必要・高い効率の実現できるモデルが限られる

深層学習の並列化方式は、さきほど紹介したように、データ並列とモデル並列があり、モデル並列はさらに、主にパイプライン並列、テンソル並列と呼ばれる方式が使われています。

25

What is 3D Parallelism• ZeROを用いたデータ並列＋パイプライン並列＋テンソル並列の組合せにより、数千GPUを用いた1兆以上のパラメータのモデルが訓練可能に• ほぼ理想的のスケーラビリティを達成
Max Parameter(in billions)Max
Parallelism

ComputeEfficiency

Usability(Model Rewrite)

Data Parallel (DP)Approx. 1.2>1000

Very GoodGreat

Tensor Parallel (TP)Approx. 20

Approx. 16

Good

Needs Model Rewrite

TP + DPApprox. 20> 1000Good

Pipeline Parallel (PP)

Approx. 100

Approx. 128

Very Good

PP + DPApprox. 100> 1000

Very Good

Needs Model Rewrite

Very Good

Needs Significant Model
RewriteVery GoodGreat

TP + PP + DP

> 1000> 1000

ZeRO> 1000> 1000

Needs Model Rewrite

Needs Model Rewrite

組合せ+

3D parallelismは、名前のとおり、その3つの並列化方式をすべて組み合わせ、さらにはZeROを併用した方式になります。通常、多くのGPUを用いると、オーバ
ヘッドも大きくなるのですが、こうした並列化の組み合わせと、各種の実行効率を向上させる工夫により、数百・数千のGPUを使用しながら、理想的なスケーラビリ
ティを達成しています。

26

When/Where to use 3D Parallelism
5300億パラメータモデルの訓練
Using DeepSpeed and Megatron to Train MegatronTuring NLG 530B, the World’s Largest and Most Powerful
Generative Language Model - Microsoft Researchhttps://www.nikkei.com/article/DGXZQOUC2175R0R20C22A1000000/

DeepSpeedのチームとNVIDIAとの共同で実施した、5300億パラメータモデルの学習は、当時の世界最大サイズだったこともあり、日本でも日経新聞のような一般紙で報道されるなど、話題になりました。

27

Who uses 3D Parallelism
多くの大規模言語モデル（LLM）は3D-Parallelismを使用: Jurassic-1 (178B),
BLOOM (176B), GLM (130B), YaLM (100B).

3D parallelismは、その5300億パラメータのモデル以外にも、BLOOMなど、多くの大規模言語モデルの学習で使われています。

28

How to use 3D Parallelism• ブログ:• DeepSpeed: Extreme-scale model training for everyone Microsoft Research• Using DeepSpeed and Megatron to Train Megatron-Turing NLG
530B, the World’s Largest and Most Powerful Generative
Language Model - Microsoft Research• チュートリアル: Pipeline Parallelism - DeepSpeed• 論文: [2201.11990] Using DeepSpeed and Megatron to
Train Megatron-Turing NLG 530B, A Large-Scale
Generative Language Model (arxiv.org)

3D Parallelismについても、ブログやチュートリアル、論文がありますので、詳細についてはそちらを確認ください。

29

DeepSpeed Inference& DeepSpeed-MII

次に、DeepSpeed Inferenceと、DeepSpeed-MIIについて紹介します。

30

Why DeepSpeed Inference?
• 推論における課題を解決: 1) 大規模モデルの推論のための複数GPU利用,
2) 小さいバッチサイズでの非効率さ, 3) 量子化の適用• 大規模なTransformerモデルに適用し、最大6倍の高速化（低コスト化）

Inferenceとは、このプレゼンテーションでいうところの推論という用語の英語です。
初めに少し触れたように、推論は、訓練より必要な計算やメモリ量は小さいものの、訓練とは違う課題があります。具体的には、大規模モデルのための複数GPU利用、
小さいバッチサイズでの非効率、量子化の適用などがあげられます。DeepSpeed
は、DeepSpeed Inferenceと呼ぶ推論のための機能を提供しており、この図では、大規模なTransformerに適用し、最大6倍の高速化を確認したという結果を示しています。実際にユーザが使用するサービスで使用されるのは基本的に推論であり、推論の高速化は、直接的にサービスの提供コストの削減に貢献します。

31

What is DeepSpeed Inference?
• 推論のためのテンソル並列• 計算カーネル（GPU実行プ
ログラム）を推論のために最適化し、メモリロード時
間を短縮• 柔軟な量子化のサポート（省ビットでの計算によるデータサイズ削減＆計算高速化）

具体的には、DeepSpeed Inferenceでは、推論のためのテンソル並列、計算カー
ネルと呼ばれる、GPU実行のためのプログラムの最適化、並びに量子化と呼ばれる、少ないビット数での計算のサポートなどの特徴を備えています。

32

What is DeepSpeed-MII?
• DeepSpeed Inferenceの最適化された推論機能を、数万の深層学習モデルで利用可能に• MIIで利用することで、元の実装と比べて大幅に低レイテインシ・
低コスト化
DeepSpeed-MII accelerates 24000+ different models

また、DeepSpeed-MIIは、DeepSpeed Inferenceの推論機能を、数万の深層学習モデルで、容易に利用するためのツールです。MIIからモデルを利用することで、元のモデルの実装を変更することなく、大幅に低レイテンシ・低コスト化できます。
この図は、様々なモデルで、もともとのモデルの実装に比べて、MIIを使用すると、大幅にレイテンシが減少したことを示しています。

33

When/Where to use DeepSpeed Inference and MII?
• HuggingFace (or widely-used model architectures)のモデルを高速化• 推論サーバ（gRPC, RESTサービス）を簡単に立ち上げ

Who uses DeepSpeed Inference and MII?
• 多くの利用例が報告• 言語モデル、StableDiffusion, …

DeepSpeed InferenceとDeepSpeed-MIIがよく活用されるシーンとしては、
HuggingFaceのようなレポジトリで提供されているモデルの高速化があります。
また、推論機能をgRPCなどのサーバとして簡単に提供する機能も、サービス提供のために使用されます。実際に利用例は多く報告されています。言語モデルのほか、テキストから画像を生成するStableDiffusionといったモデルも、その高速性から、広く取り上げてられています。

34

How to use DeepSpeed Inference/DeepSpeed-MII?
推論サーバを起動

推論サーバの呼び出し• DeepSpeed-MII Repository (使い方)• DeepSpeed Deep Dive — Model Implementations for Inference (MII)(外部ユーザによるチュートリアル)

これは推論のサーバを起動したり、使用するコード例です。本当にこれだけのコー
ドで、文章生成をはじめとする推論を実行するサーバを起動できます。より詳しい
使い方については、GitHubレポジトリにある使い方を参照ください。また、外部ユーザが書いてくれたチュートリアルもあります。

35

How to use DeepSpeed Inference/DeepSpeed-MII?
• ブログ・チュートリアル:• DeepSpeed: Accelerating large-scale model inference and training via system
optimizations and compression - Microsoft Research• ZeRO-Inference: Democratizing massive model inference – DeepSpeed• DeepSpeed-MII: instant speedup on 24,000+ open-source DL models withup to 40x cheaper inference – DeepSpeed• Stable Diffusion Image Generation under 1 second w. DeepSpeed MII• Getting Started with DeepSpeed for Inferencing Transformer based Models DeepSpeed• Automatic Tensor Parallelism for HuggingFace Models - DeepSpeed• 論文: DeepSpeed-inference: enabling efficient inference oftransformer models at unprecedented scale

ブログやチュートリアル、論文もあります。技術的な課題やアプローチの詳細については、これらの文献に詳しく記載されています。

36

DeepSpeed-MoE

これまで主にシステム面にフォーカスした機能を紹介してきました。深層学習の訓練や推論の効率化では、システムだけでなく、使用するモデルのアーキテクチャを工夫したり、あるいはシステムとモデルの両方にまたがるより横断的なアプローチ
をとる、という方法もあります。ここからは、モデリングのほうにより関係の深い機能について紹介してもらいます。では次の技術として、DeepSpeed-MoEについて紹介します。

37

Why DeepSpeed-MoE?
• ZeROや3D parallelismを用いても、大規模モデルの訓練は膨大な計算量、時間、コストが必要• Mixture of Experts (MoE) と呼ばれる新しいタイプのモデルアーキテクチャでは、入力データに応じてモデルの一部のみを計算• 一方で課題も:• 生成モデル (GPT-3等) での効果が実証されていない• メモリは大量に必要• 推論の性能が低い(入力データ)

まず背景として、ZeROや3D Parallelismを使用しても、膨大なパラメータを持つ
超巨大なモデルの訓練には、同じく膨大な計算量、時間、それに伴うコストが必要です。一方で、訓練を効率化する手法として、近年、Mixture of Experts、略して
MoEという新しいモデルアーキテクチャが提案されています。MoEは、必要に応じて、モデルの一部だけを計算することで、計算効率を向上させる手法です。右側の図に示すように、MoEでは、モデルのそれぞれのレイヤで、複数のexpertと呼ばれる単位を持っています。MoEモデルに入力データが渡されると、それぞれのデー
タごとに特定のexpertだけに渡され、計算はそのexpertだけで行われます。MoEは非常に多数のパラメータを持つモデルを、少ない計算量で処理できることから、近年注目されていますが、課題もいくつかあります。一つは、GPT-3のような生成モデルでの効果が実証されていないこと、次に、多数のExpertを持つために、モデルが大きくなり、メモリが大量に必要なこと、最後に、その独特な仕組みのため、推論の性能が低いことが挙げられます。

38

What is DeepSpeed-MoE?
• MoEを生成モデル（GPT-3等）に適用し、1/5の訓練コストで同様のモデル品質を達成• 新しいアーキテクチャ Pyramid-Residual
MoE (PR-MoE): モデルの品質を落とすことなく、モデルサイズを1.7ー3.2倍縮小• Mixture-of-Student: 蒸留(distillation)と呼ばれる技術で、レイヤ数を削減、99%の性能を維持したままモデルサイズを1.9倍から3.7
倍縮小

DeepSpeed-MoEは、それらの3つの課題を解決します。まずDeepSpeed-MoEは、
GPT-3のような生成モデルに適用して、訓練コストを1/5に削減する一方で、従来手法と同様のモデル品質を達成しました。また、Pyramid-Residual MoEと呼ぶ、右に示すMoEのための新しいアーキテクチャを導入しました。このPyramidResidual MoEは、従来のMoEよりも効率が高く、モデルの品質を落とすことなく、
MoEモデルのサイズを1.7倍から3.2倍に縮小することができました。最後に、蒸留と呼ばれる、モデルの規模を更に縮小するための技術を適用したMixture-ofStudentという仕組みによって、99%の性能を維持したまま、モデルサイズを1.9倍から3.7倍に縮小しました。

39

What is DeepSpeed-MoE?
• MoEの推論を高速化• 異なる並列化方式を効率的に組合せ• 通信オーバヘッドを最小化• カーネルの最適化により、GPUメモリバンド幅利用を最大化• 推論を7.2倍高速化、1兆パラメータのモデルを25msで計算
100

80

Latency (ms)

120

70

100

60

80

50
40

60

30

40

20

20

10

0

0
PyTorch-MoE

DeepSpeed-MoE

200

45

180

40

160

35

140

Latency (ms)

90

140

Throughput (tokens-per-sec)

160

1 Trillion Model

30

120

25

100
20

80

15

60

10

40

Throughput (tokens-per-sec)

349 Billion Model

5

20
0

0
PyTorch-MoE

DeepSpeed-MoE

また、DeepSpeed-MoEでは、従来性能が低かったMoEでの推論を最適化しています。具体的には、複数の並列化方式を組み合わせたほか、通信オーバヘッドの最小化、GPUのメモリバンド幅を向上させるためのカーネルの最適化などを行いました。
こうした最適化の結果、推論を7.2倍高速化し、1兆パラメータの超巨大なモデル
でも、25ミリ秒での推論を可能にしました。

40

DeepSpeed-MoE• When/Where to use DeepSpeed-MoE?
• MoEモデルを効率的に訓練・推論• Who uses DeepSpeed-MoE?

• 活用例: New Z-code Mixture of Experts models improve quality,
efficiency in Translator and Azure AI• How to use DeepSpeed-MoE?
• ブログ:• DeepSpeed powers 8x larger MoE model training with high performance• DeepSpeed: Advancing MoE inference and training to power next-generation
AI scale• チュートリアル:• Mixture of Experts – DeepSpeed• Mixture of Experts for NLG models – DeepSpeed• Getting Started with DeepSpeed-MoE for Inferencing Large-Scale MoE Models• 論文: DeepSpeed-MoE: Advancing Mixture-of-Experts Inference andTraining to Power Next-Generation AI Scale

このように、DeepSpeed-MoEは、MoEモデルの訓練と推論の効率を向上させるものです。DeepSpeed-MoEは、すでにMicrosoft社内外で使用されています。ここでは社内の利用例として、Azure AIの翻訳サービスで使われている、Z-code MoE
モデルを挙げています。使い方や技術的な詳細については、こちらのブログ、チュートリアル、論文をご覧ください。

41

Communication Compression

次に、Communication Compressionという技術について説明します42

Why Communication Compression?
• 複数のGPUを用いる分散深層学習の訓練
では、通信が大きなボトルネック（特に遅いネットワークの場合）• モデル更新に用いるAdamやLAMBなどのアルゴリズムを分散深層学習で用いる
際、GPU間の通信が頻繁に発生• BERT（言語処理分野の代表的モデル）の訓練において、通信の占める時間は、InfiniBandまたはEthernetの場合でそれぞれ最大 52% または 91%

複数のGPUを用いる分散深層学習の訓練では、特にネットワークが遅い場合、通信が大きなボトルネックになります。具体的には、モデル更新に用いるAdamやLAMBなどのアルゴリズムを分散深層学習で用いる際、GPU間の通信が頻繁に発生します。我々の実験では、言語処理分野の代表的モデルであるBERTの訓練で、通信の占める時間は、InfiniBandまたはEthernetネットワークの場合でそれぞれ最大
52% または 91%もの割合を占めていました。

43

What is Communication Compression?
• 1-bit Adam, 1-bit LAMB, 0/1 Adam

• 学習パラメータ更新の代表的アルゴリズムであるAdamやLAMBを拡張• 圧縮によって通信を大幅に効率化

こうした通信オーバヘッドを削減するため、我々は1-bit Adam, 1-bit LAMB, 0/1
Adamと呼ぶ三つのアルゴリズムを考案しました。これらは、広く使用されている
AdamやLAMBアルゴリズムで、圧縮によって通信を大幅に効率化するものです。
例えば1-bit Adamの場合、図に示すように、2段階のアルゴリズムになっています。
まずはじめに、warmupの段階では、オリジナルのAdamを使用します。これは、訓練の初期段階では、一般に訓練が不安定なためです。第2段階では、通信の前にAdamアルゴリズムが内部にもつmomentumというデータを圧縮するとともに、モデルの学習速度を保つための複数の技術を組み合わせることで、最終的なモデルの品質を落とさずに、通信オーバヘッドを減らすことができます。

44

Communication Compression• When/Where to use communication compression?
• Ethernetネットワークのクラスタにおいて、BERTの学習を最大3.3倍
高速化• Who uses communication compression?
• 比較的遅いネットワーク（Ethernet）でDeepSpeedを運用するユー
ザによって活用• How to use communication compression?
• ブログ: 1-bit Adam, 1-bit LAMB
• チュートリアル: 1-bit Adam, 1-bit LAMB, 0/1 Adam
• 論文: 1-bit Adam, 1-bit LAMB, 0/1 Adam

このCommunication Compressionが通信速度が遅いとき特に有効て、実験ではBERTモデルの学習が最大3.3倍高速化されました。比較的遅いネットワークを用いるクラスタを使用しているユーザによって利用されています。使い方や技術的な詳細については、こちらのブログ、チュートリアル、論文をご覧ください。

45

DeepSpeed Data Efficiency

次に紹介するのは、DeepSpeed data efficiencyです。

46

Why DeepSpeed Data Efficiency?
• モデルサイズに加え、訓練データ量も急速に拡大• 訓練コストは、モデルサイズ・訓練データ量の両方に比例して増加• “データ効率”の改善が重要:• 少ないデータ量（＝少ない訓練コスト）で同等の性能を実現• 同じデータ量でより良い性能を実現

近年の代表的モデルの訓練におけるモデル規模（パラメータ数）とデータ量（トークン数）の関係

DeepSpeed data efficiencyが必要な理由として、モデルサイズに加え、訓練デー
タ量も急速に拡大している一方で、訓練コストは、モデルサイズ・訓練データ量の両方に比例して増加することが挙げられます。この図では、過去5年の代表的モデ
ルの訓練において、モデル規模と、訓練データ量がいずれも急速に増大していることを示しています。そこで、データ効率を改善する、つまり、少ないデータ量で同等の性能を実現する、または、同じデータ量でより良い性能を実現することが重要になります。

47

What is DeepSpeed Data Efficiency?
• データをより効率的に活用し、訓練効率とモデル性能を向上させるためのラ
イブラリ• curriculum learningにより効率的にデータをサンプリング• 簡単なデータから開始し、徐々に難しい
データを学習させる• モデルレイヤごとに一部の入力データのみで学習させるrandom layerwise
token dropping (random-LTD).
• 入力データの一部の計算をスキップ

ここで紹介するDeepSpeed data efficiency は、データをより効率的に活用し、訓練効率とモデル性能を向上させるためのライブラリです。右の図に示すように、
DeepSpeed data efficiency は、二つの技術から構成されています。一つはcurriculum learningという技術で、効率的に訓練データをサンプリングします。
具体的には、簡単なデータから訓練を開始し、徐々に難しいデータを学習させます。
もう一つは、random layerwise token droppingと呼んでいる技術で、モデルのレイヤごとに入力されるデータを部分的にスキップし、一部のデータのみで学習しデータ効率を改善する。

48

When/Where to use DeepSpeed Data Efficiency?
• Transformer系のモデルで効果を実証 (GPT-2/3, BERT, ViT).
• GPT-3/BERTでの事前学習(pretraining)において、半分のデータ
量（＝訓練時間を半減）で同等の性能を達成• 同量のデータを用いると、性能も改善• curriculum learningをカスタマイ
ズし、他のタイプのモデルにも適用可能

DeepSpeed data efficiency を使用すると、訓練コストを大幅に節約できます。
我々は、GPT-2, GPT-3, BERT, ViTなどのTransformer系のモデルで効果を実証しました。GPT-3とBERTモデルでは、モデルの品質を保ちつつ、半分の訓練データ量を用いて、つまり半分の訓練時間で訓練できることを示しました。さらに、同じ訓練データ量で、より高いモデル品質が得られることも確認しました。
curriculum learningに関しては、異なる方法を用いるようにカスタマイズし、他のタイプのモデルにも適用可能です。

49

DeepSpeed Data Efficiency
Who uses DeepSpeed Data Efficiency?
• Microsoft社内のモデルの訓練に適用• Sequence Length Warmup(curriculum learning提案手法の一部) は
Amazon, MosaicML, Yandex などで利用

How to use DeepSpeed Data Efficiency?
• ブログ: DeepSpeed Data Efficiency• チュートリアル: DeepSpeed Data Efficiency• 論文:• The Stability-Efficiency Dilemma: Investigating Sequence Length Warmup for
Training GPT Models• Random-LTD: Random and Layerwise Token Dropping Brings Efficient Training forLarge-scale Transformers• DeepSpeed Data Efficiency: Improving Deep Learning Model Quality and Training
Efficiency via Efficient Data Sampling and Routing

DeepSpeed data efficiencyは、Microsoft社内のモデルの訓練に適用されています。また、curriculum learningの一手法として提案した、Sequence Length
Warmupという技術は、Amazon, MosaicML, Yandexなどで利用されています。
使い方や技術的な詳細については、こちらのブログ、チュートリアル、論文をご覧
ください。

50

DeepSpeed Compression

次に、DeepSpeed Compressionについて紹介します。

51

Why DeepSpeed Compression?
• 大規模モデルは推論のコストも大きい• 前述の通りDeepSpeedは推論も高速化できるが、モデルサイズ（および必要な計算量）は変わらない→ モデルを圧縮 (compression) できれば、もっと速くできる• モデル圧縮技術の課題• 処理パイプラインが複雑で利用しづらい• 圧縮のコストが高い• 十分に最適化されたシステムがない• 複数の圧縮技術の組合せが難しい

DeepSpeed Compressionが必要となる理由として、大規模モデルでは、推論のコストも大きいことが挙げられます。先に説明した通り、DeepSpeedは推論も効率化しますが、モデルサイズや、モデルサイズによって決まる必要な計算量が変わる
わけではありません。そこで、モデルを圧縮することができれば、さらに高速化することを考えます。モデル圧縮技術自体は従来からありますが、従来の技術には複数の問題があります。第一に、既存手法は複雑な処理パイプラインが必要で、利用しづらいことが挙げられます。また、圧縮自体にコストがかかる、実際にレイテン
シ短縮の効果を得られるほどにシステム面で十分に最適化されたものがないという問題もあります。さらには、複数の圧縮技術を組み合わせることが困難、という課
題もあります。

52

What is DeepSpeed Compression?
• 新たな圧縮技術• XTC: モデルサイズを 1/32 に• ZeroQuant: 圧縮のコストを 1/5000 に• DeepSpeedの最適化された推論システムと統合• 異なる圧縮技術を組合せ可能

The DeepSpeed Compression library

DeepSpeed Compressionは、こうした課題を解決するため、最先端の圧縮技術を提供します。例えば、XTCでは、モデルサイズを 1/32 に縮小します。また、
ZeroQuantは、圧縮のためのコストを1/5000にします。また、DeepSpeed
Compression はDeepSpeedとシームレスに統合されており、圧縮されたモデルはDeepSpeedの推論システムから効率的に利用できます。最後に、DeepSpeed
Compressionでは、複数の圧縮のための手法を組み合わせでき、より大きな効果を得られるようになっています。

53

DeepSpeed Compression• When/Where to use DeepSpeed Compression?
• 大規模モデルを低コストに推論する際に有効• Who uses DeepSpeed Compression?

• 静止画像の超解像（Bing）: Introducing Turing Image Super Resolution• 動画の超解像（Edge）: Video super resolution• How to use DeepSpeed Compression?

• ブログ: DeepSpeed Compression: A composable library for extreme
compression and zero-cost quantization - Microsoft Research• チュートリアル: DeepSpeed Model Compression Library – DeepSpeed• 論文:• XTC: Extreme Compression for Pre-trained Transformers Made Simple andEfficient• ZeroQuant: Efficient and Affordable Post-Training Quantization for LargeScale Transformers

DeepSpeed Compression は、巨大モデルの推論を低コストで動かしたいときに特に有効です。これまでに社内外で様々なモデルに利用されてきましたが、利用例
としては、BingマップとMicrosoft Edgeのための、画像の解像度を向上させる超解像の技術のモデル推論に貢献しました。使い方や技術的な詳細については、こちらのブログ、チュートリアル、論文をご覧ください。

54

DeepSpeed-Chat

最後に、DeepSpeed-Chatを紹介します55

DeepSpeed Chat: ChatGPTライクなモデルを簡単・高速・低コストに、あらゆるスケールで学習

DeepSpeed-Chatは、ChatGPTライクなモデルを、簡単・高速・低コスト、かつあらゆるスケールで学習するためのフレームワークです。

56

Why DeepSpeed-Chat?
• ChatGPTはモデル非公開・OpenAI/
Azureで動作• オープンソースへの強い期待とニーズ• それぞれの目的に特化したChatGPTライクなモデルを訓練したい• セキュリティ上の理由から、自分の計算環境で動作させたい• ChatGPTライクなモデルを評価するリー
ダーボードで、オープンソースモデルの多くが既にDeepSpeedの技術を使用

ChatGPTライクなモデルの訓練を更に効率化するためのオープンソースのフレー
ムワークを提供：DeepSpeed-Chatclosed source OpenAI/Microsoft
closed source Anthropic
closed source Anthropic
closed source OpenAI/Microsoft
open source, use DeepSpeed technologies

closed source Google Bard
open source, use DeepSpeed technologies

open source
open source
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies
open source, use DeepSpeed technologies

open source

Chat with Open Large Language Models (lmsys.org)

ChatGPTはその公開以来、広い範囲で極めて大きなインパクトを与えていますが、
ChatGPTのモデルは非公開であり、OpenAIもしくはMicrosoftのAzureで動作しています。多くの組織、あるいは個人にとって、それぞれの目的に特化した
ChatGPTライクなモデルを訓練したい、そしてそれをセキュリティ上の理由から、自分の計算環境で動作させたい、というニーズは強くあります。また今日の話の初めに触れましたが、ChatGPTライクなモデルを評価するリーダーボードを見ると、オープンソースモデルの多くが既にDeepSpeedの技術を使用しています。そこで、
DeepSpeedチームでは、ChatGPTライクなモデルの訓練を更に効率化するためのオープンソースのフレームワークを提供することになりました。それがDeepSpeed-Chatです。

57

What is DeepSpeed-Chat• （OpenAIが公開した情報に基づいて）ChatGPTライクなモデ
ルを3つのステップで訓練する
フレームワーク• a) 教師付きファインチューニング
(Supervised fine-tuning, SFT)• b) 報酬モデルのファインチューニ
ング• c) RLHF訓練 (Reinforcement
Learning with Human
Feedback)

ChatGPT• DeepSpeed-Chatで高速かつ低コストでRLHF訓練が可能
DeepSpeed-Chat
DeepSpeed-Chatは、OpenAIが公開した情報に基づいて、ChatGPTライクなモデ
ルを3つのステップで訓練するフレームワークです。ステップ1とステップ2は、大規模モデルの従来のファインチューニング訓練と似ています。一方、ステップ3のRLHF訓練は、最も複雑な処理を行う部分で、最も訓練コストへ影響する部分です。
このステップ3のRLHF訓練を大幅に高速化するのは、DeepSpeed-Chatの最大の
貢献です。

58

What is DeepSpeed-Chat• RLHF訓練では、複数のモデルを扱いつつ、訓練と推論が両方必要→ 複数のモデルを同時に訓練・推論できるメモリ管理技術、および訓練と推論の効率的な切り替えを実現し、大幅に高速化• 既存システムの15倍高速

RLHF訓練の課題として、複数のモデルを扱いつつ、訓練と推論が両方必要となる点が挙げられます。そのため、複数のモデルを同時に訓練・推論できるメモリ管理
技術、および訓練と推論の効率的な切り替えが必要となります。DeepSpeedChatでは、これらを最適化し、既存システムの15倍高速に訓練を実現しました。

59

When/Where to use DeepSpeed-Chat• カスタマイズされたChatGPTライクなモデルを訓練• 極めて高い実行効率 → 大規模モデルでも低コスト

Training with 135M tokens on Azure

DeepSpeed-Chatを用いると、ユーザがそれぞれにカスタマイズされたChatGPT
ライクなモデルを訓練できます。また、これまで何度も触れているように、訓練がAzureのようなクラウドコンピューティングで実行されることを考えると、訓練の実行時間は、コストに直結します。ここで示しているのは、Azureを用いた場合の訓練コストの試算ですが、1750億パラメータという、GPT-3と同じ規模の極端に大きなモデルで、1億以上のトークンデータ量で訓練する場合でも、20時間・5000ドル程度となっています。

60

Who uses DeepSpeed-Chat?

DeepSpeed-Chat
リリース• 極めて多くのユーザから利用の報告

オンラインメディアに多数掲載• ユーザが訓練したモデルがHuggingFace のレポジトリにアップロード

DeepSpeed-Chatは、リリース時から非常に多くの注目を集めました。技術的にはかなり専門的なソフトウェアということになると思いますが、先にお伝えしたよ
うに、GIGAZINE等のオンラインメディアに多数掲載されました。また冒頭で、現在GitHubのスターが25000以上と記載していましたが、実はDeepSpeed-Chatリ
リース前は1万前後であったところ、このリリースによって数日で2倍以上という、爆発的な伸びを示しました。多くのユーザが利用について報告しており、また
DeepSpeed-Chatを用いて学習したモデルが、HuggingFaceのモデルのレポジト
リにアップロードされています。

61

How to use DeepSpeed-Chat?
コマンド一つで一連の訓練を実行

訓練したモデルを試すためのサンプルも付属

英語ブログ, 日本語ブログ
チュートリアル
高度な機能を持つDeepSpeed-Chatですが、使い方は極めて簡単です。環境設定
やインストールを済ませれば、Pythonのコマンド一つで3つのステップの訓練が可
能なスクリプトが提供されています。また、モデルの訓練後、チャット形式で試す
ためのサンプルも提供されています。使い方や技術的な詳細については、こちらのブログとチュートリアルをご覧ください。

62

おわりに
• DeepSpeedの各種技術を簡単にご紹介しました• 様々なチャンネルで情報発信や、ユーザ・コラボレータとのコミュ
ニケーションをしています• 最新情報を知りたい → Twitterアカウント
DeepSpeed (@MSFTDeepSpeed)
マイクロソフトDeepSpeed (@MSFTDeepSpeedJP) （日本語アカウント）• バグレポート等 → GitHubのIssues• 開発に協力する → GitHubのPull Request (PR)• 質問・ディスカッション → GitHubのDiscussion
GitHubのご連絡・お問い合わせは、英語もしくは英語＋日本語でお願いします

ここまでDeepSpeedの主要な機能についてご紹介してきました。DeepSpeedチー
ムでは、GitHubやTwitterなど様々なチャンネルで、情報発信や、ユーザ・コラボ
レータとのコミュニケーションをしています。Twitterでは、日本語のアカウントも運用していますので、ぜひフォローをお願いします。

63