Slide 1

Slide 1 text

Mosaic AI Model Training Deep Dive 1 February 2024

Slide 2

Slide 2 text

©2024 Databricks Inc. — All rights reserved 2 大規模なLLMの事前学習を どうやって実現するか?

Slide 3

Slide 3 text

©2024 Databricks Inc. — All rights reserved 3 1つ目:大量のデータ

Slide 4

Slide 4 text

©2024 Databricks Inc. — All rights reserved 4 The Stack The Pile C4 mC4 RefinedWeb Dolma RedPajama Your Data …and so on

Slide 5

Slide 5 text

©2024 Databricks Inc. — All rights reserved 5 2つ目:大規模なモデル

Slide 6

Slide 6 text

©2024 Databricks Inc. — All rights reserved 6 MPT GPT LLama Falcon Orca Nemo StarCoder Your Model …and so on

Slide 7

Slide 7 text

©2024 Databricks Inc. — All rights reserved 7 And then...

Slide 8

Slide 8 text

©2024 Databricks Inc. — All rights reserved 8 Until...

Slide 9

Slide 9 text

©2024 Databricks Inc. — All rights reserved データ • クラウドに置いたデータセットで トレーニング • 高信頼性、高速、スケーラブル 9 高速なトレーニングを追求して開発されたソフトウェア群 The Code • LLMのPre-Training • LLMのFine Tuning • LLMの評価 トレーナー • より高速なトレーニングし • より低いコストで • より高い精度を実現する LLM Foundry Diffusion Composer Streaming

Slide 10

Slide 10 text

©2024 Databricks Inc. — All rights reserved 10 スケーラビリティを実現するオーケストレーションツール MCLOUD

Slide 11

Slide 11 text

©2024 Databricks Inc. — All rights reserved 11 スケーラビリティを実現するオーケストレーションツール 数千個のGPUで分散学習 • クラウドを跨いだ学習 • 大規模な並列化 • 数十億パラメータ 学習の失敗に自動で対処 • GPUの障害を検知 • 簡単で高速なリスタート • クラスターを跨いだリカバリ 高度な分散学習 耐障害性 10億パラメータを数分で • 開発し、学習を実行 • 複雑なセットアップや設定は不要 • 反復が容易 シームレス

Slide 12

Slide 12 text

©2024 Databricks Inc. — All rights reserved 12 MPT-7B MPT-7B-Instruct MPT-7B-Chat MPT-30B MPT-30B-Chat MPT-* (上記に加え、お客様が使用する全てのLLM)

Slide 13

Slide 13 text

©2024 Databricks Inc. — All rights reserved 13

Slide 14

Slide 14 text

©2024 Databricks Inc. — All rights reserved 14 Composer モデルをより高品質に、より速く、より安くトレーニングするライブラリ ● Trainer ○ PyTorchのトレーニングをハイパフォーマンスで実行可能で、機能豊富なAPI ● 分散学習 ○ FullyShardedDataParallel (FSDP) で自動的にラップされ、DistributedDataParallel (DDP) へのフォールバックする仕組みも具備 ○ FSDP は ZeRO Stage 3 の実装 ■ 大規模なモデルをスケーラブルにトレーニングするために必要 ● Methods ○ Alibi : 長いシーケンスへの対応を可能にする ○ GradientClipping : トレーニングを安定させる ● Checkpointing, ICL Evaluation, Auto-Resumption, Lora/PEFT, etc

Slide 15

Slide 15 text

©2024 Databricks Inc. — All rights reserved 15 Composer モデルをより高品質に、より速く、より安くトレーニングするライブラリ ● Trainer ○ PyTorchのトレーニングをハイパフォーマンスで実行可能で、機能豊富なAPI

Slide 16

Slide 16 text

©2024 Databricks Inc. — All rights reserved 16

Slide 17

Slide 17 text

©2024 Databricks Inc. — All rights reserved ● Trainer ○ PyTorchのトレーニングをハイパフォーマンスで実行可能で、機能豊富なAPI ● 分散学習 ○ FullyShardedDataParallel (FSDP) で自動的にラップされ、DistributedDataParallel (DDP) へのフォールバックする仕組みも具備 ○ FSDP は ZeRO Stage 3 の実装 ■ 大規模なモデルをスケーラブルにトレーニングするために必要 17 Composer モデルをより高品質に、より速く、より安くトレーニングするライブラリ

Slide 18

Slide 18 text

©2024 Databricks Inc. — All rights reserved 18 Composer モデルをより高品質に、より速く、より安くトレーニングするライブラリ ● Trainer ○ PyTorchのトレーニングをハイパフォーマンスで実行可能で、機能豊富なAPI ● 分散学習 ○ FullyShardedDataParallel (FSDP) で自動的にラップされ、DistributedDataParallel (DDP) へのフォールバックする仕組みも具備 ○ FSDP は ZeRO Stage 3 の実装 ■ 大規模なモデルをスケーラブルにトレーニングするために必要 ● Methods ○ Alibi : 長いシーケンスへの対応を可能にする ○ GradientClipping : トレーニングを安定させる

Slide 19

Slide 19 text

©2024 Databricks Inc. — All rights reserved 19

Slide 20

Slide 20 text

©2024 Databricks Inc. — All rights reserved 20 Composer モデルをより高品質に、より速く、より安くトレーニングするライブラリ ● Trainer ○ PyTorchのトレーニングをハイパフォーマンスで実行可能で、機能豊富なAPI ● 分散学習 ○ FullyShardedDataParallel (FSDP) で自動的にラップされ、DistributedDataParallel (DDP) へのフォールバックする仕組みも具備 ○ FSDP は ZeRO Stage 3 の実装 ■ 大規模なモデルをスケーラブルにトレーニングするために必要 ● Methods ○ Alibi : 長いシーケンスへの対応を可能にする ○ GradientClipping : トレーニングを安定させる ● Checkpointing, ICL Evaluation, Auto-Resumption, Lora/PEFT, etc

Slide 21

Slide 21 text

©2024 Databricks Inc. — All rights reserved 21 https://docs.mosaicml.com/ projects/composer/

Slide 22

Slide 22 text

©2024 Databricks Inc. — All rights reserved 22

Slide 23

Slide 23 text

©2024 Databricks Inc. — All rights reserved 23 Streaming クラウドストレージからデータセットを高速かつ正確にストリーミング ● クラウドストレージ ○ OCI, Azure, GCP, AWSのクラウドストレージにデータを配置し、トレーニング環境へ オンデマンドで直接データをストリーミングで提供 ● MDS ○ Mosaic Data Shards ○ 高速な学習とデータ転送を可能にするバイナリデータフォーマット ● 決定論的なデータシャッフル ○ 適切なデータシャッフルを決定論的に実施することは非常に難易度が高い ○ Streaming shuffling = ロスのスパイクを無くし、決定論的シャッフルを実現 ■ py1s, py1b, etc

Slide 24

Slide 24 text

©2024 Databricks Inc. — All rights reserved 24 Streaming クラウドストレージからデータセットを高速かつ正確にストリーミング ● クラウドストレージ ○ OCI, Azure, GCP, AWSのクラウドストレージにデータを配置し、トレーニング環境へ オンデマンドで直接データをストリーミングで提供

Slide 25

Slide 25 text

©2024 Databricks Inc. — All rights reserved 25

Slide 26

Slide 26 text

©2024 Databricks Inc. — All rights reserved 26 Streaming クラウドストレージからデータセットを高速かつ正確にストリーミング ● クラウドストレージ ○ OCI, Azure, GCP, AWSのクラウドストレージにデータを配置し、トレーニン グ環境へオンデマンドで直接データをストリーミングで提供 ● MDS ○ Mosaic Data Shards ○ 高速な学習とデータ転送を可能にするバイナリデータフォーマット

Slide 27

Slide 27 text

©2024 Databricks Inc. — All rights reserved 27 MPT-30B pre-training dataset - 10 streams - 488,894 shards - 2,000,047,734 samples (physical) - 32,784,871,217,218 bytes (decompressed)

Slide 28

Slide 28 text

©2024 Databricks Inc. — All rights reserved 28 Streaming クラウドストレージからデータセットを高速かつ正確にストリーミング ● クラウドストレージ ○ OCI, Azure, GCP, AWSのクラウドストレージにデータを配置し、トレーニング環境へ オンデマンドで直接データをストリーミングで提供 ● MDS ○ Mosaic Data Shards ○ 高速な学習とデータ転送を可能にするバイナリデータフォーマット ● 決定論的なデータシャッフル ○ 適切なデータシャッフルを決定論的に実施することは非常に難易度が高い ○ Streaming shuffling = ロスのスパイクを無くし、決定論的シャッフルを実現 ■ py1s, py1b, etc

Slide 29

Slide 29 text

©2024 Databricks Inc. — All rights reserved 29

Slide 30

Slide 30 text

©2024 Databricks Inc. — All rights reserved 30

Slide 31

Slide 31 text

©2024 Databricks Inc. — All rights reserved 31 https://docs.mosaicml.com/ projects/streaming/

Slide 32

Slide 32 text

©2024 Databricks Inc. — All rights reserved 32

Slide 33

Slide 33 text

©2024 Databricks Inc. — All rights reserved 33 LLM Foundry ● MPT ○ モデルコード(モデルレイヤー、PretrainingとFinetuningのための dataloader、optimizer、tokenizerなどを含む) ● Recipes ○ PretrainingとFinetuningのためのプリセット構成 ○ これらのレシピには、PretrainingとFinetuningのために吟味されたハイ パーパラメータが含まれる ● Evaluation ○ InContext Learning による評価や Gauntlet に必要な全てのコード ○ 学習中、モデル出力からICLタスク生成させ、一連の評価ベンチマークで 実行させることができる。 LLMのトレーニング、ファインチューニング、評価のコードを含むリポジトリ

Slide 34

Slide 34 text

©2024 Databricks Inc. — All rights reserved 34 LLM Foundry LLMのトレーニング、ファインチューニング、評価のコードを含むリポジトリ ● MPT ○ モデルコード(モデルレイヤー、PretrainingとFinetuningのための dataloader、optimizer、tokenizerなどを含む)

Slide 35

Slide 35 text

©2024 Databricks Inc. — All rights reserved 35 LLM Foundry LLMのトレーニング、ファインチューニング、評価のコードを含むリポジトリ ● MPT ○ モデルコード(モデルレイヤー、PretrainingとFinetuningのための dataloader、optimizer、tokenizerなどを含む) ● Recipes ○ PretrainingとFinetuningのためのプリセット構成 ○ これらのレシピには、PretrainingとFinetuningのために吟味されたハイ パーパラメータが含まれる

Slide 36

Slide 36 text

©2024 Databricks Inc. — All rights reserved 36

Slide 37

Slide 37 text

©2024 Databricks Inc. — All rights reserved 37 Why YAML?

Slide 38

Slide 38 text

©2024 Databricks Inc. — All rights reserved 38 Why YAML? Many, many things to configure

Slide 39

Slide 39 text

©2024 Databricks Inc. — All rights reserved 39

Slide 40

Slide 40 text

©2024 Databricks Inc. — All rights reserved 40 LLM Foundry LLMのトレーニング、ファインチューニング、評価のコードを含むリポジトリ ● MPT ○ モデルコード(モデルレイヤー、PretrainingとFinetuningのための dataloader、optimizer、tokenizerなどを含む) ● Recipes ○ PretrainingとFinetuningのためのプリセット構成 ○ これらのレシピには、PretrainingとFinetuningのために吟味されたハイ パーパラメータが含まれる ● Evaluation ○ InContext Learning による評価や Gauntlet に必要な全てのコード ○ 学習中、モデル出力からICLタスク生成させ、一連の評価ベンチマークで 実行させることができる。

Slide 41

Slide 41 text

©2024 Databricks Inc. — All rights reserved 41

Slide 42

Slide 42 text

©2024 Databricks Inc. — All rights reserved 42 https://github.com/mosaicm l/llm-foundry

Slide 43

Slide 43 text

©2024 Databricks Inc. — All rights reserved 43 ソフトウェアだけでなく、 トレーニングを実行する環境も提供

Slide 44

Slide 44 text

©2024 Databricks Inc. — All rights reserved 44 MCLOUD

Slide 45

Slide 45 text

©2024 Databricks Inc. — All rights reserved 45 MCloud トレーニングのオーケストレーションと実行のためのプラットフォーム ● トレーニングの実行管理 ○ 数千個のGPUに跨る学習の実行をスケジューリング ○ 複数のクラウド上の複数のクラスターで、トレーニング実行のスケジューリン グとデプロイを管理 ● 障害の自動リカバリ ○ GPUの障害をモニタリング ○ 使用不能になったGPUを除外し、最新の状態から自動的にリスタート ● 様々なインテグレーション・ユーティリティ ○ プロビジョニング環境 (例:正しい WORLD_SIZE の取り込み) ○ インテグレーション (例:Git、クラウドストレージの認証、 etc) ○ 全てのノードからリアルタイムにログをストリーミング

Slide 46

Slide 46 text

©2024 Databricks Inc. — All rights reserved 46 MCloud トレーニングのオーケストレーションと実行のためのプラットフォーム ● トレーニングの実行管理 ○ 数千個のGPUに跨る学習の実行をスケジューリング ○ 複数のクラウド上の複数のクラスターで、トレーニング実行のスケジューリ ングとデプロイを管理

Slide 47

Slide 47 text

©2024 Databricks Inc. — All rights reserved 47 Our LLM Foundry YAML MCLI YAML

Slide 48

Slide 48 text

©2024 Databricks Inc. — All rights reserved 48 MCloud トレーニングのオーケストレーションと実行のためのプラットフォーム ● トレーニングの実行管理 ○ 数千個のGPUに跨る学習の実行をスケジューリング ○ 複数のクラウド上の複数のクラスターで、トレーニング実行のスケジューリングと デプロイを管理 ● 障害の自動リカバリ ○ GPUの障害をモニタリング ○ 使用不能になったGPUを除外し、最新の状態から自動的にリスタート

Slide 49

Slide 49 text

©2024 Databricks Inc. — All rights reserved 49

Slide 50

Slide 50 text

©2024 Databricks Inc. — All rights reserved 50 MCloud トレーニングのオーケストレーションと実行のためのプラットフォーム ● トレーニングの実行管理 ○ 数千個のGPUに跨る学習の実行をスケジューリング ○ 複数のクラウド上の複数のクラスターで、トレーニング実行のスケジューリン グとデプロイを管理 ● 障害の自動リカバリ ○ GPUの障害をモニタリング ○ 使用不能になったGPUを除外し、最新の状態から自動的にリスタート ● 様々なインテグレーション・ユーティリティ ○ プロビジョニング環境 (例:正しい WORLD_SIZE の取り込み) ○ インテグレーション (例:Git、クラウドストレージの認証、 etc) ○ 全てのノードからリアルタイムにログをストリーミング

Slide 51

Slide 51 text

©2024 Databricks Inc. — All rights reserved 51 MCloud トレーニングのオーケストレーションと実行のためのプラットフォーム ● CLI → MCLI ● UI → https://console.mosaicml.com/ ● SDK → https://pypi.org/project/mosaicml-cli/

Slide 52

Slide 52 text

©2024 Databricks Inc. — All rights reserved 52 Demo https://youtu.be/QyxB_QA94U4?si=SF2iCLx0P1TtAaVG