Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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