大規模モデルは AI 界のトレンドになっており、主要なパフォーマンス リストを席巻するだけでなく、多くの興味深いアプリケーションも生成します。たとえば、Microsoft と OpenAI が開発した自動コード提案補完ツール Copilot は、プログラマーにとって最高のアシスタントとなり、作業効率を向上させます。
OpenAI は、偽のテキストと本物のテキストを生成できる画像モデルである DALL-E 2 をリリースしたばかりです。その後、Google も Imagen をリリースしました。大規模モデルに関しては、大企業も同様ですかなり大きく、CV ランキングと比べても遜色ありません。
テキストから画像への生成例「猫につまずかれたギリシャ人の像」 (左側の 2 列は Imagen、右側の 2 列はDALL・E 2) モデルの拡大がもたらす奇跡の性能により、近年、事前学習モデルの規模が爆発的に増大しています。ただし、大規模なモデルのトレーニングや微調整には非常に高額なハードウェア コストが必要となり、多くの場合、数十、数百の GPU が必要になります。さらに、PyTorch や TensorFlow などの既存の深層学習フレームワークも、非常に大規模なモデルを効果的に処理することが難しく、通常、特定のモデルを適応させて最適化するには専門の AI システム エンジニアが必要になります。さらに重要なのは、すべての研究室や研究開発チームがいつでも大規模な GPU クラスターを呼び出して大規模なモデルを使用できるわけではなく、ましてやグラフィックス カードを 1 枚しか持たない個人の開発者はなおさらです。そのため、大型モデルは注目を集めているものの、敷居が高く一般には「手の届かないもの」となっていました。
#大規模なモデルの使用によるコスト増加の主な理由は、ビデオ メモリの制限です。 GPU コンピューティングは高速ですが、メモリ容量が限られているため、大規模なモデルに対応できません。この問題点に対処するために、Colossal-AI はヘテロジニアス メモリ システムを使用して GPU メモリと安価な CPU メモリの両方を効率的に使用し、GPU を 1 つだけ備えた個人の PC 上で最大 180 億のパラメータ GPT をトレーニングでき、モデルの容量を増やすことができます。大規模な AI モデルの微調整や推論など、下流のタスクやアプリケーション展開の敷居を大幅に下げ、大規模な配布まで簡単に拡張できます。 Hugging Face は、GPT や OPT などの大規模なモデルを含む 50,000 を超える AI モデルの実装をディープ ラーニング コミュニティに提供しており、最も人気のある AI ライブラリの 1 つとなっています。
Colossal-AI は、Hugging Face コミュニティ モデルをシームレスにサポートし、すべての開発者の手の届く範囲で大規模なモデルを作成します。次に、Meta がリリースした大規模モデル OPT を例に、Colossal-AI を使用して、数行のコードを追加するだけで大規模モデルのトレーニングと微調整を低コストで実現する方法を示します。
オープンソースアドレス: https://github.com/hpcaitech/ColossalAI 低コスト高速化大規模モデル OPTOPT モデル OPT の正式名は Open Pretrained Transformer で、Meta からリリースされています。 (Facebook) AI 研究所 GPT-3 のベンチマークとなる大規模な Transformer モデル。 OpenAI がまだモデルの重みを公開していない GPT-3 と比較して、Meta AI はすべてのコードとモデルの重みを寛大にオープンソース化しており、これにより AI の大規模モデルの民主化が大幅に促進され、すべての開発者はこれに基づいて個性を開発できます。タスク。次に、Hugging Face によって提供される OPT モデルの事前トレーニングされた重みを使用して、カジュアル言語モデリングを微調整します。設定ファイルの追加 Colossal-AI の強力な機能を使用するために、ユーザーはコード トレーニング ロジックを変更する必要はなく、単純な設定ファイルを追加するだけで、混合精度、勾配累積、モデルに必要な機能を与えることができます。多次元並列トレーニング、冗長メモリの最適化など。 GPU では、異種トレーニングを例にとると、関連する構成項目を構成ファイルに追加するだけで済みます。その中で、tensor_placement_policy は異種混合トレーニング戦略を決定します。このパラメータには cuda、cpu、auto を指定できます。各戦略にはさまざまな利点があります:
一般ユーザーの場合、自動戦略を選択するだけで済みます。Colossal-AI は、最適な異種戦略をリアルタイムで自動的かつ動的に選択し、コンピューティング効率を最大化します。
from colossalai.zero.shard_utils import TensorShardStrategy<br><br><br>zero = dict(model_config=dict(shard_strategy=TensorShardStrategy(),<br>tensor_placement_policy="auto"),<br>optimizer_config=dict(gpu_margin_mem_ratio=0.8)
Run Start 構成ファイルの準備ができたら、数行のコードを挿入するだけで、宣言された新しい関数を開始できます。まず、コード行を通じて、構成ファイルを使用して Colossal-AI を起動します。Colossal-AI は分散環境を自動的に初期化し、関連する構成を読み取り、構成内の関数をモデル、オプティマイザー、およびその他のコンポーネントに自動的に挿入します。 。
colossalai.launch_from_torch(config='./configs/colossalai_zero.py')
次に、ユーザーはネイティブ PyTorch コードを直接使用するなど、通常どおり、データセット、モデル、オプティマイザー、損失関数などを定義できます。モデルを定義するときは、ZeroInitContext の下にモデルを配置して初期化するだけです。この例では、OPTForCausalLM モデルと、Hugging Face によって提供される事前トレーニング済みの重みを使用して、Wikitext データセットを微調整します。
with ZeroInitContext(target_device=torch.cuda.current_device(), <br>shard_strategy=shard_strategy,<br>shard_param=True):<br>model = OPTForCausalLM.from_pretrained(<br>'facebook/opt-1.3b'<br>config=config<br>)
次に、colossalai.initialize を呼び出して、構成ファイルで定義された異種メモリ関数をトレーニング エンジンに均一に注入し、対応する関数を開始します。
engine, train_dataloader, eval_dataloader, lr_scheduler = colossalai.initialize(model=model,<br> optimizer=optimizer,<br> criterion=criterion,<br> train_dataloader=train_dataloader,<br> test_dataloader=eval_dataloader,<br> lr_scheduler=lr_scheduler)
この利点は、単一 GPU で顕著です。Microsoft DeepSpeed と比較して、Colossal-AI は自動化された自動戦略を使用し、さまざまなモデル サイズで DeepSpeed の ZeRO オフロード戦略と比較します。すべて表示されます。大きなメリットがあり、最速で40%の加速を達成できます。 PyTorch などの従来の深層学習フレームワークは、単一の GPU でこのような大規模なモデルを実行できなくなりました。
8 GPU を使用した並列トレーニングの場合、Colossal-AI は起動コマンドに nprocs 8 を追加するだけで実現できます。このような大幅な改善の秘密は、Colossal-AI の効率的な異種メモリ管理サブシステムである Gemini にあります。簡単に言うと、モデルのトレーニング中に、Gemini は最初の数ステップで予熱し、PyTorch 動的計算グラフでメモリ消費情報を収集します。ウォームアップが完了した後、演算子を計算する前に、収集されたメモリ使用量の記録を使用します。この演算子が必要とするピーク メモリをコンピューティング デバイス上で予約し、同時に一部のモデル テンソルを GPU メモリから CPU メモリに移動します。
Gemini の組み込みメモリ マネージャーは、HOLD、COMPUTE、FREE などのステータス情報で各テンソルをマークします。その後、動的にクエリされたメモリ使用量に基づいて、テンソル状態を継続的に動的に変換し、テンソル位置を調整します。DeepSpeed の ZeRO Offload の静的分割と比較して、Colossal-AI Gemini は GPU メモリと CPU メモリをより効率的に利用して最大化モデルを実現できます。ハードウェアが非常に限られている場合の能力とバランストレーニングの速度。
大規模モデルの代表的な GPT の場合、RTX 2060 6GB を搭載した通常のゲーミング ノートブックで Colossal-AI を使用するだけで、最大 15 億のパラメーターのモデルをトレーニングできます。 RTX3090 24GB を搭載したモデルの場合 パソコンは 180 億のパラメータでモデルを直接トレーニングできます; Colossal-AI は、Tesla V100 などのプロフェッショナル コンピューティング カードでも大幅な改善を示すことができます。さらに一歩進んだ便利で効率的な並列拡張 モデル学習をさらに高速化するための重要な手段となる並列分散技術 世界最大かつ最先端の AI モデルを最短時間で学習させるには、やはり並列分散技術が欠かせません効率的な分散並列拡張。並列ディメンションの制限、低効率、低汎用性、導入の困難さ、メンテナンスの欠如など、既存のソリューションの問題点を考慮して、Colossal-AI を使用すると、ユーザーは効率的なマルチプロセッサなどのテクノロジーを通じて、最小限の変更のみで効率的かつ迅速に導入できるようになります。次元並列処理と異種並列処理 AI 大規模モデルのトレーニング。たとえば、データ並列処理、パイプライン並列処理、2.5 次元テンソル並列処理などを使用する複雑な並列戦略は、簡単な宣言で自動的に実装できます。Colossal-AI は、コードに侵入して、他のシステムのように複雑な基盤ロジックを手動で処理する必要はありません。そしてフレームワーク。
Python<br>parallel = dict(<br>pipeline=2,<br>tensor=dict(mode='2.5d', depth = 1, size=4)<br>)
具体的には、GPT-3 のような非常に大規模な AI モデルの場合、同じコンピューティング リソースを使用できる場合、Colossal-AI は NVIDIA ソリューションと比較してトレーニングを開始するのに半分のコンピューティング リソースのみを必要とします。 11% 増加し、GPT-3 トレーニングのコストを 100 万米ドル以上削減できます。 Colossal-AI 関連のソリューションは、自動運転、クラウド コンピューティング、小売、医療、チップ、その他の業界の有名メーカーによって導入され、広く賞賛されています。
たとえば、タンパク質構造予測アプリケーション AlphaFold2 の場合、Colossal-AI の高速化プログラムに基づく FastFold は、Google とコロンビア大学のプログラムを上回ることに成功し、AlphaFold2 のトレーニング時間を 11 時間から短縮しました。 67 時間に短縮され、総コストが削減され、長系列推論では 9.3 ~ 11.6 倍の高速化を実現します。
Colossal-AI は、オープンソース コミュニティの構築に重点を置き、中国語のチュートリアルを提供し、ユーザー コミュニティとフォーラムを開き、効率的なコミュニケーションとユーザー フィードバックの反復的な更新を実施し、次のような最先端のアプリケーションを継続的に追加しています。 PaLMとAlphaFoldとして。 Colossal-AIは、その自然なオープンソース以来、GitHubおよびPapers With Codeのホットリストで何度も世界1位にランクされており、数万のスターを擁する多くのスターオープンソースプロジェクトとともに国内外で注目を集めています。
ポータル プロジェクト アドレス: https://github.com/hpcaitech/ColossalAI
以上がHugging Face コミュニティをシームレスにサポートし、Colossal-AI は大規模モデルを低コストで簡単に加速しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。