PyTorch LightningがGraphcore IPUをサポートしました。PyTorch Lightningチームは、ここ数ヶ月、IPUとの連携の構築に精力的に取り組んできましたが、このたび、リリース1.4をコミュニティに提供することになりました。IPUを開発者にとって使いやすいものにするという当社の使命を果たすために、Graphcoreチームとの緊密な協力関係を築いてくれたことにとても感謝しています。
Graphcoreは、柔軟で高速なAI計算ソリューションを求めるAIリサーチコミュニティの要望に応えるというPyTorch Lightningのミッションに広く協力しています。
PyTorch Lightningは、データサイエンティストやディープラーニングの専門家を、大変なエンジニアリング業務(データ配信、ループ管理、ロギング処理など)から解放し、モデリングやデータ理解に集中することを可能にします。言い換えれば研究により多くの時間を費やすことを可能にします。
この新しい連携により、PyTorch Lightningユーザーは、当社のPopTorch APIを使用しているIPU用のPyTorchモデルを、最小限のコード変更で実行し、同様の高いパフォーマンスを得られるようになりました。
PopTorchは、PyTorchのモデルをIPUハードウェア上で直接実行できるようにするPyTorchの拡張機能で、IPU上で実行するためにできるだけコードを変更しないように設計されています。
PyTorch Lightningが選ばれる理由
当社がPyTorch Lightningを選ぶ理由は、AI研究者と同じです。PyTorch Lightningは、PyTorchモデルのトレーニングループの複雑さを解消するシンプルなラッパーで、基本的なプラットフォームを抽象化するため、IPUのユーザーエクスペリエンスは他のプラットフォームに近いものとなります。
多くの定型コードが削除され、よりクリーンで使いやすい実装になっています。
PyTorch Lightningでは、PyTorchモデルのPopTorch構成と同じように、ユーザーがモデル関数を指定する必要があるため、親しみやすいユーザーエクスペリエンスを実現しています。
IPU固有の最適化や分解に干渉しないので、IPU上のPyTorch Lightningモデルは、IPU用の標準的なPyTorchモデルと同様の高いパフォーマンスを得ることができます。
使用を開始する方法
PyTorch Lightningをインストールします。https://github.com/PyTorchLightning/pytorch-lightning#step-0-install
デフォルトでは、PyTorch Lightningは最新版のPyTorchをインストールします。PopTorchでサポートされているバージョンのPyTorchを確実にインストールするには、PyTorch Lightningのインストール時に依存性のないpip3 installを使用するか、サポートされているバージョンのPyTorchを後からインストールする必要があります。
pip3 install pytorch-lightning
pip3 uninstall torch
pip3 install torch==1.7.1+cpu -f
https://download.pytorch.org/whl/torch_stable.html
PopTorchをインストールする
Graphcoreドキュメントポータルのお使いのIPUシステムに関連する「Getting Started」ガイドに記載されている通りにPoplar SDKをインストールします。
PopTorchは、インストール可能なホイールファイルとしてPoplar SDKにパッケージされています。 正しくインストールされているかどうかを確認するための詳しい手順は、PopTorchユーザーガイドに記載されています。
PopTorchは現在PyTorchのバージョン1.7.1を使用していますが、今後のリリースではバージョンを上げていく予定です。パッケージによっては、より新しいバージョンのPyTorchがインストールされている場合があり、サポートされているバージョンをpipでインストールする必要があります。ユーザーガイドのインストール手順の「Version Compatibility」をご覧ください。
重要
PopTorch の依存パッケージを正しくインストールするには、pip >= 18.1 が必要です。
基本的な例を実行する
以下のコード例は、シンプルなMNISTサンプルを使ってトレーニングモデルを実行する方法を示しています。
IPU上で開始する方法
大学の研究者は、GraphcoreのAcademic Programmeに応募することで、IPUにアクセスする機会が得られます。このプログラムは、IPUを使用して研究を行ったり、コースワークや教育の中で研究を発表する研究者を支援するために設計されています。選ばれた研究者は、GraphcoreのIPU計算プラットフォームをクラウドで無償利用できるほか、ソフトウェアツールやサポートを受けることができます。
IPU上でPyTorch Lightningモデルを1行のコードで実行する方法については、最新のデベロッパーチュートリアルウォークスルーブログをご覧ください。
リソースとリンク
Graphcore PyTorch Lightningのチュートリアルとサンプル
PyTorch Lightning IPUサポートドキュメント
IPUのためのPyTorch:ユーザーガイド
PopTorchビルド説明書
PopTorchソースリポジトリ