BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース PyTorch 1.6リリース、WindowsバージョンはMicrosoftが引き継ぎ

PyTorch 1.6リリース、WindowsバージョンはMicrosoftが引き継ぎ

原文(投稿日:2020/08/11)へのリンク

Facebookが開発するオープンソースのディープラーニングフレームワークであるPyTorchが、バージョン1.6のリリースを発表した。新たなAPIが加わり、パフォーマンスが改善されている。そのリリースに合わせてMicrosoftは、同フレームワークのWindows版に関する開発とメンテナンスを引き継ぐことを発表した。

先日のブログ記事ではPyTorchチームが、今回のリリースのおもな機能について紹介している。ネイティブAMP(Automatic Mixed Precision、自動混合精度)トレーニングによって、Tensor Core GPUで最大50パーセントのメモリ削減が実現した他、新たにベータ版として追加されたメモリプロファイラが、メモリ関連の問題のデバッグを支援する。PyTorchがサポートする2つの分散トレーニングパラダイムであるデータパラレルとモデルパラレルの併用が可能になり、RPCフレームワークにはTensorPipeをサポートするバックエンドが新たに加えられた。別のブログ記事ではMicrosoftのチームが、PyTorchコミュニティにおけるMicrosoftの責務の拡大について発表している。その中には、Windows版PyTorchの開発、テストカバレッジの改善、ドキュメントの改善に関するオーナシップの獲得が含まれる。チームによれば、

当社のWindowsに関する専門知識を提供して、Windows版PyTorchを最高の状態にする機会を得たことを、大変嬉しく思っています。

PyTorchのWindows版は2017年1月に要望があり、同年12月の0.3.0リリースでリリースされた。他の多くのオープンソースプロジェクトと同じく、Windows版の開発作業の大半はコミュニティのコントリビューションによるもので、特にJiachen Pu氏の貢献が大きかった。一方で、利用可能なリソースが制限されていたことによって、テストカバレッジが不足したり、チュートリアルが古かったり、分散トレーニングなど一部の機能がまったく使えなかったりすることも少なくなかったが、Microsoftの努力により、PyTorchのコアライブラリとドメインライブラリのTorchText、TorchAudio、TorchVisionについては、Linuxバージョンと"同等(up to par)"のテストカバレッジを達成することができた。次の作業領域には、pipを経由した分散トレーニングとインストレーションのサポートが含まれている。

PyTorchでは、多数のマシンにモデルの完全なレプリカを配置して、分割したトレーニングデータをそれぞれがトレーニングするデータパラレルと、別々のマシンでモデルの別々の部分をトレーニングするモデルパラレルという、2タイプの分散トレーニングをサポートしている。モデルパラレルトレーニングは、一台のマシンではメモリに収まらないような、非常に巨大なモデルのトレーニングに有効である。一方のデータパラレルトレーニングは、作業を多数のマシンに分散することによって、トレーニングのプロセス全体をスピードアップする。これをモデルパラレルトレーニングと組み合わせることができれば、トレーニングのさらなる高速化が期待できる。PyTorchでは、バージョン1.4で分散リモートプロシージャコール(RPC)システムを導入してモデルパラレルトレーニングをサポートしたが、これまでのリリースでは、2タイプの分散トレーニングを同時に使用することはできなかった。新リリースではRPCシステムもアップデートされ、TensorPipeがサポートされるようになった。TensorPipeは、分散トレーニングクラスタ内のマシン間データ転送を改善する、"tensor対応のポイント・ツー・ポイント通信プリミティブ"である。

混合精度トレーニングは、トレーニング中のさまざまな値を表現するために異なるビット数を使用するテクニックである。例えば、あるレイヤやオペレーションでは32ビット浮動小数点がフルに必要であっても、他では16ビットで十分な場合がある。PyTorch 1.6は自動混合精度(AMP)トレーニングをサポートしており、それぞれの値に適した精度を自動的に選択することができる。Tensor Core GPUで使用した場合、これによって最大50パーセントのメモリ削減が可能になる。さらに今回のリリースでは、モデル内のCPUおよびGPUのメモリ使用量をレポート可能なAutogradプロファイラが、ベータ版として追加されている。

Redditでの議論では、あるユーザが次のように述べている。

新しいプロファイリングツールは、私がずっと前から欲しかったもののようです — メモリのリークは、PyTorchで最もやっかいな部分のひとつなのです。

PyTorchのソースコードとバージョン1.6のリリースノートは、GitHubで公開されている
 

この記事に星をつける

おすすめ度
スタイル

BT