Colossal-AIはHugging Faceコミュニティをシームレスにサポートし、低コストで大規模モデルを簡単に加速します。

Colossal-AIはHugging Faceコミュニティをシームレスにサポートし、低コストで大規模モデルを簡単に加速します。

大規模モデルは 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 メモリを同時に効率的に使用します。1 つの GPU のみを搭載した個人用 PC で最大 180 億のパラメータ GPT をトレーニングできるため、モデル容量を 10 倍以上に増やすことができ、大規模 AI モデルの微調整や推論などの下流タスクやアプリケーション展開の敷居が大幅に下がり、大規模な配布にも簡単に拡張できます。 Hugging Face は、GPT や OPT などの大規模モデルを含む 50,000 以上の AI モデル実装をディープラーニング コミュニティに提供しており、現在では最も人気のある AI ライブラリの 1 つとなっています。

Colossal-AI は Hugging Face コミュニティ モデルをシームレスにサポートし、すべての開発者が大規模なモデルにアクセスできるようにします。次に、Meta がリリースした大規模モデル OPT を例に、Colossal-AI を使用して、数行のコードを追加するだけで大​​規模モデルの低コストのトレーニングと微調整を実現する方法を説明します。

オープンソースアドレス: https://github.com/hpcaitech/ColossalAI 低コストで高速化された大規模モデル OPTOPT モデルの正式名称は Open Pretrained Transformer で、Meta (Facebook) AI Laboratory がリリースした GPT-3 に匹敵する大規模 Transformer モデルです。 OpenAI によってモデルの重みがまだ公開されていない GPT-3 と比較して、Meta AI はすべてのコードとモデルの重みを惜しみなくオープンソース化し、大規模 AI モデルの民主化を大幅に促進しました。すべての開発者は、それらを基盤として使用して、パーソナライズされた下流タスクを開発できます。次に、Hugging Face が提供する OPT モデルの事前トレーニング済みの重みを使用して、カジュアル言語モデリングを微調整します。構成ファイルを追加する Colossal-AI の強力な機能を使用するために、ユーザーはコード トレーニング ロジックを変更する必要はありません。混合精度、勾配累積、多次元並列トレーニング、冗長メモリ最適化などの必要な機能をモデルに付与するには、シンプルな構成ファイルを追加するだけです。 GPU では、異種トレーニングを例にとると、構成ファイルに関連する構成項目を追加するだけで済みます。その中で、tensor_placement_policy は異種トレーニング戦略を決定します。このパラメータは、cuda、cpu、auto のいずれかになります。それぞれの戦略には異なる利点があります。

  • cuda: すべてのモデルパラメータを GPU に配置します。これは、オフロードせずにトレーニングを実行できる従来のシナリオに適しています。
  • cpu はすべてのモデル パラメータを CPU メモリに配置し、計算に現在関係する重みのみを GPU メモリに保持します。これは、非常に大規模なモデルのトレーニングに適しています。
  • auto は、リアルタイムのメモリ情報に基づいて GPU メモリに保持するパラメータの量を自動的に決定し、CPU と GPU 間のデータ転送を削減しながら GPU メモリの使用を最大化できます。

一般ユーザーは自動戦略を選択するだけで、Colossal-AI がリアルタイムで最適な異種戦略を自動的かつ動的に選択し、コンピューティング効率を最大化します。

 colossalai.zero.shard_utils から TensorShardStrategy をインポートします


ゼロ = dict(model_config=dict(shard_strategy=TensorShardStrategy(),
tensor_placement_policy="auto"、
オプティマイザー構成 = dict(gpu_margin_mem_ratio=0.8)

構成ファイルの準備ができたら、宣言された新しい機能を開始するために数行のコードを挿入するだけです。まず、1 行のコードを含む構成ファイルを使用して Colossal-AI を起動します。Colossal-AI は分散環境を自動的に初期化し、関連する構成を読み取ります。次に、構成内の関数をモデルやオプティマイザーなどのコンポーネントに自動的に挿入します。

 colossalai.launch_from_torch(config='./configs/colossalai_zero.py')

次に、ユーザーは通常どおり、たとえばネイティブ PyTorch コードを直接使用して、データセット、モデル、オプティマイザー、損失関数などを定義できます。モデルを定義するときは、初期化のためにモデルを ZeroInitContext に配置するだけで済みます。この例では、Hugging Face が提供する OPTForCausalLM モデルと事前トレーニング済みの重みを使用し、Wikitext データセットで微調整します。

 ZeroInitContext(target_device=torch.cuda.current_device(), の場合、
シャード戦略=シャード戦略、
shard_param=True):
モデル = OPTForCausalLM.from_pretrained(
'facebook/opt-1.3b'
設定=設定

次に、colossalai.initialize を呼び出して、構成ファイルで定義された異種メモリ関数をトレーニング エンジンに挿入し、対応する関数を開始するだけです。

エンジン、train_dataloader、eval_dataloader、lr_scheduler = colossalai.initialize(model=model、
オプティマイザー=オプティマイザー、
基準=基準、
トレインデータローダー=トレインデータローダー、
test_dataloader=eval_dataloader、
lr_scheduler = lr_scheduler)

単一の GPU では利点は明らかです。Microsoft DeepSpeed と比較すると、Colossal-AI の自動戦略の使用は、さまざまなモデル スケールで DeepSpeed の ZeRO Offloading 戦略よりも大きな利点を示し、最大 40% の高速化を実現します。しかし、PyTorch などの従来のディープラーニング フレームワークでは、このような大規模なモデルを単一の GPU で実行できなくなりました。

8 つの GPU を使用した並列トレーニングの場合、Colossal-AI は起動コマンドに -nprocs 8 を追加するだけで済みます。このような大幅な改善の秘密は、Colossal-AI の効率的な異種メモリ管理サブシステム Gemini にあります。簡単に言うと、モデルをトレーニングする際、Gemini は最初の数ステップでウォームアップを実行し、PyTorch 動的計算グラフでメモリ消費情報を収集します。ウォームアップ後、演算子を計算する前に、Gemini は収集されたメモリ使用量記録を使用して、コンピューティング デバイス上で演算子に必要なピーク メモリを予約し、同時に一部のモデル テンソルを GPU ビデオ メモリから CPU メモリに移動します。

Gemini の組み込みメモリ マネージャーは、各テンソルに HOLD、COMPUTE、FREE などのステータス メッセージをマークします。次に、動的にクエリされたメモリ使用量に基づいて、テンソルの状態が継続的に変換され、テンソルの位置が調整されます。DeepSpeed の ZeRO Offload の静的パーティショニングと比較して、Colossal-AI Gemini は GPU ビデオメモリと CPU メモリをより効率的に利用し、モデル容量を最大化し、非常に制限されたハードウェア条件下でトレーニング速度のバランスをとることができます。

大規模モデルの代表であるGPTの場合、RTX 2060 6GBを搭載した一般的なゲーミングノートPCでColossal-AIを使用すると、最大15億のパラメータを持つモデルをトレーニングするのに十分です。RTX3090 24GBを搭載したパソコンでは、180億のパラメータを持つモデルを直接トレーニングできます。Tesla V100などのプロフェッショナルコンピューティングカードの場合、Colossal-AIは大幅な改善も示します。さらに一歩進んで:便利で効率的な並列拡張並列分散技術は、モデルのトレーニングをさらに加速するための重要な手段です。世界最大かつ最先端の AI モデルを最短時間でトレーニングしたい場合、効率的な分散並列拡張が依然として必要です。並列次元の制限、効率の低さ、汎用性の低さ、導入の難しさ、メンテナンスの欠如など、既存のソリューションの問題点に対処するために、Colossal-AI は効率的な多次元並列処理や異種並列処理などのテクノロジーを使用して、ユーザーが最小限の変更のみで大規模な AI モデル トレーニングを効率的かつ迅速に導入できるようにします。たとえば、データ並列処理、パイプライン並列処理、2.5 次元テンソル並列処理などの複雑な並列戦略の場合、それらを自動的に実装するには、単純な宣言だけが必要です。Colossal-AI は、他のシステムやフレームワークのようにコードに侵入して、複雑な基礎ロジックを手動で処理する必要はありません。

パイソン
並列 = 辞書(
パイプライン=2、
テンソル = dict(モード = '2.5d'、深さ = 1、サイズ = 4)

具体的には、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​

<<:  機械学習がデータセンター管理をどう変えるか

>>:  馬懿、沈向陽、曹英の最新AIレビューが人気に!作成に3か月かかりました。ネットユーザー必読の論文です

ブログ    

推薦する

世界的なAI人材不足により、各国間の協力とトレーニングが増加

文/張燕現在、世界で人工知能教育が発達している国や地域では、人工知能人材の育成を徐々に国のトップレベ...

2020 年に爆発的に増加する 9 つの AI マーケティング トレンド

マーケティングに AI を使用すると、代理店の専門家の作業がさまざまな点で楽になります。消費者に合わ...

カリフォルニア州の自動運転路上試験規則が変更され、軽輸送車両も許可範囲に含まれる可能性がある

現在、多くの自動運転車開発者は米国カリフォルニア州(以下、「カリフォルニア」という)で路上試験を行う...

OpenAIの仮説が覆される!計算量を考慮すると、小さいモデルの方が大きいモデルよりも優れています。Llama 2 のトレーニングは GPU コンピューティングに関連しています。

モデルを推論する際には、収束が遅いために計算能力を無駄にしないようにすることが重要です。孫子の兵法に...

...

ゲームにおけるディープラーニングと AI

[[190049]]この記事は、4月27日にBig Data Talk WeChatコミュニティで...

機械学習におけるシャプレー値を理解するにはどうすればよいでしょうか?

[[282454]]シャプレー値について初めて聞いたのは、モデルの解釈可能性を勉強していたときでし...

Docker が Generative AI スタックと Docker AI をリリース

10月12日、DockerはロサンゼルスでDockercon 23カンファレンスを開催し、新しいDo...

機械学習の理解と考察

[[199326]]近年、人工知能の力強い台頭、特に昨年のAlphaGoと韓国のチェスプレイヤー、イ...

人工知能の開発における主な成果は何ですか?また、どのような課題に直面していますか?

現代の人工知能は、現代の科学技術の中で最も驚くべき強力な技術の 1 つとなり、破壊的な技術でもありま...

機械学習の教科書に出てくる7つの典型的な問題

[[201516]]機械学習について学びたい、または機械学習に専念することを決心した場合、すぐにさま...

...

弁護士は直感に基づいて仕事をするのでしょうか? AIはそうは思わない

法曹界は、統計学や数学に関しては常に比較的消極的でした。伝統的に、彼らの意見は長年、あるいは数十年に...

よく使われる「生成AIライブラリ」の総合ガイド

皆さんこんにちは、Luga です。今日も引き続き、人工知能 (AI) エコシステムに関連するテクノロ...

アプリケーションの利点はたくさんあります!チャットボットは経済の活性化に貢献する

時代の変化に伴い、インテリジェント技術の発展は新たな傾向を示し、人工知能などの技術はますます注目を集...