藤野の散文-私の暗黙知-

毎日の中での気付きについて書いています

今また昭和。

*[次の世代に]日本の夜明けに。
プリファードネットワークスの製品が開発を終え、facebook製に移行するという。
一見日本発の技術の白旗のようだが、どうも違うらしい。
同社が最初に取り入れた「Define-by-Run(実行しながら定義する)」という開発手法が、その後の開発の標準になっているという。
こうした日本のソフトウェアの開発技術が、世界の第一線と肩を並べたのは初めてではないだろうか。
 
開発言語ではRubyとかもあるけれど、こうした基礎的な開発手法が世界費用順になり、それが世界で使われながら改良されて「さらに洗練された製品になる」ということは誇らしいことだと思う。
 
散々、日本発のソフトウェアは貧弱だと言われ続け、ハードウェアでも新興国に抜かれて自信を失っていたと思うが、単に時価総額を競うユニコーンがどう、ではなく「基礎技術を気長く育てるようなやり方」が日本の性質には合っているのではないかと思う。
 
ただそうした基礎技術への投資を決めるのには、官僚ではなく民間企業がリスクを恐れずに断行できる覚悟が必要だろう。
一人のリーダーシップで企業を引っ張る「昭和型」の経営者が再び必要なのではないだろうか。

GAFAが後追いした国産AIの雄 開発終了の深層

 

自社のディープラーニング(深層学習)フレームワークである「Chainer(チェイナー)」の新機能開発を終了し、米フェイスブックが開発する「PyTorch(パイトーチ)」に移行すると発表した人工知能(AI)開発のPreferred Networks(プリファード・ネットワークス=PFN、東京・千代田)。その決断の背景を探った。
 
Chainer開発の責任者であるPFNの秋葉拓哉執行役員は、「PyTorchという非常に優れたフレームワークを使うメリットと、Chainerを使い続けるメリットとを比較した結果、PyTorchに移行すべきだと決断した」と説明する。「PyTorchは先進的なフレームワークで、機能や実行速度も優れている。PyTorchを利用することで、PFNの研究開発もより加速する。ChainerからPyTorchへの移行コストが低いことも決断を容易にした」(同氏)。
 
これだけ聞くと「国産深層学習フレームワークであるChainerが、フェイスブックという巨大企業の開発するPyTorchに敗れた」ように受け止められる。しかし、PFNのメンバーに負けたという思いはないだろう。なぜならPyTorchはフェイスブックがChainerを参考に開発を始めたフレームワークだからである。
 
■画期的だった「実行しながら定義」
 
PFNが2015年6月にオープンソースソフトウエア(OSS)として公開したChainerは、深層学習フレームワークの世界において画期的な存在だった。「Define-by-Run(実行しながら定義する)」と呼ぶ仕組みをいち早く取り入れたからだ。
 
Define-by-Runは現在、フェイスブックのPyTorchだけでなく米グーグルの「TensorFlow(テンサーフロー)」や、米アマゾン・ウェブ・サービス(AWS)の「MXNet(エムエックスネット)」が取り入れている。ソフトウエアの新技術は米国企業が考案して、日本企業はそれを輸入するだけ――。そんな長年の構図を覆したのがChainerだった。
 
Chainerが先駆けとなったDefine-by-Runとは、ニューラルネットワークの計算を表現した計算グラフを、学習などデータを入力した際に動的に構築する手法である。開発者はニューラルネットワークの構造や学習の方法をPython(パイソン)プログラムとして記述する。そして計算の実行時に、Pythonプログラムに基づき計算グラフが定義される。
 
Chainerが登場するまでの主流は計算グラフを学習の前にあらかじめ構築する「Define-and-Run」と呼ぶ手法だった。開発者はニューラルネットワークの構造を定義ファイルやフレームワーク専用のプログラミング言語で記述する。
 
深層学習ブームの初期はユーザーが使用するニューラルネットワークが「畳み込みニューラルネットワーク(CNN)」にほぼ限定されていたので、ニューラルネットワークの構造をあらかじめ決めておくDefine-and-Runで問題がなかった。
 
しかし入力データによって計算グラフの構造が変化する「再帰ニューラルネットワーク(RNN)」などCNN以外のニューラルネットワークが台頭するにつれ、ニューラルネットワークの構造を柔軟に制御できるDefine-by-Runが優勢になっていった。
 
■後発のフェイスブックに抜かれた理由
 
グーグルは17年10月に、TensorFlowに機能を追加してDefine-by-Runを使えるようにした。同じ17年10月にはAWSと米マイクロソフトが共同でソフトウエアライブラリーをOSSとして公開し、MXNetでDefine-by-Runを使えるようにした。
 
もっと分かりやすいのがPyTorchだ。フェイスブックがPyTorchのベータ版を一般公開したのは17年1月のことで、主要開発者である同社のスミス・チンタラ氏はPyTorchの設計思想がChainerの影響を受けていると明言している。「Chainerのフォーク(分岐)と呼ばれても構わない」(チンタラ氏)との発言まである。
 
それではなぜ、Chainerが後発のPyTorchに追い抜かれる結果となったのか。最大のポイントは、ChainerがすべてPythonで実装されていたのに対して、PyTorchはそのほとんどがC/C++で実装されており、パフォーマンス面でPyTorchが優位だったことがある。
 
PFNもPython実行系のオーバーヘッドがChainerの性能ボトルネックになっていると認識しており、18年12月には行列演算や誤差逆伝播バックプロパゲーション)などの処理系をC++で実装し直した「ChainerX」をリリースしている。PyTorchの実装手法を後追いした形だが、結果としては「後の祭り」だった。
 
もし早い段階でChainerをC++などで実装していれば、違う結果になったのでは?――このような問いかけに対してPFNの秋葉執行役員は「難しい質問であり、PFNとしての統一的な見解はない」と答える。
 
■研究コミュニティーで圧倒的に強いPyTorch
 
とはいえやはり、PyTorchに勝つのは難しかっただろう。フレームワークのようなソフトウエアは、性能だけで優劣が決まるのではない。エコシステム(生態系)の充実度も重要な要素だからだ。
 
PFNの秋葉執行役員は「深層学習分野の研究コミュニティーにおいては、新しい手法が論文で発表されると同時に、コードがOSSとして公開されることが増えている。そうしたコードにはほとんどPyTorchが使われている」と指摘する。
 
ユーザーにとってはPyTorchを選べば、他の研究者による優れた研究成果にダイレクトにアクセスできることになる。フェイスブックはPyTorchに関して、非常に強固なエコシステムを築いているのだ。
 
フェイスブックがPyTorchの正式版「バージョン1.0」の発表をしたのは、18年5月に開催した開発者会議「Facebook F8」の基調講演だった。会場には数千人の開発者が詰めかけており、PyTorchが人気の高い深層学習フレームワークであった「Caffe(カフェ)2」の後継でもあることが発表された。巨大企業であるフェイスブックのサポートがPyTorchのスタートダッシュに貢献したのは間違いない。
 
最終的には勝てなかったとはいえ、PFNがChainerを開発したことには大きな意義があった。PFNの比戸将平執行役員は「我々が15年12月の(AI学会)『NIPS(現:NeurIPS)』でChainerを発表した際、Define-by-Runという仕組みに意味があるのかとの声まであった」と振り返る。現在の主流となったDefine-by-Runという仕組みを切り開いた功績がChainerにはある。
 
また比戸執行役員は「Chainerがなかったら、PFNはここまで来ていなかった」と振り返る。「Chainerが我々の技術力の証拠となり、トヨタ自動車パナソニックとの提携にもつながった。PFNの外国人社員の比率は現在10%を超えるが、外国人の技術者を採用できたのもChainerがあったからだ」(比戸執行役員)。
 
■PFNに求められる「次の顔」
 
PFNの秋葉執行役員は「Chainerのコミュニティーには感謝していると同時に、おわびの気持ちもある」と振り返る。PFN以外のユーザーによるChainerに対する支持が、その名声を高めることにつながったからだ。
 
一方でChainerを支持してくれたユーザーに対しては、おわびの気持ちがあると打ち明ける。「ユーザーに対してはできるだけのことをしよう」(秋葉執行役員)との方針で、移行(マイグレーションガイドラインやChainerとPyTorchの使い勝手をそろえるためのマイグレーションライブラリーなどを提供する。またChainerに関しては今後、新しい機能は追加しないものの、バグフィックスなどのメンテナンスは継続するとした。
 
PFNは日本屈指のユニコーンであり、その推定企業価値は19年9月末の時点で3500億円にも達すると報じられている。しかしPFNには会社の顔となる製品(プロダクト)がまだ無い。これまではOSSのChainerがPFNの看板だった。
 
20年に完成する予定の深層学習専用プロセッサー「MN-Core」が新しいPFNの顔になるのだろうが、PFNが自社で使用するプロセッサーよりも、様々なユーザーが活用できるプロダクトこそが会社の顔にはふさわしい。ライフサイエンスやロボット開発などPFNが進行している様々なプロジェクトの中で、どれが実りを迎えるのか。PFNにとっては真価が問われる時期がやって来たといえそうだ。
 
(日経 xTECH/日経コンピュータ 中田敦)