N次元配列の自動微分をC++で実装したChainerXをリリース。Chainer v6(β版)に統合し、計算パフォーマンスを向上
2018.12.03
株式会社Preferred Networks(本社:東京都千代田区、代表取締役社長:西川徹、プリファードネットワークス、以下、PFN)は、オープンソースの深層学習フレームワークChainer™(チェイナー)v6に、N次元配列の自動微分をC++で実装したChainerX(チェイナー・エックス)を統合してリリースします。Chainer v6では、v5までのコードをほとんど変更することなくそのまま動作させることが可能です。
Chainerは2015年のオープンソース公開以来、現在に至るまで活発に開発が続けられ、フレキシブルで直感的な深層学習フレームワークのパイオニアとして、多くのユーザーに使われてきました。その後、多くの深層学習フレームワークがChainerと同じDefine-by-Run方式を採用したことからも、Chainerの先見性は証明されています。一方、ChainerがPure Python実装にこだわってきたことは、コードの可読性やシンプルさに貢献していたものの、パフォーマンスが向上するに従ってPython実行系自体が持つオーバーヘッドが全体の実行時間に占める割合が相対的に増え、ボトルネックとなりつつありました。
今回、C++製のChainerXをChainer本体に統合してリリースすることは、多くのユーザーから見たChainerのフレキシブルさや後方互換性をほとんど失うことなく、より高いパフォーマンスを実現する方向への第一歩となります。
ChainerXの主な特長は次の通りです。
- Pythonと密に結合した実装で、Pythonによる記述の割合も大きかったNumPy、CuPy™および自動微分(autograd)をC++で実装
行列計算や画像の畳込みなどの演算、および誤差逆伝播のロジックをすべてC++で実装することにより、PythonによるCPUオーバーヘッドを最大 87% 削減(脚注:オーバーヘッドのみを計測した場合の比較)
- CPU、GPU、その他のハードウェアのバックエンドにも簡単に対応可能
バックエンドを差し替え可能とすることでデバイス間の移植性が向上
- Chainer Release Note: https://github.com/chainer/chainer/releases/tag/v6.0.0b1
- ChainerX Documentation: https://docs.chainer.org/en/latest/chainerx/index.html
- 開発者ブログ: https://chainer.org/announcement/2018/12/03/chainerx.html
ChainerXは今後性能向上やバックエンドの拡充とともに、ChainerXで記述したモデルをPython以外の環境からも呼び出せるよう開発を進める予定です。
なお、ChainerXの詳細は、カナダ・モントリオールで12月開催予定の機械学習のトップカンファレンスNeurIPS(旧名NIPS)において、開発者の得居誠也が発表する予定です。
12月7日12:50-02:55 Open Source Software Showcase
http://learningsys.org/nips18/schedule.html
Chainerの開発は、外部コントリビュータの開発成果を数多く取り入れています。PFNは今後も、最新の深層学習研究の成果を迅速に取り入れ、サポート企業やOSSコミュニティと連携しながらChainerの開発・普及を推進してまいります。
- オープンソースの深層学習フレームワークChainer™について
PFNが開発・提供するChainerは、Pythonベースのディープラーニング向けフレームワークとして、“Define-by-Run”の手法を通じてユーザーが簡単かつ直感的に複雑なニューラルネットワークを設計するための高い柔軟性とパフォーマンスを兼ね備えています。2015年6月にオープンソース化されたChainerは、最も普及しているディープラーニング向けフレームワークの1つとして、学術機関だけでなく、ディープラーニングがもたらすメリットを現実世界のアプリケーションや研究に活用するための柔軟なフレームワークを求める産業界の多くのユーザーに支持されています。
Chainerは、最新の深層学習研究の成果を迅速に取り入れ、ChainerRL(強化学習)/ChainerCV(コンピュータ・ビジョン)/ChainerUI(学習ログの可視化)/Chainer Chemistry(化学、生物学分野のための深層学習ライブラリ)などの追加パッケージ開発、Chainer開発パートナー企業のサポートなどを通して、各分野の研究者や実務者の最先端の研究・開発活動を支援していくことを目指しています。(http://chainer.org/)
*Chainer™ およびCuPy™は、株式会社Preferred Networksの日本国およびその他の国における商標または登録商標です。