ニュース

PFN、深層学習フレームワークを自社開発の「Chainer」から「PyTorch」に切り替え

 株式会社Preferred Networks(PFN)は12月5日、ディープラーニング(深層学習)の研究開発用のフレームワークを自社開発していた「Chainer(チェイナー)」から、Facebookが主導して開発している「PyTorch(パイトーチ)」へ順次移行すると発表した。

 「Chainer」は現在のv7をもってメンテナンスフェーズに移行し、バグフィックスは継続して行なっていくが、今後のメジャーな開発アップデートは行なわれない。Chainerユーザー向けには、PyTorchへの移行を支援するためのマイグレーションドキュメントおよびライブラリを提供する。

 PFNは、代表取締役社長の西川徹氏のコメントとして、以下のように述べている。

 「Chainerは、深層学習フレームワーク黎明期にあってPFNの基盤技術としてトヨタやFANUCをはじめとするパートナーとの研究開発を支え、また、NVIDIAやMicrosoftなどの世界的企業とPFNの協業のきっかけにもなりました。

 これまでパートナー、コミュニティ、ユーザーにご支援をいただきながら開発を進めてきたChainerからPyTorchへ移行することは、PFNにとって非常に大きな決断です。

 しかし、現在もっとも活発に開発が進むフレームワークの1つであるPyTorchの開発に、PFN自ら参加することで、Chainerを通じて蓄積した技術を活かすとともに、より競争力の源泉となる分野に開発リソースを集中投下することで、深層学習技術の社会実装をさらに加速できると確信しています」。

 また、Facebook Vice President of AI Infrastructure, Bill Jia氏のコメントは以下のとおり。

 「PyTorch開発をリードするコントリビュータとして、機械学習の先駆者であるPFNが、今後の開発にPyTorchを採用すると決めたことをたいへんうれしく思います。

 優れた分散学習機能と推論性能を備えたPyTorchは、PFNの最先端の研究を支援し、機械学習モデルの迅速なプロトタイプ化と顧客環境への実装を可能にします。同時に、機械学習ツールの深い専門知識を有するPFNが提供するコードは、PyTorchコミュニティ全体におおいに貢献してくれるでしょう」。

 PFNが研究開発において提携しているトヨタ・リサーチ・インスティチュート (TRI)のCEO Gill Pratt氏も以下のコメントを寄せている。

 「TRIとTRI-ADはPFNのPyTorchへの移行を歓迎いたします。PFNはChainerを生み出し継続的に開発してきたことにより、これまでわれわれとの共同研究開発および自動運転技術の先行開発に大きく貢献してきました。

 TRIとTRI-ADはPyTorchも使用してきたため、PFNの今回のPyTorch採用により、PFNの持つ深層学習技術をわれわれが円滑かつ速やかに応用できるようになると信じています」。

 PFNが開発提供する、そのほかのオープンソースソフトウェア(CuPy、Optuna)は今後も開発を継続する。

「define-by-run」をいち早く実装した「Chainer」

 「Chainer」は、PFNが開発してきたPythonベースの深層学習向けフレームワーク。2015年6月にオープンソース化された。

 特徴は、それまで主流だった、ニューラルネットワークの計算グラフをまず構築してからデータを流す「define-and-run」方式に対し、計算グラフを動的に構築する「define-by-run」のモデル設計手法を先駆けて実装したこと。

 これにより複雑なニューラルネットワークを直感的に設計できる柔軟性と性能が評価され開発者コミュニティで用いられている。「Chainer」がいちはやく取り入れた「define-by-run」の手法は、現在はほかの深層学習フレームワークにも取り込まれ、デファクトスタンダードとなっている。

 PFNでも、Chainerファミリーと呼ばれるChainerMN(分散深層学習)、ChainerRL(強化学習)、ChainerCV(コンピュータ・ビジョン)などの追加パッケージ開発や、開発パートナー企業のサポートなどを行なっていた。これらも今後、メンテナンスフェーズに移行する予定。

 一方、「PyTorch」は、2016年にリリースされたフレームワーク。Facebookが主導して開発している。Google主導の「TensorFlow(テンサーフロー)」と並んで利用者が増えており、とくに研究者からも幅広く支持を集めている。

 「PyTorch」は「Chainer」を参考の1つとして開発されたとも言われており、使い勝手に多くの共通点がある。環境も整ってきた現時点では「PyTorch」への移行コストは低いと判断したことも、「Chainer」からの移行を決めた理由の1つだという。

研究開発リソースの集中と引き上げを重視

株式会社Preferred Networks 執行役員 研究開発担当VP 比戸将平氏

 PFNの代名詞と言っても良い「Chainer」から「PyTorch」への移行という経営判断について、PFN執行役員 研究開発担当VPの比戸将平氏は、「PyTorchは非常に優れている。Chainerを開発し続けるメリットとPyTorchを使うことのメリットを天秤にかけて、順次移行するという判断をした」と語った。

 PyTorchへの移行によって、これまであったフレームワーク自体をコントロールできるメリットは失われることになるが、「PyTochチームとはもともと密な連携があり」、「設計思想はChainerとかなり近いと判断した」とし、「経営判断としてはきわめて合理的だと思っている」と語った。

株式会社Preferred Networks 執行役員 機械学習基盤担当VP 秋葉拓哉氏

 PFN執行役員 機械学習基盤担当VP の秋葉拓哉氏は、「PyTorch」移行への具体的なメリットについて、「先進的なフレームワークで機能や速度が優れているので研究開発が加速する。ライブラリなど周辺のエコシステムも充実している。最近の研究発表ではソースコードが公開されていて、それがPyTorchで実装されていることが多い。PyTorchを活用することで、最新の研究成果をより直接的に活かしやすくなる。つまり深層学習を活用して最先端の研究開発をして世のなかに届けることが、より容易になる」と述べた。

 つまり「PFNが重視する領域での最先端の研究成果が圧倒的にPyTorchのほうに出てきている」ことを重視して移行を決定したという。

 産業応用においては実装の容易さから「TensorFlow」が使われることも少なくない。

 「モデルデプロイメントについてはTensorFlowのほうが有利な点もあるが、技術的に優秀なリサーチエンジニアを抱えて他社では解けないような問題に取り組んで行くのが当社の強みなので、研究開発の能力向上を重視している。

 もう1つ、PyTorchでのモデルデプロイについても社内に十分な知見があり、難しいと考えられるものでも十分デプロイが可能だと判断している。研究開発を重視しているが、決して産業応用を軽視しているわけではない」と語った。

最先端の研究開発能力を持ち続けるための決断

秋葉拓哉氏(左)と比戸将平氏(右)

 PyTorchはFacebook主導で開発されているが、あくまでオープンソースだ。PFNとFacebookの開発グループとはこれまでも相互に情報交換をしており、今後も連携していく。そのなかで「PFNが必要とする機能を作っていく活動はしていくつもり」とのこと。PyTorchを今後進化させる方向に対してもPFNが貢献していきたいと考えているという。

 Chainerコミュニティに対しては比戸氏は「コミュニティに対しては非常に感謝している」と語り、秋葉氏は「感謝の気持ちとお詫びの気持ちがある」と述べた。

 移行サポートに関しては、Chainerの機能とPyTorchの機能の対応関係を描いた「マイグレーションガイド」を出す(英語版のみ)。もともとPFN社内で実際に使われていたもので、今後の移行においては有用だという。

 また、直近足りない機能を補助したり、使い方をそろえることができる補助ライブラリとして「マイグレーションライブラリ」も出すことで、よりスムーズに使いはじめることができるという。ユーザーも必ずしもChainerからPyTorchへ移行しなければならないわけではなく、バグフィックスは継続して行なわれる。ただしサポート期間は言明されなかった。

 また、秋葉氏は「Chainerを継続して開発してきたことは正解だったと思う。いろんな意味でわれわれの『力』になってきた。その上で役目を終えるというかたち」だと述べた。

 「AIスタートアップがいっぱい出てきたなか、Chainerがなかったら、ここまで来てない。世界的なブランディング的にも、海外の優秀な開発者とのコネクションを作る上でも重要だった。今も『PFNの名前は知らないけどもChainerは知っている』という人たちもいる。社内的にも、Chainerを作っていなかったら研究開発の効率が落ちていたと思うし、下回りのこともより深くできるようになり、今は(深層学習用の独自半導体の)MN-coreも作っている」とこれまでを振り返った。

 秋葉氏は「MN-Core」開発について「フレームワークがどれになっても開発工数が変わらないようになっている。タイミング的には余裕を持って、タイミングが良いところで切り替えられた」とふれた。PyTorchの分散学習の設計はアルゴリズムレベルでも実装レベルでも似ていて、速度面でも親和性高く移行できることを確認しているという。

 そして「この会社が最先端を走る上で、この選択はしないといけなかった。重要なことは最先端の研究開発能力を持ち続けること。よりリーズナブルな方向で動いて、より競争力をキープして、より強くし続けるために今後もがんばっていきたい」と語った。

 比戸氏は「今後は研究開発力をフレームワーク以外のところに注ぐ」と述べた。