大規模モデルのトレーニングが難しいのはなぜですか?

リンク: https://www.zhihu.com/question/498271491

編集者: ディープラーニングとコンピュータービジョン

免責事項: 学術的な共有のみ、侵入および削除を目的としています。

Bert ネットワーク モデルは 3 億スケールを超えるスケールを作成してきたので、当時は性能が良いと感じていたのですが、意外なことに、GPT シリーズが登場すると、GPT-3 は 170B スケールのパラメータ モデル精度で競合製品を直接粉砕しました。

その後、新たな競争が始まり、次のようなことが少し怖いです。Google は 1 兆個の疎なスイッチトランスを発売し、ファーウェイは 2,000 億個の密な彭城盤古モデルを発売し、マイクロソフトは 1,000 億個のパラメータを備えた Turing-NLG を発売し、Nvidia はメガトロンLMシリーズ。

大規模なモデルは難しいと誰もが言いますが、クラスターのスケジューリングの問題は別として、大規模なモデルのトレーニングは難しいのでしょうか?

著者:金英洛宇
https://www.zhihu.com/question/498271491/answer/3051092055

主な困難は、何か問題が発生したときに、問題がどこにあるのかをどのように見つけるかです (間違いなく問題が発生します)。以下にいくつかの実際的な例を示します。

何千もの GPU が一緒にトレーニングされ、1 回のトレーニング セッションのコストは数千万元から始まります。試したい実験が 100 件あります。どの実験が成功する可能性が最も高いかを判断するにはどうすればよいでしょうか?

どのデータがトレーニングに値するのか、どのデータは重要ではないので捨ててもよいのか、どのデータを追加すると効果が悪化するのか。

英語データのみで中国語データがない場合はどうすればよいですか。

したがって、巨大なデータがどこに存在し、どのようにアクセスすればマシンがいっぱいになることがなくなり、すぐに取得できるようになります。

プログラムがランダムにクラッシュします。デバッグ方法は? データの問題なのか、ハードウェアの問題なのか、それともコードの問題なのか。

ハードウェアの問題の場合、数千の GPU のうちの 1 つがランダムに奇妙なエラーを生成します。何千万回もの再実行を費やさずに、どの GPU が原因であるかを特定するにはどうすればよいでしょうか?

結果の良し悪しを知るにはモデルのトレーニングに 1 か月かかり、その時点までにすでに数千万ドルが費やされています。見込みのない実験を中止するために、どうすればより早くおおよその結果を知ることができるでしょうか?

ユーザーは、モデルが意味のないことを話すと言っています。この問題を解決しないと、モデルは棚から撤去されてしまいます。どうすれば修正できますか? チューニング?トレーニングデータを変更しますか? モデル構造を変更しますか?

一言で言えば、課題が多すぎるのです。要約すると、大規模モデルのトレーニングとは、巨大な解空間で探索することです。各ショットには膨大な時間と経済的コストがかかります。最小限のコストで最適な解を見つけるにはどうすればよいでしょうか。

著者:バオ先生
https://www.zhihu.com/question/498271491/answer/3055245869

大規模モデルのトレーニングには 3 つの大きな問題があるため、1. 膨大なコンピューティング リソースを消費します。2. データの量と質には非常に高い要件が求められます。3. 彼の資質をテクニカル指標で評価するのは難しい。

これら 3 つの点によって、実験が遅く、信頼性が低く、手間がかかり、不確実であることが決まります。

このため、人々が経験を総括し、実験の方向性を調整することが大きな課題となっています。

「大きなモデルは簡単です。カードを渡してください。上司が実際に 1,000 枚のカードを買ってくれたら、それがどれほど難しいかわかるでしょう。上司は「シャオ・ワン、カードは買ったので、私がそれをもらいます」と言いました。 3ヶ月以内に出ます。

その後、誰かが正しいコード、データ、パラメーターを教えてくれたとしても、それを一度実行すれば完全にトレーニングできることがわかります。

言うまでもなく、モデルのコードを自分で記述し、デバッグし、モデルを評価する方法を見つけ、結果のフィードバックに従って実験の方向を調整する必要があるため、時間とリソースがまったく足りません。

大規模モデルの時代に最も価値のあるアルゴリズムの人材は、実務経験にお金と時間を費やす人材、一連のトレーニング方法論を要約できる人材、実務経験を持ち何百もの実験を実行したマスターです。まったく条件もリソースもありません。設備のお金や時間のお金と比べたら、この人たちの年収300万は本当に少なすぎます。

ほとんどの人は今も紙の上で話し、風や雨の音を聞いています。

これは一般プレイヤーが参加できるゲームではありません。

著者: Zhihu ユーザー
https://www.zhihu.com/question/498271491/answer/2961844274

まず最初に、META AI の Susan Zhang が、GPT-3 に対応する実装モデルである OPT-175B のトレーニングの経験と教訓を共有します。

5 人のエンジニアのチームが、1024 個の A100 (80G ビデオ メモリ) を使用して 175B パラメータで LLM をトレーニングし、合計で約 3 か月かかりました。

トレーニング効率の推定によると、エラーや再起動なしに 300B トークン データ セットでトレーニングするには 33 日かかります。

最初のラウンド: 初期トレーニングを 3 回行います (ここでのトレーニングは必ずしもすべてのデータに対して実行されるわけではありません。トレーニング プロセスを開始および停止するだけです)。最初に経験に従ってモデルとトレーニング ハイパーパラメーターを想定し、実際の状況に応じてそれらを調整します。 。ウェイト減衰を 0.01 から 0.1 に増やす、グローバル勾配ノルム クリッピングを 1.0 に設定する、Adam のパラメータを調整するなどです。これらの調整は、トレーニング中の各バッチの損失結果の観察に基づいて行われます。しかし実際には、これは意味がありません。コードにバグがあることが判明したため (残念なことに、最初の 3 回は無駄でした)、小規模なデータとモデル パラメーターでコードをテストする必要があります。

2回目:ハイパーパラメータ調整。観察に基づいてどのパラメータがより効果的かを繰り返し確認します(観察力と経験が最も試される)。

第 3 ラウンド: 最終的なハイパーパラメータが決定され (実際には、多くのパラメータがまだ推定されています)、正式なトレーニングが始まります (1 か月が経過しました)。トレーニング プロセス中も損失曲線が観察され (スパイクが多数あり)、パラメーターは常に調整されます。特に、Run11.6 では、さまざまなハイパーパラメータが結果に与える影響を観察するために、同じバッチを繰り返し再計算し始めました。Run11.10では、アクティベーション関数Gelu->ReLUも変更されました。

第 4 ラウンド (「最終」ラウンド): 33 日間、175B パラメータ、300B トークン、80G メモリを搭載した 992 枚の A100 カード。GPU の切断、CUDA エラー、タスクのハング、NCCL エラー、コードのバグ (チェックポイント ストレージの問題、損失関数の問題など) などのハードウェアの問題が発生し、トレーニングの不安定性の問題が再び発生しました。

したがって、豊富な経験、十分なデータセット、巨大なハードウェア リソースがあっても、大規模なモデルをトレーニングすることは依然として困難です。

著者:盛東
https://www.zhihu.com/question/498271491/answer/2232480465

なぜなら、この分野が普及し始めたのは近年であり、pytorch や tensorflow などの以前のフレームワークが登場したのはずっと前であり、当時は大規模モデルの分散トレーニングの需要シナリオに対する詳細な抽象設計や最適化が存在しませんでした。したがって、この分野では、一連のプログラミング パラダイムと、MapReduce (検索エンジンでの逆インデックスの確立を解決するため)、ストリーム コンピューティング (電子商取引/ソーシャル分野にリアルタイム更新を導入するため) など、対応するコンピューティング フレームワークが緊急に必要とされています。解決 @西门宇少@ZOMI ソースで言及された質問。

この分野が好きで半年前にクラウドプラットフォームからSysMLに切り替えましたが、やるべきことが多く、技術レベルを高めるのに十分な難しさがあります。

この分野の研究メモを記録するために、特別に github リポジトリ「Hack SysML」を作成しました。この分野で開発を行うには、システムとアルゴリズムの両方を理解する必要があります。実際には、Pytorch、C++、CUDA に精通し、アーキテクチャ、コンピュータ ネットワークを理解し、精緻なデータセットを構築して精度が要件を満たしていることを検証する必要がありますが、これは非常に困難です。

言うまでもなく、私は浮動小数点数について学ぶつもりですが、今週は関連するバグに 3 日間閉じ込められました ‍

☆終わり☆

これが表示された場合は、この記事が気に入っていることを意味します。転送して「いいね!」してください。WeChat で「uncle_pn」を検索し、編集者の WeChat「woshicver」を追加して、友達のサークルに毎日高品質のブログ投稿を更新してください。

QRコードを読み取ってエディタを追加↓

117adeec48549cc7e3f13ad7b846c6b1.jpeg

おすすめ

転載: blog.csdn.net/woshicver/article/details/131778008