誰でもGPTできます!Microsoft が DeepSpeed Chat をオープンソース化して、ユーザーがモデルをトレーニングできるようにする

序章

4 月 12 日、Microsoft は、ユーザーが ChatGPT に似たモデルのトレーニングを加速できるように、DeepSpeed Chat をオープンソース化したと発表しました。

DeepSpeed Chat は、ChatGPT タイプのモデルのトレーニング プロセスを簡素化し、推論エクスペリエンスを向上させることができます。その中でも、DeepSpeed-RLHF システムは、推論とトレーニングの 2 つのモードを切り替えることができるため、複雑な RLHF トレーニングをより迅速かつ簡単に大規模に推進できます。DeepSpeed-HE は、既存のシステムよりも 15 倍以上高速で、低コストです。Microsoft クラウド Azure では、システムは OPT-13B モデルをわずか 9 時間、OPT-30B モデルを 18 時間でトレーニングできます。

ここに画像の説明を挿入
DeepSpeed-Chat には、次の 3 つのコア機能があります。

  • ChatGPT タイプのモデルの簡素化されたトレーニングと強化された推論エクスペリエンス: Huggingface で事前トレーニングされたモデル、DeepSpeed-RLHF システムで InstructGPT トレーニングの 3 つのステップすべてを実行する、または独自の ChatGPT のようなモデルを生成するなど、1 つのスクリプトだけで複数のトレーニング ステップを実行できます。さらに、ユーザーがモデルのトレーニング後に会話のやり取りをテストできるように、使いやすい推論 API が提供されます。
  • DeepSpeed-RLHF モジュール: DeepSpeed-RLHF は、InstructGPT 論文のトレーニング モデルを複製し、a) 教師あり微調整 (SFT)、b) 報酬モデルの微調整、および c) 人間のフィードバックによる強化学習 ( RLHF). 各ステップはそれに 1 つずつ対応しています。さらに、ユーザーがさまざまなソースからの複数のデータ ソースをトレーニングに使用できるように、データの抽象化とミキシング機能が提供されます。
  • DeepSpeed-RLHF システム: DeepSpeed のトレーニング エンジンと推論エンジンを RLHF トレーニング用の統合ハイブリッド エンジン (DeepSpeed Hybrid Engine または DeepSpeed-HE) に統合します。DeepSpeed-HE は、RLHF で推論モードとトレーニング モードをシームレスに切り替えることができるため、テンソル並列計算や言語生成用の高性能 CUDA 演算子など、DeepSpeed-Inference からのさまざまな最適化を活用できます。 ZeRO および LoRA ベースのメモリ最適化戦略。DeepSpeed-HE は、インテリジェントなメモリ管理と、RLHF のさまざまな段階でのデータ キャッシングも自動的に行うことができます。

DeepSpeed-Chat には、次の 3 つの機能があります。

  • 効率性と手頃な価格: 効率性の点では、DeepSpeed-HE は既存のシステムよりも 15 倍以上高速であり、RLHF トレーニングを迅速かつ手頃な価格にします。たとえば、DeepSpeed-HE は OPT-18B を 30 時間、OPT-600B を 300 時間でトレーニングでき、Azure クラウドで 13 ドルと 9 ドル未満でトレーニングできます。
    ここに画像の説明を挿入

  • 優れたスケーラビリティ: DeepSpeed-HE は数千億のパラメータを持つモデルをサポートし、マルチノード マルチ GPU システムで優れたスケーラビリティを実現できます。したがって、13B モデルでも 1.25 時間でトレーニングできますが、大規模な 175B モデルは DeepSpeed-HE を使用して 1 日でトレーニングできます。
    ここに画像の説明を挿入

    上記の 2 つの表の数値は、DeepSpeed-RLHF によってキュレートされたデータセットと、合計 1 億 3,500 万トークンで 1 エポックをトレーニングするトレーニング レシピで実際に測定されたトレーニング スループットに基づいた、トレーニングのステップ 3 のものです。合計 67.5M のクエリ トークン (131.9k クエリ、シーケンス長 256) と 67.5M の生成トークン (131.9k 回答、シーケンス長 256) があり、最大グローバル バッチ サイズはステップ トークンあたり 0.5M (1024 クエリ-回答) です。ペア)。

  • RLHF トレーニングの民主化: DeepSpeed-HE は、単一の GPU だけで、13 億を超えるパラメーターを持つトレーニング モデルをサポートし、データ サイエンティストがおもちゃの RLHF モデルだけでなく、マルチ GPU システムにアクセスせずに現実世界のシナリオを作成できるようにします。大規模で強力なモデル。
    ここに画像の説明を挿入

実地体験

例 1: DeepSpeed-Chat からトレーニングされた 13 億の最終モデルを提供する Q&A セッション

ここに画像の説明を挿入

例 2: DeepSpeed-Chat からトレーニングされたモデルをフィードすることによるマルチターン会話

ここに画像の説明を挿入

1 つのスクリプトで RLHF トレーニングの 3 つのステージすべてが完了し、最初の ChatGPT モデルが生成されます。

pip install deepspeed>=0.9.0

git clone https://github.com/microsoft/DeepSpeedExamples.git
cd DeepSpeedExamples/applications/DeepSpeed-Chat/
pip install -r requirements.txt

python train.py --actor-model facebook/opt-13b --reward-model facebook/opt-350m --deployment-type single_node

約半日で、13B モデルは完全にトレーニングされ、チェックポイントの準備が整います。次の表は、3 つのステップそれぞれのトレーニング時間の内訳を示しています。

ここに画像の説明を挿入

さまざまなモデル サイズと構成

たとえば、GPU クラスターで研究やビジネス用により大規模で高品質のモデルをトレーニングする場合は、同じスクリプトを使用して、目的のモデル サイズ (例: 66B) と GPU 数 (例: 64 GPU) を構築するだけです。

python train.py --actor-model facebook/opt-66b --reward-model facebook/opt-350m --deployment-type multi_node

ここに画像の説明を挿入

9 時間で、66 億パラメータの ChatGPT モデルをお気に入りのフロントエンド GUI で提供できるようになります。

コーヒーや昼休みが 1 ~ 2 時間しかない場合は、DeepSpeed-Chat を使用して小さなおもちゃのモデルをトレーニングすることもできます。たとえば、コンシューマー グレードの GPU でテストするための単一のデータセットを使用して、1.3B モデルのトレーニング例を準備します。

python train.py --actor-model facebook/opt-1.3b --reward-model facebook/opt-350m --deployment-type single_gpu

ここに画像の説明を挿入
具体的には、規模やハードウェア構成の異なるモデルについて、DeepSpeed-RLHF システムに必要な時間とコストは次のとおりです。

DeepSpeed-Chat の RLHF API を使用して、独自の RLHF トレーニング パイプラインをカスタマイズします

DeepSpeed-Chat を使用すると、ユーザーは以下に示す柔軟な API を使用して独自の RLHF トレーニング パイプラインを構築でき、ユーザーはこれを使用して独自の RLHF トレーニング戦略を再構築できます。これにより、研究探索用のさまざまな RLHF アルゴリズムを作成するための共通のインターフェイスとバックエンドが提供されます。


engine = DeepSpeedRLHFEngine(
  actor_model_name_or_path=args.actor_model_name_or_path,
  critic_model_name_or_path=args.critic_model_name_or_path,
  tokenizer=tokenizer,
  num_total_iters=num_total_iters,
  args=args)

trainer = DeepSpeedPPOTrainer(engine=engine, args=args)

for prompt_batch in prompt_train_dataloader:
  out = trainer.generate_experience(prompt_batch)
  actor_loss, critic_loss = trainer.train_rlhf(out)

参考:https://github.com/microsoft/DeepSpeed/blob/master/blogs/deepspeed-chat/README.md

参考:https://www.deepspeed.ai/

参考:https://github.com/microsoft/DeepSpeedExamples/blob/master/applications/DeepSpeed-Chat/README.md#-deepspeed-chats-roadmap-

実績のある RLHF トレーニング パイプライン

シームレスなトレーニング エクスペリエンスを提供するために、InstructGPT に従い、DeepSpeed-Chat に成熟したエンド ツー エンドのトレーニング パイプラインを含めます (図 1 参照)。

ここに画像の説明を挿入
私たちのパイプラインは、次の 3 つの主要なステップで構成されています。

  • ステップ 1: 教師あり微調整 (SFT)。さまざまなクエリに対する人間の応答が慎重に選択され、事前トレーニング済みの言語モデルが微調整されます。
  • ステップ 2: 報奨モデルの微調整。別の (通常は SFT よりも小さい) モデル (RW) が、人間が提供した同じクエリに対する複数の回答のランキングを含むデータセットを使用してトレーニングされます。
  • ステップ 3: RLHF トレーニング。SFT モデルは、近位ポリシー最適化 (PPO) アルゴリズムを使用して RW モデルからの報酬フィードバックでさらに微調整されます。

モデルの品質を向上させるために、ステップ 3 で 2 つの追加関数を提供します。

  • 指数移動平均 (EMA) のコレクション。最終評価のために EMA ベースのチェックポイントをチェックポイントするオプションがあります。
  • SQuAD2.0 などの公開ベンチマークでの回帰パフォーマンスを防ぐために、トレーニング前の目的 (つまり、次の単語の予測) と PPO の目的を組み合わせたハイブリッド トレーニング。

2 つのトレーニング関数 (EMA とハイブリッド トレーニング) は、オプションである可能性があるため、他の最近の作品では省略されることがよくあります。ただし、InstructGPT によると、EMA チェックポイントは通常、従来の最終トレーニング モデルよりも優れた応答品質を提供し、ハイブリッド トレーニングは、モデルがトレーニング前のベースライン解決能力を維持するのに役立ちます。そのため、ユーザーが InstructGPT で説明されているトレーニングの経験を十分に得て、より高いモデル品質に努めるためにそれらを提供します。

InstructGPT の論文との一貫性が高いことに加えて、研究者や実務家が複数のデータ ソースを使用して独自の RLHF モデルをトレーニングするのをサポートする便利な機能も提供しています。

  • データの抽象化とブレンディング機能: DeepSpeed-Chat は、複数のデータセットを使用してモデルをトレーニングし、モデルの品質を向上させることができます。(1) 異なるデータセットのフォーマットを統一するための抽象データセット レイヤー、(2) 複数のデータセットを適切に混合し、3 つのトレーニング ステージに分割するためのデータ分割/ブレンド機能を備えています。

DeepSpeed ハイブリッド エンジン – RLHF トレーニングを強化および最適化するための統合インフラストラクチャ

命令ガイド付き RLHF パイプラインのステップ 1 と 2 は、大規模モデルの従来の微調整に似ており、ZeRO ベースの最適化と、スケールと速度のための DeepSpeed トレーニングの並列戦略の柔軟な組み合わせによって強化されます。一方、パイプラインのステップ 3 は、パフォーマンスへの影響という点で最も複雑な部分です。各反復では、次の 2 つのフェーズを効率的に処理する必要があります。a) トレーニング用の入力を生成するトークン/エクスペリエンス生成の推論フェーズ、および b) 参加者の重みと報酬モデル、および対話とスケジューリングを更新するトレーニング フェーズそれらの間の。(1) フェーズ 3 全体で SFT および RW モデルの複数のコピーを提供する必要があるため、メモリ コスト、(2) 適切に高速化されていない場合、フェーズ 3 全体の速度が低下する主要な生成フェーズ。かなり。さらに、フェーズ 3 で追加した 2 つの重要な機能 (指数移動平均 (EMA) コレクションとハイブリッド トレーニングなど) では、追加のメモリとトレーニングのコストが発生します。

これらの課題に対処するために、DeepSpeed トレーニングと推論の完全なシステム機能を、ハイブリッド エンジンと呼ばれる統合インフラストラクチャに結合します。DeepSpeed 推論エンジンを生成/評価モードに簡単に適用しながら、元の DeepSpeed エンジンを高速トレーニング モードに利用し、フェーズ 3 RLHF トレーニングに大幅に高速なトレーニング システムを提供します。図 2 に示すように、DeepSpeed トレーニング エンジンと推論エンジンの間の移行はシームレスです。アクター モデルの一般的な評価モードとトレーニング モードを有効にすることで、DeepSpeed はさまざまな最適化を選択して、推論の実行時に推論パイプラインとトレーニング パイプラインを更新します。モデルをより高速に実行し、システム全体のスループットを向上させます。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_45066628/article/details/130221821
おすすめ