PyTorch「Alchemy」の速度を向上させるにはどうすればよいですか?
最近、著名な機械学習と AI 研究者の Sebastian Raschka 氏がそのトリックを披露してくれました。同氏によると、彼の手法では、モデルの精度に影響を与えることなく、コードを数行変更するだけで BERT 最適化時間が 22.63 分から 3.15 分に短縮され、トレーニング速度が 7 倍向上しました。
著者は、8 つの GPU が利用できる場合、トレーニング プロセス全体で必要なのは次のとおりであるとさえ述べています。 11.5 倍のパフォーマンス アクセラレーションを達成するには 2 分かかります。
彼がどのようにしてそれを達成したかを見てみましょう。
PyTorch モデルのトレーニングを高速化する最初はモデルです。著者は研究に DistilBERT モデルを使用しています。これは BERT の合理化されたバージョンであり、40 分の 1 のサイズです。 BERT.% よりも優れていますが、パフォーマンスの低下はほとんどありません。 2 番目はデータ セットで、トレーニング データ セットは IMDB Large Movie Review という大規模な映画レビュー データ セットで、合計 50,000 件の映画レビューが含まれています。著者は、以下の図の方法 c を使用して、データセット内の映画レビューのセンチメントを予測します。
基本的なタスクを明確に説明した後、次は PyTorch のトレーニング プロセスです。このタスクを誰もがよりよく理解できるように、著者はウォームアップ演習、つまり IMDB 映画レビュー データセットで DistilBERT モデルをトレーニングする方法も詳しく紹介します。コードを自分で実行したい場合は、以下に示すように、関連する Python ライブラリを使用して仮想環境をセットアップできます。
関連するソフトウェアのバージョンは次のとおりです。
退屈なデータ読み込みの説明は省略します。理解することだけが必要です。この記事では、データ セットが 35,000 のトレーニング サンプル、5,000 の検証サンプル、および 10,000 のテスト サンプルに分割されていることがわかります。必要なコードは次のとおりです。
##コード部分のスクリーンショット
#完全なコード アドレス:https://github.com/rasbt/faster-pytorch- blog /blob/main/1_pytorch-distilbert.py
次に、A100 GPU でコードを実行すると、次の結果が得られます:
上記のコードに示すように、モデルは次のようになります。ラウンド 2 からラウンド 3 ラウンドの開始時に少しオーバーフィッティングが発生し、検証精度が 92.89% から 92.09% に低下しました。 22.63 分間モデルを微調整した後の最終テスト精度は 91.43% でした。
Trainer クラスを使用する
##次のステップは、上記のコードを改善することです。改善部分は主に次のとおりです。 Lightning から Trainer クラスを使用できるように、LightningModule で PyTorch モデルをラップします。いくつかのコードのスクリーンショットは次のとおりです:
完全なコード アドレス: https://github.com/rasbt/faster-pytorch-blog/blob/main/2_pytorch- with-trainer.py
#上記のコードは、トレーニング、検証、テストの実行方法を定義する LightningModule を作成します。前に示したコードと比較すると、主な変更点はパート 5 (つまり 5 微調整) にあり、モデルを微調整しています。以前とは異なり、微調整部分では PyTorch モデルを LightningModel クラスでラップし、Trainer クラスを使用してモデルを適合させます。
前のコードでは、検証精度がラウンド 2 からラウンド 3 に低下していることが示されましたが、改善されたコードでは ModelCheckpoint を使用しています。最適なモデルをロードします。同じマシン上で、このモデルは 23.09 分で 92% のテスト精度を達成しました。
チェックポイント作成が無効で、PyTorch が非決定的モードでの実行を許可されている場合、この実行は最終的に同じ実行になることに注意してください。時間は通常の PyTorch と同じです (時間は 23.09 分ではなく 22.63 分です)。
自動混合精度トレーニング
さらに、GPU が混合精度トレーニングをサポートしている場合は、GPU をオンにすることができます。コンピューティング効率を向上させるため。著者らは自動混合精度トレーニングを使用し、精度を犠牲にすることなく 32 ビットと 16 ビット浮動小数点を切り替えます。
この最適化では、Trainer クラスを使用して、自動混合精度トレーニングを行います:
上記の操作により、トレーニング時間を 23.09 分から 8.75 分に短縮でき、ほぼ 3 倍速くなります。テスト セットの精度は 92.2% で、以前の 92.0% からわずかに改善されました。
Torch.Compile static imageを使用する
最近の PyTorch 2.0 のお知らせ表示、PyTorch チームは新しい toch.compile 関数を導入しました。この関数は、PyTorch コードを実行するために動的グラフを使用する代わりに、最適化された静的グラフを生成することにより、PyTorch コードの実行を高速化できます。
PyTorch 2.0 はまだ正式にリリースされていないため、最初に torchtriton をインストールして更新する必要がありますこの機能は、PyTorch の最新バージョンでのみ使用できます。
#次に、次の行を追加してコードを変更します。
4 GPU での分散データ並列処理
上記では、単一 GPU でコードを高速化する混合精度トレーニングについて説明しましたが、次に、マルチ GPU トレーニング戦略を紹介します。以下の図は、いくつかの異なるマルチ GPU トレーニング手法をまとめたものです。
#分散データ並列処理を実現したい場合は、DistributedDataParallel を通じて実現できます。トレーナーは 1 行のコードで使用できます。
この最適化ステップの後、4 つの A100 GPU でこのコードは 3.52 分間実行され、93.1 % のテスト精度に達しました。 。
##DeepSpeed
最後に、著者はディープ ラーニング最適化ライブラリ DeepSpeed と Trainer のマルチ GPU 戦略を使用した結果を調査します。まず、DeepSpeed ライブラリをインストールする必要があります:
以上がコードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

導入 数週間で作物の進行を毎日観察する農民がいるとします。彼は成長率を見て、さらに数週間で彼の植物がどれほど背が高くなるかについて熟考し始めます。 thから

ソフトAIは、おおよその推論、パターン認識、柔軟な意思決定を使用して特定の狭いタスクを実行するように設計されたAIシステムとして定義されていますが、曖昧さを受け入れることにより、人間のような思考を模倣しようとします。 しかし、これはBusineにとって何を意味しますか

答えは明確です。クラウドコンピューティングには、クラウドネイティブセキュリティツールへの移行が必要であるため、AIはAIの独自のニーズに特化した新しい種類のセキュリティソリューションを要求します。 クラウドコンピューティングとセキュリティレッスンの台頭 で

起業家とAIと生成AIを使用して、ビジネスを改善します。同時に、すべてのテクノロジーと同様に、生成的AIが増幅器であることを覚えておくことが重要です。厳密な2024年の研究o

埋め込みモデルのパワーのロックを解除する:Andrew Ngの新しいコースに深く飛び込む マシンがあなたの質問を完全に正確に理解し、応答する未来を想像してください。 これはサイエンスフィクションではありません。 AIの進歩のおかげで、それはRになりつつあります

大規模な言語モデル(LLM)と幻覚の避けられない問題 ChatGpt、Claude、GeminiなどのAIモデルを使用した可能性があります。 これらはすべて、大規模なテキストデータセットでトレーニングされた大規模な言語モデル(LLMS)、強力なAIシステムの例です。

最近の研究では、AIの概要により、産業と検索の種類に基づいて、オーガニックトラフィックがなんと15〜64%減少する可能性があることが示されています。この根本的な変化により、マーケティング担当者はデジタルの可視性に関する戦略全体を再考することになっています。 新しい

Elon UniversityがDigital Future Centerを想像している最近のレポートは、300人近くのグローバルテクノロジーの専門家を調査しました。結果のレポート「2035年に人間である」は、ほとんどがTを超えるAIシステムの採用を深めることを懸念していると結論付けました。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
