Keras と PyTorch はどちらも初心者にとても優しいディープラーニング フレームワークです。それぞれに利点があり、多くの研究者や開発者はフレームワークの選択に迷うかもしれません。この状況を踏まえて、grid.ai の CEO でありニューヨーク大学の博士である William Falcon 氏は、PyTorch に Keras コートを付与した PyTorch Lightning を作成しました。
Lightning は PyTorch の非常に軽量なラッパーです。研究者は最もコアとなるトレーニングと検証のロジックを記述するだけで、残りのプロセスは自動的に完了します。したがって、これは Keras のような高レベル パッケージに少し似ており、ほとんどの詳細を隠し、最もわかりやすいインターフェースのみを保持しています。 Lightning は自動補完部分の正確性を確保できるため、コアトレーニングロジックの改良に非常に有利です。 本日、PyTorch Lightning は Twitter でバージョン 1.0.0 が利用可能になったことを発表し、PyTorch Lightning の動作原理と新しい API の詳細を説明した新しいブログ記事を公開しました。ウィリアム・ファルコン氏は、ユーザーがGitHubで複雑なプロジェクトを閲覧する際に、ディープラーニングのコードがそれほど難しくなくなる日を楽しみにしていると語った。 テスラAIの責任者であるアンドレイ・カルパシー氏も次のようにコメントしている。「これは素晴らしいし、将来性がある。PyTorch Lightningは、ディープラーニングコードの再構築を提唱し、「エンジニアリング(ハードウェア)」と「サイエンス(コード)」を分離し、前者をフレームワークに委ねる」 過去数か月間、PyTorch Lightning チームは API の微調整、ドキュメントの改善、チュートリアルの記録を行って、最終的に V1.0.0 を市場に投入しました。次のブログ投稿では、チームが PyTorch Lightning について詳しく説明しています。
PyTorch Lightning の動作原理と目標 人工知能は、単一のフレームワークが進化するよりもはるかに速いペースで進化しています。ディープラーニングの分野は、複雑さと規模の両面で常に進化しています。 Lightning は、マルチ GPU およびマルチ TPU トレーニング、早期停止、ログ記録などの多くのエンジニアリングの詳細を抽象化しながら、複雑なモデル操作向けに設計されたユーザー エクスペリエンスを提供します。 PyTorch のようなフレームワークは、AI が主にネットワーク アーキテクチャに重点を置いていた時代に登場しました。 これらのフレームは、非常に複雑なモデルを組み立てるためのすべての部品を提供し、研究と製造において優れた働きをします。ただし、GAN、BERT、オートエンコーダなどのモデルが相互作用し始めると、パラダイムは崩壊し、優れた柔軟性がすぐに失われ、プロジェクトの規模で維持することが困難になります。 以前のフレームワークとは異なり、PyTorch Lightning は、一連の相互作用モデル、つまりディープラーニング システムをカプセル化するために使用されます。 Lightning は、多くのモデルが複雑なルールを使用して相互作用する、今日の世界のより複雑な研究および生産ユースケース向けに構築されています。 自動コーディングシステム PyTorch Lightning の 2 番目の重要な原則は、ハードウェアと科学コードの分離です。 Lightning は、ユーザーに抽象化を提示することなく、大規模なコンピューティングを活用できるように進化しました。この分離により、コードを変更せずにラップトップの CPU を使用して 512 GPU をデバッグできるなど、以前は不可能だった新しい機能を実現できます。 最終的には、Lightning はコミュニティ主導のフレームワークになることを目指しています。 優れたディープラーニング モデルを構築するには、システムを適切に動作させるための多くの専門知識とコツが必要です。世界中で、何百人ものエンジニアや博士が同じコードを何度も繰り返し実装しています。現在、Lightning には、ディープラーニング分野で最も才能のある 300 人を超える貢献者のコミュニティがあり、同じエネルギーを割り当ててまったく同じ最適化を行うことを選択し、何千人もの人々が彼らの努力の恩恵を受けています。
PyTorch Lightning 1.0.0 の新機能 Lightning 1.0.0 は安定した最終 API です。これは、コードが簡単に破られたり変更されたりすることができないため、Lightning を使用する研究者にとっては良いことです。 1. 研究と生産 Lightning の最大の利点は、最先端の AI 研究を大規模に実施できることです。これは、柔軟性を失うことなく、最大のコンピューティング リソース上で最も難しいアイデアを試すためにプロの研究者向けに設計されたフレームワークです。 Lightning 1.0.0 を使用すると、大規模なモデルを簡単にデプロイできます。コードは簡単にエクスポートできます。 つまり、大規模な機械学習エンジニアのチームを必要とせずに、データ サイエンティストや研究者などのチームがモデルを作成できるようになります。 Lightning は、研究に必要な柔軟性を損なうことなく、研究者が生産時間を大幅に短縮できるように設計されています。 Grid AI は、クラウド上で大規模にモデルをトレーニングするためのネイティブ プラットフォームです。このプラットフォームにより、ディープラーニング モデルを構築する研究者は、大規模な計算を反復し、ディープラーニング システムの最大量のトラフィックを処理できるスケーラブルな環境にモデルを展開できるようになります。 2. メトリクス pytorch_lightning.metrics は、PyTorch および PyTorch Lightning でのメトリックの開発と使用を容易にするために設計されたメトリック API です。更新された API には、統計を保存しながら、各ステップで複数の GPU (プロセス) にわたってメトリックを計算する組み込みメソッドが用意されています。これにより、ユーザーは分散バックエンドに関連する複雑さを気にすることなく、ステージの最後にメトリックを計算できます。
カスタム メトリックを実装するには、Metric 基本クラスをサブクラス化し、__init__()、update()、compute() メソッドを実装するだけです。ユーザーが行う必要があるのは、add_state() を正しく呼び出して、DDP でカスタム インジケーターを実装することだけです。 add_state() を使用して追加されたメトリック状態変数に対して reset() を呼び出します。
3. 手動最適化と自動最適化 Lightning を使用すると、ユーザーは grad をいつ有効/無効にするかを心配する必要はなく、training_step から添付されたグラフとともに損失を返すだけで、バックプロパゲーションを実行したり、オプティマイザーを更新したりでき、Lightning によって自動的に最適化されます。
ただし、GAN、強化学習、複数のオプティマイザーや内部ループを使用する一部の研究では、ユーザーは自動最適化をオフにして、トレーニング ループを自分で完全に制御できます。 まず、自動最適化をオフにします。
トレーニング ループはユーザーの手に渡ります。
4. ログ記録 Lightning を使用すると、ロガーとの統合が非常に簡単になります。LightningModule の log() メソッドを呼び出すだけで、システムはログに記録された量をユーザーが選択したロガーに送信します。デフォルトでは Tensorboard が使用されますが、サポートされている他のロガーを選択することもできます。
Lightning は、.log() が呼び出される場所に基づいて、ログを記録するタイミング (各ステップおよび各エポック) を自動的に決定しますが、ユーザーは on_step と on_epoch を使用してデフォルトの動作を手動で上書きすることもできます。 ただし、on_epoch=True の場合、トレーニング フェーズ全体を通じてレコード値が蓄積されます。
5. データフロー Lightning では、データ フローを簡素化し、トレーニング ループと検証ループでログをデータから分離するため、EvaResult と TrainResult が非推奨になりました。 各ループ (トレーニング、検証、テスト) には、次のように実装できる 3 つのフックがあります。
データ フローがどのように機能するかを示すために、次のコード実装ではトレーニング ループ (つまり、x=training) を使用します。
training_step で返されるものはすべて、training_epoch_end への入力として使用できます。
検証およびテスト ループのコード実装でも同じ手順が実行されます。 DP または DDP2 分散モードを使用する場合 (つまり、GPU 上でバッチを分割する場合)、x_step_end を使用して手動で集計を実行します (またはこれを実装せず、lightning で自動集計を実行します)。 6. チェックポイント Lightning は、ユーザーの最後のトレーニング エポックの状態とともに、現在の作業ディレクトリにチェックポイントを自動的に保存できるようになりました。これにより、トレーニングが中断された場合でも、ユーザーは再開できるようになります。 さらに、ユーザーはチェックポイントの動作をカスタマイズして、任意の数のトレーニングまたは検証ステップを監視することができます。たとえば、ユーザーが独自の検証損失に基づいてチェックポイントを更新する場合は、次のように実行できます。
具体的なコードプロセスは次のとおりです。
バグ修正を含むすべての API の変更は、GitHub プロジェクトで確認できます。 [この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です] この著者の他の記事を読むにはここをクリックしてください |
>>: すべては可能だ:コンピュータビジョンCVとNLPの分野はますます融合している
1. メタバースとは何ですか? Metaverse は、ブロックチェーンと AI (人工知能)、V...
OpenAI 開発者関係の専門家 Logan Kilpatrick 氏は、ソーシャル メディアに「...
PCと比較すると、モバイルデバイスは携帯性に優れており、普及率も高くなっています。近年、モバイルデバ...
私たちの子供たちが今後20年、30年でどのような仕事に就くことになるのかを予測するのは本当に難しいこ...
私たちは前例のない危機を生きています。 COVID-19パンデミックの間、医療従事者は最前線のヒーロ...
機械学習は、車内外のセンサーからのデータを融合して、運転者の状態を評価し、運転シナリオを分類するため...
AIは非常に新しい芸術を演じています。 「とんでもないと合理的な境界線を繰り返しテストする」一連の写...
この不況は、私たちがこれまで経験したどの不況よりも深刻で、突然のものである。私たちは皆、嵐がすぐに過...
[[426819]] Dreaming RecordsとXiaoIceチームは共同で、人工知能と人間...
9月10日、AP通信は、全米作家組合やその他の団体から何か月にもわたる苦情を受けて、アマゾンのファ...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
マイクロソフトの共同創業者ポール・アレン氏が設立したアレンAI研究所は最近、Satlasと呼ばれる新...