生成 AI の新しい世界 | 大規模言語モデル (LLM) の概要

前回の記事「生成 AI の新世界: テキスト生成分野の論文の解釈」では、テキスト生成分野の主な論文 (InstructGPT、RLHF、PPO、GPT-3、GPT) を皆さんに整理してもらいました。 4. この記事では、もう 1 つのホットなトピックであるラージ言語モデル(略して LLM)を整理するのに役立ちます。

Amazon クラウド テクノロジー開発者コミュニティは、開発者にグローバルな開発テクノロジー リソースを提供します。技術ドキュメント、開発事例、技術コラム、トレーニングビデオ、アクティビティやコンテストなどがあります。中国の開発者が世界最先端のテクノロジー、アイデア、プロジェクトとつながることを支援し、優れた中国の開発者やテクノロジーを世界のクラウド コミュニティに推奨します。まだ注目/お気に入りをしていない場合は、これを見たときに慌てずにクリックして、ここを技術の宝庫にしてください。

 

大規模言語モデルとは、数十億のパラメータ (B+) を持つ事前トレーニング済みの言語モデルを指します (例: GPT-3、Bloom、LLaMA)。このようなモデルは、テキスト生成、機械翻訳、自然言語理解など、さまざまな自然言語処理タスクで使用できます。

大規模な言語モデルのこれらのパラメーターは、大量のテキスト データでトレーニングされます。既存の大規模言語モデルは主に Transformer モデル アーキテクチャを採用しており、モデル サイズ、事前学習データ、総計算量が大幅に拡張されています。自然言語をよりよく理解し、特定のコンテキスト (プロンプトなど) に基づいて高品質のテキストを生成できます。コンテキスト学習などのこれらの機能の一部は予測不可能であり、モデル サイズが特定のレベルを超えた場合にのみ観察されます。

以下は、2019 年以降に登場したさまざまな大規模言語モデル (パラメータ数 100 億以上) の年表です。黄色でマークされた大規模モデルはオープンソース化されています。

出典:既存の LLM のタイムライン (>10B)  https://arxiv.org/abs/2303.18223?trk=cndc-detail

この記事では、大規模言語モデルの開発の歴史、コーパス ソース、データ前処理プロセス戦略、トレーニングに使用されるネットワーク アーキテクチャ、最新の研究方向の分析 (LLaMA、PaLM-E など)、いくつかの最良の方法について説明します。インターネット上で大規模な言語モデルをトレーニングするための実践。

大規模言語モデルの開発の歴史

まずは大規模言語モデルの開発の歴史と最新の研究方向の分析を理解しましょう。

大規模言語モデル 1.0過去 5 年間で、オリジナルの Transformer モデルである BERT、BLOOM、GPT、GPT-2、GPT-3 などが登場して以来、この世代の大規模言語モデルは PaLM、Chinchilla、LLaMA で最高潮に達しました。第一世代の Transformers に共通しているのは、それらがすべてラベルのない大規模なテキスト コーパスで事前トレーニングされていることです。

大規模言語モデル 2.0過去 1 年間、私たちは事前トレーニングされ、ラベル付けされたターゲット データに基づいて微調整された多くの大規模な言語モデルを見てきました。第 2 世代の Transformers に共通:ヒューマン フィードバックによる強化学習 (RLHF) またはより古典的な教師あり学習を使用した、ターゲット データの微調整大規模な第 2 世代言語モデルの一般的な例としては、InstructGPT、ChatGPT、Alpaca、Bard などが挙げられます。

大規模言語モデル 3.0過去数か月間、この分野で注目されているトピックは、パラメータの効率的な微調整とドメイン固有のデータでの事前トレーニングであり、これは大規模な言語モデルの計算効率とデータ効率を向上させる最新の方法です。さらに、次世代の大規模言語モデルは、マルチモーダルおよびマルチタスク学習を中心とする可能性があり、これにより、大規模言語モデルに多くの新しく想像力豊かな新機能がもたらされるでしょう。

この記事の第 2 章「大規模モデルの最新の研究方向の分析」では、パラメーターの微調整、特定のデータの事前トレーニング、およびマルチモダリティの方向における関連する進歩の分析についても詳しく説明します。

近年の大規模言語モデルの概要

出典:  https://arxiv.org/abs/2303.18223?trk=cndc-detail

上の図は、近年の大規模言語モデル (パラメータが 10B を超える) の統計を示しています。これには、容量評価、事前学習データ サイズ (トークン数またはストレージ サイズ)、ハードウェア リソース コストが含まれます。

図中の「適応」は、モデルがその後の微調整を受けたかどうかを示します。IT は命令の調整を示し、RLHF は人間のフィードバックによる強化学習を示します。「評価」は、モデルが元の論文の対応する機能について評価されているかどうかを示します。ICL はコンテキスト内学習を意味し、CoT は思考連鎖を意味します。

大規模な言語モデルのコーパスのソース

以前の事前トレーニング済み言語モデル (PLM) と比較して、より多くのパラメーターを持つ大規模な言語モデルは、より多くのトレーニング データ量を必要とし、より広範囲のコンテンツをカバーします。このニーズを満たすために、研究用のトレーニング データセットがますますリリースされています。コンテンツの種類に応じて、書籍、CommonCrawl、Reddit リンク、Wikipedia、コード、その他の 6 つのグループに大別できます。以下の表に示すように:

出典:  https://arxiv.org/abs/2303.18223?trk=cndc-detail

出典:  https://arxiv.org/abs/2303.18223?trk=cndc-detail

上図は、既存の大規模言語モデルの事前学習データにおける各種データソースの比率情報を示しています。

大規模言語モデルのデータ前処理戦略

大量のデータを収集した後、前処理を行うことは、トレーニング前コーパスを構築する上で非常に重要であり、特にノイズが多く、冗長で、無関係で潜在的に有害なデータを除去するために重要です。これらのデータは、大規模な言語モデルの容量とパフォーマンスに大きな影響を与える可能性があります。研究者らは論文の中で、研究チームのデータ前処理戦略と、さまざまな方法で収集されたデータの品質を向上させる方法について1章を割いています。

出典:  https://arxiv.org/abs/2303.18223?trk=cndc-detail

上の図は、この論文における大規模言語モデルの事前トレーニング データ処理の典型的な戦略の概要です。

大規模言語モデルのネットワーク構造

学習フェーズにおける大規模言語モデルのネットワーク構造設計パラメータも、大規模言語モデルのパフォーマンスに影響を与える重要な指標の 1 つです。次の表は、トークン サイズ、正規化方法、位置埋め込み方法、活性化関数、バイアスを使用するかどうか、層の数、アテンション ヘッドの数、隠れ状態のサイズ、最大コンテキストなど、いくつかの大規模な言語モデルの主要なネットワーク構造パラメータを示しています。長さなどのパラメータ。以下の表に示すように:

出典:  https://arxiv.org/abs/2303.18223?trk=cndc-detail

上の表は、複数の大規模言語モデルのモデル カードと詳細な構成情報の概要を示しています。

  • PE は位置埋め込みの略です
  • #L はレイヤー数を示します
  • #H はアテンションヘッドの数を示します
  • dmodel は隠れ状態のサイズを表します
  • MCL は最大コンテキスト長の略です

大規模言語モデルの創発的な力

LLM の創発機能は、正式には「小規模モデルには存在しないが、大規模モデルには存在する機能」と定義されており、これは LLM を以前の PLM と区別する最も顕著な機能の 1 つです。この新しい機能が登場する一方で、注目すべき機能も導入されています。つまり、特定のレベルの規模では、パフォーマンスがランダムな状態よりも大幅に高くなるということです。類推すると、この新しいモデルは物理学における相転移現象と密接に関連しています。原則として、この能力はいくつかの複雑なタスクに関連している可能性があり、人々は複数のタスクを解決するために適用できる一般的な能力に関心を持っています。

出典:  https://arxiv.org/pdf/2206.07682.pdf?trk=cndc-detail

次の 8 つの異なるシナリオのモデルのパフォーマンスは、数ショット プロンプト手法でテストされます。

  • 算術 (修正算術)
  • 音声翻訳(IPA音訳)
  • 単語のスクランブル解除
  • ペルシア語 QA
  • TrusfulQA ベンチマーク
  • グラウンデッドマッピング
  • マルチタスク言語理解 (マルチタスク NLU)
  • 文脈理解のベンチマーク

各ポイントは個別のモデルです。言語モデルがランダム化されると、数回のプロンプト手法を介してタスクを実行できるようになり、モデルのサイズが一定の規模に達すると、パフォーマンスが大幅に向上し、ランダムなレベルよりもはるかに高くなります。

現在、大規模言語モデルには主に次の 3 つの代表的な創発機能があります。

  • 状況に応じた学習
  • 従うべき指示
  • 段階的な推論

文脈学習GPT-3 では、コンテキストを学習する機能が正式に導入されています。言語モデルが自然言語命令と複数のタスクの説明を提供していると仮定すると、追加のトレーニングや勾配を必要とせずに入力テキストの単語シーケンスを完成させることで、テスト インスタンスの期待される出力を生成できます。アップデート。

従うべき指示自然言語記述 (つまり、命令) でフォーマットされたマルチタスク データセットの混合を微調整することにより、LLM は、命令の形式で記述された小さなタスクでも適切に実行します。この能力において、命令チューニングにより、明示的なサンプルを使用せずにタスク命令を理解することで LLM が新しいタスクを実行できるようになり、一般化が大幅に向上します。

段階的な推論数学の文章問題など、複数の推論ステップを含む複雑なタスクは、小規模な言語モデルでは困難なことがよくあります。一方、LLM は、思考連鎖推論戦略を通じて、中間推論ステップを含むプロンプト メカニズムを利用することで、そのようなタスクを解決して最終的な答えに到達することができます。この能力はコードのトレーニングによって獲得できるのではないかと推測されています。

大型模型の最新研究方向性の分析

アマゾンタイタン

2023 年 4 月、Amazon Cloud Technology は Amazon Titan モデルの発売を発表しました。公式 Web サイトとブログの次の情報によると (下の図を参照): Amazon クラウド テクノロジーの顧客の一部が、Amazon の新しい Titan ベース モデルをプレビューしました。現在発売されているAmazon Titanモデルは主に2つのモデルがあります。

  1. 要約、テキスト生成、分類、自由回答式質問応答、情報抽出などのタスクのための生成大規模言語モデル。
  2. テキスト埋め込み (エンベディング) テキスト入力 (単語、フレーズ、さらには大きな記事) をセマンティクスを含むデジタル表現 (ジーエンベディング埋め込みコーディング) に変換できる大規模な言語モデル。

出典:  Basic Model-Amazon Titan-AWS  Amazon Cloud Technology Announces New Tools for Generative AI | Amazon AWS 公式ブログ

このような大規模な言語モデルはテキストを生成しませんが、対照的なエンコーディングにより、モデルが一致するテキストよりも関連性の高いコンテキストに応じた結果を返すのに役立つため、パーソナライズされた推奨や検索などのアプリケーションには有益です。実際、Amazon.com の製品検索機能では、同様のテキスト埋め込みモデルを使用して、顧客が探しているものをより適切に見つけられるようにしています。責任ある AI の使用におけるベスト プラクティスを継続的に推進するために、Titan ベース モデルは、顧客がカスタム モデルに送信したデータ内の有害なコンテンツを特定して削除し、不適切なコンテンツのユーザー入力を拒否し、モデルの出力結果をフィルタリングできます。ヘイトスピーチ、罵り、言葉の暴力などの不適切なコンテンツが含まれているもの。

アルパカ: LLM トレーニング LLM

2023 年 3 月に、GPT-3 に対してベンチマークされる Meta の LLaMA モデルがリリースされる予定です。LLaMA モデルに基づいたプロジェクトは数多くありますが、有名なプロジェクトの 1 つはスタンフォード大学のアルパカ (アルパカ) モデルです。Alpaca は LLaMA モデルに基づいており、微調整のための 70 億のパラメーター命令を備えた言語トランスフォーマーです。Alpaca はヒューマン フィードバックによる強化学習 (RLHF) を使用しませんが、52k の命令と出力のペア (命令と出力のペア) を使用する教師あり学習アプローチを使用します。

出典:  GitHub - tatsu-lab/stanford_alpaca: スタンフォードの Alpaca モデルをトレーニングし、データを生成するためのコードとドキュメント。

研究者らは、人間が生成した命令と出力のペアを使用する代わりに、GPT-3 ベースの text-davinci-003 モデルをクエリすることでデータを取得しましたしたがって、Alpaca は基本的に、弱い監視または知識蒸留風味の微調整を使用します。

出典:スタンフォード CRFM

ここで注目に値するのは、GPT-3 モデルをクエリして取得されるアルパカ (Alpaca) モデルの学習データです。平たく言えば、これは「LLM を使用して LLM をトレーニングする」、または「AI を使用して AI をトレーニングする」です。ほとんどの人はこの事件が人類社会に及ぼす重要性を過小評価しているかもしれないが、私はその重要性が並外れて大きいと思う。これは、AI 間の相互学習と成長がすでに始まっていることを意味します。何年も経って、AI世代の進化の歴史を振り返るとき、この出来事は重要な時間の結節点となるかもしれません。

PaLM-E: マルチモダリティ

2023 年 3 月に PaLM-E モデルがリリースされ、大規模言語モデルとマルチモーダル データ モデル (マルチモーダリティ) の融合における最近の進歩が示されました。これは、大規模言語モデルにおけるもう 1 つの重要な傾向です。ビジョン、マルチモーダル、マルチタスク トレーニングによる機能の拡張です

出典: PaLM-E 論文:  https://arxiv.org/pdf/2303.03378.pdf?trk=cndc-detail

上記の論文で説明されているように、PaLM-E モデルは、特定の推論タスク、視覚言語タスク、および言語タスクのための単一の汎用マルチモーダル言語モデルです。PaLM-E モデルは、マルチモーダル センテンス、つまり、任意のモダリティ (画像、ニューラル 3D 表現または状態、緑と青など) からの入力がテキスト トークン (オレンジ色) とともに LLM の入力、訓練済みエンドとして挿入されるトークンのシーケンスで動作します。 -最後まで。

出典: PaLM-E 論文:  https://arxiv.org/pdf/2303.03378.pdf?trk=cndc-detail

この論文では、3 つの異なるロボット分野における移行学習に関する PaLM-E のテスト結果を比較します。PaLM-E、ViT 事前トレーニング、ロボット工学、およびビジュアル言語の混合データの組み合わせを使用すると、対応するドメイン内データのみでトレーニングする場合に比べて、パフォーマンスが大幅に向上します。

特に、PaLM-E は、プレフィックスまたはキューが与えられた場合に自己回帰的にテキスト補完を生成する完全なデコーダーベースの LLM としてトレーニングされ続けています。では、どのようにして状態表現や画像の入力を可能にするのでしょうか? 彼らは、ネットワークを埋め込みとしてエンコードするようにネットワークを事前にトレーニングしました。画像の場合、Visual Transformer (ViT) の 4B および 22B パラメータを使用して埋め込みベクトルを生成します。これらの埋め込みベクトルは、ワード トークン埋め込みの埋め込み次元と一致するように線形投影されます。

トレーニング中に、マルチモーダルな文を形成するために、最初に、 、 などの特別なトークン トークンを使用し、次にそれらを埋め込み画像と交換します (単語トークンが埋め込み層を介して埋め込まれる方法と同様)。

出典:  AI の先へ #7: 大規模言語モデル 3.0

上の図に示すように、一部の第三者の学者も論文やプレゼンテーションのパフォーマンスの向上を分析しています。PaLM-E、ViT 事前トレーニング、ロボティクス、およびビジュアル言語の混合データの組み合わせを使用した共同トレーニングは、個別のタスクのトレーニング モデルと比較して 2 倍以上のパフォーマンス向上を達成できます。

大規模な言語モデルのトレーニングと構築の最適化

大規模な言語モデルをトレーニングする際の課題

大規模な言語モデルのトレーニングには多くの課題が伴います。一般に、これらの課題は、次の図に示すように 6 つの側面から生じます。

  • ハードウェア
  • ヘルスチェック
  • オーケストレーション
  • データ
  • スケールアップする
  • コストの考慮事項 (コスト)

まずはハードウェアです。最新のハードウェアを使用したい。通常、最新のハードウェアはさまざまなベンチマークで優れたパフォーマンスを提供します。そのため、これらのモデルのトレーニングに数週間または数か月かかり、最新のハードウェアのパフォーマンスを活用していない場合は、モデルをトレーニングして結果を得ることができません。あなたのユースケースに最適です。

2つ目は健康診断です。モデルのトレーニング中の中断を最小限に抑えるために、ハードウェアが適切に実行されていることを確認する必要があります。

また、オーケストレーション、クラスターの起動、クラスターのシャットダウン、ネットワークとセキュリティの構成が適切に機能していること、およびさまざまなワークロードの実行中に機械学習チームが相互に干渉していないことを確認することについても考慮する必要があります。

他に考慮する必要があるのは、大規模なデータセットです。機械学習トレーニングのためにそれらを保存、処理、ロードすることは簡単ではなく、効率的に行うには多大な開発作業が必要になる場合があります。

インフラストラクチャをスケールアップし、インフラストラクチャの制限を回避するアルゴリズムを設計することもまた課題です。今日説明するモデルは通常、単一の GPU には適合しないため、そのモデルを GPU 間で分割する方法を考える必要があります。

最後に、コストを考慮する必要があります。これらの大規模なモデルのトレーニングには、数十万ドル、さらには数百万ドルの費用がかかる場合があります。したがって、機械学習チームの時間を有効に活用したいと考えています。彼らはインフラストラクチャに取り組むのではなく、新しいモデルのアイデアを試すことに集中できるため、ビジネスはそのモデルを活用して最高の結果を達成できます。

大規模な言語モデルの構築の最適化

幸いなことに、Amazon SageMaker はこれらすべての課題に対処し、大規模な言語モデルのトレーニングを加速するのに役立ちます。Amazon SageMaker は、マネージドインフラストラクチャ、ツール、ワークフローを使用して、あらゆるユースケースの機械学習モデルを構築、トレーニング、デプロイできるようになりました。以下に示すように。

以下の図の黄色の部分 (例: Amazon SageMaker 分散トレーニング ライブラリ、Amazon SageMaker トレーニング コンパイルの最適化など)。また、完全なコードを使用して、次の記事の実践実験部分で実装を推測します。より没入感のある体験ができるようになります。

下位レベルではインフラストラクチャがあり、Amazon SageMaker を使用すると、GPU や Trainium を含む最新のハードウェアにアクセスできるだけでなく、トレーニングを分散するために重要なインスタンス間の高速ネットワーク相互接続にもアクセスできます。

中間層には、インフラストラクチャとツールをホストする機能があります。

Amazon SageMaker は大規模なクラスター オーケストレーションを処理し、クラスターを高速化し、最後にスピンダウンします。これらすべてのセキュリティとネットワーク構成に役立つため、顧客データと IP を簡単に安全に保つことができます。

ハードウェアが効率的に実行されていることを確認し、トレーニング ジョブの中断を軽減するために、トレーニング ジョブの開始時にヘルス チェックも実行されます。オーケストレーションは、使用したコンピューティング リソースに対してのみ料金を支払うことも意味します。クラスターが起動してモデルをトレーニングするときにのみ料金が発生するため、高価なハードウェアの費用を 24 時間 365 日支払う必要はありません。

実験の分析、デバッグ、モニタリングを行うためのツールや、可能な限り最良のモデルを保証するためのさまざまな戦略を使用したハイパーパラメーターの最適化のためのツールもあります。

トップレベルには、Amazon SageMaker で非常に使いやすい PyTorch、TensorFlow、Hugging Face などのクラウドに最適化されたフレームワークとライブラリ、および非常に大規模なデータセットや非常に大規模なモデルの処理に役立つ Amazon SageMaker 分散トレーニング ライブラリがあります。 。

Amazon SageMaker を使用したトレーニングの機能と利点についてはこれまでたくさん説明してきましたが、次にそれがどのように機能するかについて話しましょう。モデルをトレーニングするには、いくつかのコンピューティング リソースが必要であり、その後、データセット上で作成したトレーニング コードを実行します。Amazon SageMaker は、タスクを完了するために一時的なトレーニングクラスターを起動することでこれを行います。

トレーニングジョブを送信すると、Amazon SageMaker は選択したクラスター構成に基づいてクラスターを起動します。ECR からトレーニング コードをロードし、S3 からデータをロードして、トレーニングを開始します。トレーニング中に、ログとメトリクスを CloudWatch に出力し、モデルのチェックポイントを S3 に同期し、ジョブの終了時にクラスターをシャットダウンします。チェックポイントから自動的に回復するための回復力を念頭に置いてコードを作成すると、トレーニング ジョブは手動介入なしで自動的に再開されます。

以下は、トレーニング ジョブ、推定 API を開始するためのコア コードです。

    from sagemaker.pytorch import PyTorch

estimator = PyTorch(entry_point = ‘./cifar10.py’,
        role = role,
        framework_version = ‘1.13’,
        py_version = ‘py38’,
        instance_count = 1,
        instance_type = ‘ml.g5.xlarge’,
        hyperparameters = {‘epochs’: 50, ‘batch_size’: 32},
        metric_definitions = [{‘Name’: ‘train:loss’, ‘Regex’: ‘loss: (.*)’}]

estimator.fit(“s3://bucket/path/to/training/data”)

左にスワイプするとさらに表示されます

ここでは PyTorch 推定器が選択されており、エントリ ポイントの関数ファイル cifar10.py が定義されています。これは、独自のローカル コンピューター上でモデルをトレーニングするためのスクリプトを実行することに非常に似ており、これをスクリプト モードと呼びます。Amazon SageMaker トレーニングジョブを使用するにはさまざまな方法がありますが、より柔軟に、独自の Docker コンテナまたはいくつかの組み込みアルゴリズムを提供できます。

次に、使用するフレームワークと Python バージョン、およびトレーニング ジョブのインスタンス タイプ、インスタンス数、ハイパーパラメータを定義します。これらをいつでも簡単に変更したり、他のトレーニング ジョブを開始してさまざまなインスタンス タイプを試したり、ユースケースに最適なハードウェアを確認したりできるようになりました。

次にインジケーターの定義を説明します。これにより、スクリプトから出力されたログを解析する方法が Amazon SageMaker に指示され、Amazon SageMaker はこれらのメトリクスを CloudWatch に送信して、後で確認できるようにします。

最後に、トレーニング データへのパスを指定して estimator.fit() を呼び出します。

Amazon クラウドテクノロジーでの大規模モデルトレーニングのベストプラクティス

この章では、Amazon クラウド テクノロジーにおける大規模言語モデルのベスト トレーニング プラクティスに焦点を当てます。それは大きく次の5つの側面に分けられます。

  • コンピューティング — Amazon SageMaker トレーニング
  • ストレージ - データのロードとチェックポイント設定は、Amazon FSx Lustre ファイル システムまたは Amazon S3 の 2 つの方法で実行できます。
  • 並列処理— GPU を適切に使用するには、分散トレーニング ライブラリを選択することが重要です。SageMaker Shard Data Parallel Processing などのクラウドに最適化されたライブラリを使用することをお勧めしますが、自己管理ライブラリやオープンソース ライブラリも使用できます。
  • ネットワーキング - 高速なマシン間通信のために EFA と NVIDA の GPUDirectRDMA が有効になっていることを確認してください
  • 復元力 — 大規模になると、ハードウェア障害が発生する可能性があります。チェックポイントを定期的に書き込むことをお勧めします (チェックポイント)

スペースの制限により、この記事では上記 5 つの側面のベスト プラクティスの最適化を完全に解釈して分析することはできません。詳細については、Amazon Cloud Technology の公式ブログを参照してください。

以下では、Amazon クラウド テクノロジーにおける大規模モデル トレーニングの並列処理 (Parallelism) のベスト プラクティスを簡単に紹介します。

大規模モデルのトレーニングの並列化 (トレーニングの並列化)

大規模なモデルには通常、数百億から数千億のパラメータがあり、単一の GPU カードに収めることは不可能です。大規模モデルの分野では、現在、FSDP、DeepSpeed、Megatron など、分散コンピューティングをトレーニングするためのオープンソース ライブラリがいくつかあります。これらのライブラリを Amazon SageMaker Training で直接実行することも、開発者エクスペリエンスを容易にするために Amazon クラウド用に最適化された Amazon SageMaker 分散トレーニング ライブラリを使用することもできます。

したがって、大規模言語モデルの分野の開発者には現在、Amazon クラウド テクノロジーに関して 2 つのオプションがあります。

  1. Amazon SageMaker 上の最適化された分散ライブラリを使用した分散トレーニング。
  2. 分散トレーニングを自分で管理します。

以下では、Amazon SageMaker での分散トレーニングに最適化された分散ライブラリを使用する方法の概要を説明します。

より優れた分散トレーニングのパフォーマンスと使いやすさを提供するために、Amazon SageMaker Training は、TensorFlow および PyTorch トレーニング コードを拡張するためのいくつかの独自の拡張機能を提案しています。実際のシナリオでは、大規模な言語モデルのトレーニングは通常、多次元並列 (3D 並列処理) 方式で実行されます。

  • データ並列処理: トレーニング ミニバッチを分割して、モデルの複数の同一コピーにフィードして、処理速度を向上させることができます。
  • パイプライン並列処理: 単一 GPU および単一サーバーを超えてモデル サイズを拡張するために、モデルの個々のレイヤーを異なる GPU またはインスタンスに関連付けます。
  • テンソル並列処理: 単一レイヤーを複数の GPU (通常は同じサーバー内) に分割して、単一 GPU のサイズを超えて単一レイヤーを拡張します。

以下の図例は、8k 3 GPU (サーバーあたり 8 GPU) を備えた k*3 サーバー クラスターで 6 層モデルをトレーニングする方法を示しています。データ並列度は k、パイプライン並列度は 6、テンソル並列度は 4 です。クラスター内の各 GPU にはモデル レイヤーの 4 分の 1 が含まれており、完全なモデルは 3 つのサーバー (合計 24 GPU) に分割されています。

出典:  Amazon SageMaker での大規模言語モデルのトレーニング: ベストプラクティス | AWS 機械学習ブログ

大規模な言語モデルに特に関連する分散プラクティスには次のようなものがあります。

  • Amazon SageMaker 分散モデル並列処理 — このライブラリはグラフパーティショニングを使用して、速度またはメモリに最適化されたインテリジェントなモデルパーティションを生成します。Amazon SageMaker Distributed Model Parallel は、データ並列処理、パイプライン並列処理、テンソル並列処理、オプティマイザ状態シャーディング、アクティベーション チェックポイント設定、オフロードなど、大規模モデルのトレーニングに最新かつ最高の最適化を提供します。
  • Amazon SageMaker シャードデータ並列 -  MiCS: パブリッククラウドで巨大モデルをトレーニングするためのニアリニアスケーリングの 論文では、クラスター全体ではなく、データ並列グループ上でのみモデルを分割する新しいモデル並列戦略が紹介されています。Amazon ウェブ テクノロジーの科学者は、MiCS を使用して、EC2 P4de インスタンス上で 210 層、1 兆 600 億パラメータのモデルをトレーニングするために、GPU あたり 176 テラフロップス (理論上のピークの 56.4%) を達成することができました。MIC は、Amazon SageMaker 並列共有データとして Amazon SageMaker Training の顧客に利用できるようになりました。

Amazon SageMaker 分散トレーニング ライブラリは、高いパフォーマンスとよりシンプルな開発者エクスペリエンスを提供します。並列ランチャーは Amazon SageMaker のタスク起動 SDK にすでに組み込まれているため、開発者はカスタムの並列プロセスランチャーを作成して保守したり、フレームワーク固有の起動ツールを使用したりする必要はありません。

従来の分散トレーニングと比較して、大規模な言語モデルの微調整には通常、データの並列性だけでなく、データの並列性とモデルの並列性も必要になります。Amazon SageMaker モデル並列処理には、使いやすさと安定性 (OOM) の点で、オープンソースの自社構築ソリューション (DeepSpeed など) と比較して、主要な競争上の利点があります。どのモデルに基づく特定の微調整や特定のベストプラクティスなどの技術的な詳細については、Amazon Cloud Technology のソリューションアーキテクトチームに相談して、さらなる技術サポートや専門的なアドバイスを受けることもできます。

要約する

この記事では、大規模言語モデル、コーパス ソース、データ前処理プロセス戦略、トレーニングに使用されるネットワーク アーキテクチャ、最新の研究方向の分析 (LLaMA、PaLM-E など)、および大規模な言語モデルの開発の歴史について説明します。 Amazon クラウドテクノロジーでの言語学習のスケールアップ、モデルトレーニングのベストプラクティスなど。次回の記事では、Amazon クラウドテクノロジーの導入、コンパイルの最適化、分散トレーニング、その他の実践的な実験における大規模言語モデル (LLM) の実践的な実践、解釈、デモンストレーションに焦点を当てますので、ご期待ください。

開発者向けのテクノロジー共有とクラウド開発トレンドについて詳しく知るために、Build On Cloud WeChat 公式アカウントに今後も注目してください。

過去の推薦

# GitOps のベスト プラクティス

#開発者の生態

#機械学習の洞察

著者 黄皓文

AI/ML、データサイエンスなどに重点を置く、Amazon クラウドテクノロジーのシニア開発者エバンジェリスト。電気通信、モバイル インターネット、クラウド コンピューティング業界におけるアーキテクチャ設計、テクノロジー、起業家経営における 20 年以上の豊富な経験を持ち、マイクロソフト、サン マイクロシステムズ、チャイナ テレコムなどの企業に勤務し、ゲームなどの企業クライアントへの提供に注力してきました。 eコマース、メディア、広告、AI/ML、データ分析、エンタープライズデジタルトランスフォーメーションなどのソリューションコンサルティングサービス。

 記事のソース: https://dev.amazoncloud.cn/column/article/64411c1dfed6cd33add92882?sc_medium=regulatorytraffic&sc_campaign=crossplatform&sc_channel=CSDN

 

おすすめ

転載: blog.csdn.net/u012365585/article/details/131015151