検索
ホームページテクノロジー周辺機器AIコードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

PyTorch「Alchemy」の速度を向上させるにはどうすればよいですか?

最近、著名な機械学習と AI 研究者の Sebastian Raschka 氏がそのトリックを披露してくれました。同氏によると、彼の手法では、モデルの精度に影響を与えることなく、コードを数行変更するだけで BERT 最適化時間が 22.63 分から 3.15 分に短縮され、トレーニング速度が 7 倍向上しました。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

著者は、8 つの GPU が利用できる場合、トレーニング プロセス全体で必要なのは次のとおりであるとさえ述べています。 11.5 倍のパフォーマンス アクセラレーションを達成するには 2 分かかります。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

彼がどのようにしてそれを達成したかを見てみましょう。

PyTorch モデルのトレーニングを高速化する

最初はモデルです。著者は研究に DistilBERT モデルを使用しています。これは BERT の合理化されたバージョンであり、40 分の 1 のサイズです。 BERT.% よりも優れていますが、パフォーマンスの低下はほとんどありません。 2 番目はデータ セットで、トレーニング データ セットは IMDB Large Movie Review という大規模な映画レビュー データ セットで、合計 50,000 件の映画レビューが含まれています。著者は、以下の図の方法 c を使用して、データセット内の映画レビューのセンチメントを予測します。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

基本的なタスクを明確に説明した後、次は PyTorch のトレーニング プロセスです。このタスクを誰もがよりよく理解できるように、著者はウォームアップ演習、つまり IMDB 映画レビュー データセットで DistilBERT モデルをトレーニングする方法も詳しく紹介します。コードを自分で実行したい場合は、以下に示すように、関連する Python ライブラリを使用して仮想環境をセットアップできます。

関連するソフトウェアのバージョンは次のとおりです。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

退屈なデータ読み込みの説明は省略します。理解することだけが必要です。この記事では、データ セットが 35,000 のトレーニング サンプル、5,000 の検証サンプル、および 10,000 のテスト サンプルに分割されていることがわかります。必要なコードは次のとおりです。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

##コード部分のスクリーンショット

#完全なコード アドレス:

https://github.com/rasbt/faster-pytorch- blog /blob/main/1_pytorch-distilbert.py

次に、A100 GPU でコードを実行すると、次の結果が得られます:

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

結果の一部のスクリーンショット

上記のコードに示すように、モデルは次のようになります。ラウンド 2 からラウンド 3 ラウンドの開始時に少しオーバーフィッティングが発生し、検証精度が 92.89% から 92.09% に低下しました。 22.63 分間モデルを微調整した後の最終テスト精度は 91.43% でした。

Trainer クラスを使用する

##次のステップは、上記のコードを改善することです。改善部分は主に次のとおりです。 Lightning から Trainer クラスを使用できるように、LightningModule で PyTorch モデルをラップします。いくつかのコードのスクリーンショットは次のとおりです:

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

完全なコード アドレス: https://github.com/rasbt/faster-pytorch-blog/blob/main/2_pytorch- with-trainer.py

#上記のコードは、トレーニング、検証、テストの実行方法を定義する LightningModule を作成します。前に示したコードと比較すると、主な変更点はパート 5 (つまり 5 微調整) にあり、モデルを微調整しています。以前とは異なり、微調整部分では PyTorch モデルを LightningModel クラスでラップし、Trainer クラスを使用してモデルを適合させます。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

前のコードでは、検証精度がラウンド 2 からラウンド 3 に低下していることが示されましたが、改善されたコードでは ModelCheckpoint を使用しています。最適なモデルをロードします。同じマシン上で、このモデルは 23.09 分で 92% のテスト精度を達成しました。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

チェックポイント作成が無効で、PyTorch が非決定的モードでの実行を許可されている場合、この実行は最終的に同じ実行になることに注意してください。時間は通常の PyTorch と同じです (時間は 23.09 分ではなく 22.63 分です)。

自動混合精度トレーニング

さらに、GPU が混合精度トレーニングをサポートしている場合は、GPU をオンにすることができます。コンピューティング効率を向上させるため。著者らは自動混合精度トレーニングを使用し、精度を犠牲にすることなく 32 ビットと 16 ビット浮動小数点を切り替えます。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

この最適化では、Trainer クラスを使用して、自動混合精度トレーニングを行います:

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

上記の操作により、トレーニング時間を 23.09 分から 8.75 分に短縮でき、ほぼ 3 倍速くなります。テスト セットの精度は 92.2% で、以前の 92.0% からわずかに改善されました。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

Torch.Compile static imageを使用する

最近の PyTorch 2.0 のお知らせ表示、PyTorch チームは新しい toch.compile 関数を導入しました。この関数は、PyTorch コードを実行するために動的グラフを使用する代わりに、最適化された静的グラフを生成することにより、PyTorch コードの実行を高速化できます。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

PyTorch 2.0 はまだ正式にリリースされていないため、最初に torchtriton をインストールして更新する必要がありますこの機能は、PyTorch の最新バージョンでのみ使用できます。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。


#次に、次の行を追加してコードを変更します。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

4 GPU での分散データ並列処理

上記では、単一 GPU でコードを高速化する混合精度トレーニングについて説明しましたが、次に、マルチ GPU トレーニング戦略を紹介します。以下の図は、いくつかの異なるマルチ GPU トレーニング手法をまとめたものです。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

#分散データ並列処理を実現したい場合は、DistributedDataParallel を通じて実現できます。トレーナーは 1 行のコードで使用できます。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

この最適化ステップの後、4 つの A100 GPU でこのコードは 3.52 分間実行され、93.1 % のテスト精度に達しました。 。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

##DeepSpeed

最後に、著者はディープ ラーニング最適化ライブラリ DeepSpeed と Trainer のマルチ GPU 戦略を使用した結果を調査します。まず、DeepSpeed ライブラリをインストールする必要があります:

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

その後、コードを 1 行変更するだけで、ライブラリ:

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

このウェーブの後、テスト精度 92.6% に達するまでに 3.15 分かかりました。ただし、PyTorch には DeepSpeed の代替手段もあります。それは、strategy="fsdp" で呼び出される完全にシャード化された DataParallel で、最終的に完了までに 3.62 分かかりました。

コードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。

上記は、PyTorch モデルのトレーニング速度を向上させるための著者の方法です。元のブログに従って、試してみてください。望む結果が得られると思います。

以上がコードを数行変更するだけで、PyTorch は錬金術を高速化し、モデルの最適化時間を大幅に短縮します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は51CTO.COMで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
外挿の包括的なガイド外挿の包括的なガイドApr 15, 2025 am 11:38 AM

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

ソフトAIの台頭とそれが今日のビジネスにとって何を意味するかソフトAIの台頭とそれが今日のビジネスにとって何を意味するかApr 15, 2025 am 11:36 AM

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

AIフロンティア向けの進化するセキュリティフレームワークAIフロンティア向けの進化するセキュリティフレームワークApr 15, 2025 am 11:34 AM

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

3つの方法生成AIは起業家を増幅します:平均に注意してください!3つの方法生成AIは起業家を増幅します:平均に注意してください!Apr 15, 2025 am 11:33 AM

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

Andrew Ngによる埋め込みモデルに関する新しいショートコースAndrew Ngによる埋め込みモデルに関する新しいショートコースApr 15, 2025 am 11:32 AM

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

大規模な言語モデル(LLMS)の幻覚は避けられませんか?大規模な言語モデル(LLMS)の幻覚は避けられませんか?Apr 15, 2025 am 11:31 AM

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

60%の問題 -  AI検索がトラフィックを排出す​​る方法60%の問題 - AI検索がトラフィックを排出す​​る方法Apr 15, 2025 am 11:28 AM

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

AI R&Dの中心に人間が繁栄するようにするMITメディアラボAI R&Dの中心に人間が繁栄するようにするMITメディアラボApr 15, 2025 am 11:26 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SecLists

SecLists

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

DVWA

DVWA

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

mPDF

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

SAP NetWeaver Server Adapter for Eclipse

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