Facebookは本日、Microsoftが「PyTorch for Windows」のビルドの開発とメンテナンスを担当することを発表した。これまでWindows上のPyTorchは、テストカバレッジの不足、複雑なインストール体験、機能の不足などの理由で遅れをとってきた。

Facebookが2017年1月に公開したPyTorchは、科学的コンピューティングフレームワークとスクリプト言語であるTorchをベースにしたオープンソースの機械学習ライブラリで、プログラミング言語Luaをベースにしている。TensorFlowの方が少し長い(2015年11月以降)のに対し、PyTorchはデータサイエンスや開発者コミュニティで急速に普及し続けている。GitHubの2018 Octoverseレポートによると、PyTorchは昨年、最も急成長しているオープンソースプロジェクトのトップスポットの1つを主張し、Facebookは最近、2019年にはプラットフォームへの貢献者の数が前年比50%以上増加し、1,200人近くになったことを明らかにした。

「Stack Overflowの最新の開発者調査によると、開発者コミュニティの主要なオペレーティングシステムはWindowsであることに変わりはありません(46%がWindows、28%がMacOS)。MicrosoftはWindowsの専門知識を提供し、Windows上のPyTorchを最高の状態にすることに満足しています」と、FacebookとMicrosoftは連名のブログ記事で書いている。

マイクロソフトは今年初め、Windows Subsystem for Linux (WSL) 2にグラフィックスカードの計算サポートを追加するプレビューをリリースした。これは、350万人以上の月間アクティブな開発者がWindows上でLinuxベースのツールを実行するために使用している。それは、明示的にAIと機械学習アプリケーションのサポートをもたらし、CUDAコアを搭載したNvidiaカードを含むWindowsエコシステムのハードウェア全体でPyTorchのトレーニングワークロードを可能にする。

Windows 用の PyTorch ビルドでは、主にテストカバレッジを同等にすることで、PyTorch のビルドを行う。Microsoft はまた、関連するバイナリやライブラリ(TorchVision、TorchText、TorchAudio など)をメンテナンスし、GitHub や PyTorch Windows のディスカッションフォーラムで PyTorch コミュニティをサポートする。

「私たちは、コミュニティからのフィードバックや要望に基づいて、Windowsエクスペリエンスの改善を続けていきます。これまでのところ、コミュニティからのフィードバックは、次の改善点として、分散トレーニングサポートとpipを使ったインストール体験の向上を指摘しています」とFacebookとMicrosoftは書いています。

関連ニュースとして、Facebookはまた、混合精度機能をWindowsをサポートするPyTorchコアに移行したと述べている。PyTorchはデフォルトで32ビット浮動小数点(FP32)演算で学習するが、Facebookはこれは多くのディープラーニングモデルで完全な精度を達成するためには不可欠ではないと指摘している。2017年にNvidiaによって開発され、単精度(FP32)と半精度(FP16など)形式を組み合わせたこの新しい混合精度機能は、FP32トレーニングと同じ精度を管理しながら、Nvidiaグラフィックスカード上での追加の性能上の利点(トレーニング時間の短縮やより低いメモリ要件など)を備えている。

PyTorch 1.6 - 最新リリース - は、特定のグラフィックスカードの演算をFP32精度から混合精度に自動変換することができる。Facebookによると、Nvidia V100カード上でFP32の1.5倍から5.5倍のスピードアップを実現しながら、最終的な精度は同じに収束するとのこと。

Image by Microsoft