オープンソースの深層学習フレームワークChainerおよび 汎用配列計算ライブラリCuPyの最新版v6をリリース
2019.05.16
株式会社Preferred Networks(本社:東京都千代田区、代表取締役社長:西川徹、プリファードネットワークス、以下、PFN)は、オープンソースの深層学習フレームワークChainer™(チェイナー)および汎用配列計算ライブラリ CuPy™(クーパイ) のメジャーアップデート版となるv6をリリースしました。Chainer v6では、v5までのコードをほとんど変更することなくそのまま動作させることが可能です。
2015年にオープンソースとして公開されたChainerは、Define-by-Run方式によるフレキシブルで直感的な深層学習フレームワークのパイオニアとして、現在も活発に開発がすすめられ、多くのユーザーに利用されています。
今回、Chainer v6(β版)で試験的に統合されたC++製のChainerXが、より多くのexampleに対応しました。ChainerXを使用することで、Chainerのフレキシブルさや後方互換性をほとんど失うことなく、順伝播・逆伝播ともにフレームワーク側のオーバーヘッドを大幅に低減し、より高いパフォーマンスを実現しています。また、新たなハードウェアへの対応をサードパーティの開発者がプラグインとして実装することで、ChainerおよびChainerX本体のソースコードを変更することなくChainerX上で利用できます。
Chainer v6およびCuPy v6の主な特長は次の通りです。
- ChainerXの統合
- 高速でよりポータブルな多次元配列と自動微分のバックエンドを追加
- ChainerXの配列をNumPyやCuPyの配列と同じように使える互換レイヤーを実装し、C++による低オーバーヘッドな自動微分を実現
- 統合デバイスAPIを導入し、NumPy、CuPy、iDeep、ChainerX など多様なバックエンドに対し、デバイス指定やデバイス間転送を統一のインターフェイスで実現
- 混合精度学習のサポート強化
- デフォルトデータ型として新たにmixed16を追加し、単精度と半精度の演算を組み合わせた訓練を透過的に実現する混合精度モードを導入
- 混合精度学習におけるアンダーフロー回避のため、オーバーフローを検出して自動調整する動的スケーリングを実装
- FunctionやLinkのテストツール追加
- 最小限のコードから順伝播、逆伝播、2回微分のユニットテストを生成するテストツールを追加
- NumPy関数へのCuPy配列対応
- NumPyの試験的な機能である__array_function__に対応し、この機能を有効にした NumPyの多くの関数に直接CuPy配列を適用
- Chainer Release Note: https://github.com/chainer/chainer/releases/tag/v6.0.0
- Chainer Documentation: https://docs.chainer.org/en/v6.0.0/
- 開発者ブログ: https://chainer.org/announcement/2019/05/16/released-v6.html
Chainerは今後も性能向上やバックエンドの拡充を進める予定です。ChainerXの使い勝手を向上し、対応する演算も拡充していくことで、より広い範囲のユースケースでの性能向上に貢献していきます。
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/)