Chainerの終了に日本のITのオワリを見た

このポエムにはかなりエアな部分が含まれるが、まぁ気にせんでほしい。

プラットフォームOSSの争いで勝つことには大きな意味がある

今や何がなんでもAIAIAIAIAIAIAIAIの時代である。 それを支えているのがディープラーニングという技術である。

ゼロから作るDeep Learning まとめ(1)

私はディープラーニングはあまり詳しくないかほぼエアに近いが、 それを使って出来ることはとても豊かであることは知っているつもりだ。

ディープラーニングという分野には大変なビジネス上の可能性がある。 従って、グーグルやフェイスブックはそれぞれ、自分たちで独自にディープラーニングネットワークを 構築するためのプラットフォームを開発している。 例えば グーグルのはTensorFlowというものであり、フェイスブックのはPyTorchと呼ばれる。 他にもマイクロソフトなども独自のプラットフォームを開発していて、 覇権を取ろうと猛烈に投資をし続けている。

いちユーザからすると、どのプラットフォームが覇権をとったとしても、 それを使えばいいだけなので大して差はないように見えるが、 実際には、プラットフォームで覇権をとるということは、その分野で覇権をとるということに ニアリーイコールなのである。

プラットフォームで覇権をとれば、世界を自分色に染められるといっても過言ではない。

Chainerの終了

その超のつく激戦の中に、PFNという日本で最強のIT企業が突っ込んでいったわけである。 どう最強かは、後述する。

彼らの作っているプラットフォームはChainerと呼ばれる。

このChainerはディープラーニングプラットフォームの初期に流行していた define-and-runという方式とは逆の発想をしたdefine-by-runという、 実行しながら計算グラフを作っていくという方式を採用した。 これは学術的なレベルではよくわからないが、 企業レベルのプラットフォームでは先駆けだったように思う。 その後、結果としてこのdefine-by-runという手法が主流になったことを考えると、 彼らの思想自体は未来を見通した素晴らしいものだったと評価出来る。

TensorFlowとChainerが出たのが2015年、PyTorchが出たのが 2016年だから、この3年や4年の間に、猛烈な勢いの中で GAFAとバチバチやりあっていたわけです。

ディープラーニングのプラットフォームの実装となると、 それこそコンパイラの技術なども必要なってきたりと、 かなり骨のある仕事に思えた。

たぶん、このレベルの争いの中に突っ込んでいけるのは 日本ではPFNだけだろうし、私も大いにわくわくしたので、 2017年に双方向LSTMを少しかじることになった時には、 Chainerを使うことにしたわけだ。

当時から、将来的なことを考えるならば、グーグルのTensorFlowとかを使うのが 無難であることは間違いありませんでしたが、 日本人でありながらChainer以外を使うのはバカだろという思いがありました。 もちろん、define-by-runの方がRNNを書きやすいというのもありましたが。 MLに質問した時のものが残っていたので紹介する。今となっては思い出である。

しかし、つい最近つまり2019年12月のニュースリリースで、 PFNはChainerの開発を中止することに決めた。

PFNならGAFAを倒せると思ってた

プラットフォーム戦争で勝つためには、 たくさんのユーザを味方につける必要があります。

通常、プログラミング言語やライブラリを選ぶ時にまず見るのは、 それを作っている会社です。

今人気のPythonやGoはそれ自体には何の良さもないものですが、 グーグルが作っているから使われています。

私が一押しのRustも、もともとMozillaという会社の1プロジェクトだったので 先行きが少し心配されていましたが、素晴らしい言語だと見初めた マイクロソフトやアマゾンが投資をはじめたことから最近になり一気に注目を集めています。

プラットフォーム戦争でも、グーグルやフェイスブックというGAFAがサポートしているというのは、 ユーザとしては安心するものです。経営難で開発中止とかもありませんし、 開発者の質も担保されています。 もちろん今回のChainerのように競争で負けて、開発中止というケースにも なりにくいとは言えます。

PFNは世界的に見れば、GAFAほどの知名度はありませんから、 はっきりとは言えませんが、世界的な戦いの中では苦戦していたのだと思います。 少なくとも私が日本人でなければ、Chainerを使った可能性はとても低かったでしょう。

もちろん言語的な問題もあります。 Chainerの開発者は英語がまともに出来ると思いますが、 Chainerのユーザである日本人は日本語でQiitaに記事を書いてしまいますし、 英語のドキュメントを書きません。

こうなると何が起こるかというと、 Chainerのドキュメントを探そうとしても日本語のものばかり見つかることになります。 結果として、世界的なユーザの獲得はどんどん遠のいていきます。

と、いうことはおそらくChainerをはじめた時からわかっていたことですが、 それでもPFNなら勝ててしまうのではないかという淡い期待が私の中にはありました。

社長の西川さんによる 強気なコラム「われわれは100倍、速く書ける」 に書いてあるとおり、PFNの前身であるPFIは、 レッドコーダーや、それと同等のレベルにあるプログラマたちが集まってはじまったベンチャー企業で、 他のIT企業から見て明らかにレベルの違う企業でした。 初期のメンバーは三国志でいうならば、全員呂布でした。

当時は検索事業を中心にしていましたが、ディープラーニングが来ると見ると PFNを設立し、そちら側に軸足を移しました。 それから、ディープラーニングの産業応用を目的に、 それぞれの分野の優秀なエンジニアを採用し、拡大していきました。 その中でChainerの事業というのはやはり中心にあったのではないかと想像します。

検索もそうですし、ディープラーニングもそう。 「われわれは100倍、速く書ける」といって憚らない人間がグーグルの中心事業に少数精鋭で真っ向勝負を挑んでしまう のは一見無謀でしたが、PFNなら出来てしまうと思っていた人が多いのではないかと思います。

GAFAには勝てない。絶望

でも結局、PFNでもGAFAには勝てなかったわけです。 斬新な思想に基づくプラットフォームを先駆けたとしても、 結局後追いで力づくで潰されてしまった。

これは悲しいことですし、 基本的に日本のIT企業というのは後追いしかしませんから、 PFNで勝てないならもうどこも勝てないだろうなと絶望を覚えます。

SSDキャッシングでかつてあった戦争について昔話をする

しかし、中でChainerをやっていたプログラマはきっと、 楽しかっただろうなとは思います。

最後に私の話をすると、 私もdm-writeboostというSSDキャッシングソフトウェアを作っていた時、 当時、一番先行していたのはFacebookのflashcacheというソフトウェアでした。 今ではDevice Mapperというフレームワークはかなりポピュラーになりましたが、 当時はまだ、それを使って本当にキャッシュを実装出来るのだろうか?というレベルでした。 それから、RedHatがdm-cache、グーグルのKent Overstreetがbcacheというソフトウェアを作っていました。 そこに、私もdm-writeboostというログ構造化キャッシングという何十年も前に学術論文に書かれた技術 をSSDキャッシングに応用したソフトウェアを打ち出しました。 この仕事は大変わくわくしたものです。だから、Chainerにもわくわくしたし、きっと中のプログラマもわくわくしていただろうと思うのです。

結果どうなったか。Facebookのflashcacheは終了し、forkされたenhanceIOというソフトウェアも終了しました。 bcacheもあまり評判はよくありません。dm-cacheはメインツリーに入っているので使われてはいますが、 古典的なキャッシングアルゴリズムを使っているため、性能があまり良くなく、 RedHatの別のプログラマがdm-writecacheという、ログ構造化キャッシングに基づくキャッシュソフトウェアを実装しています。 未だ不安定のようではありますし今後どうなるかは知りませんが。

SSDキャッシュの歴史

dm-writeboostは私としては実装すべきことは全部やったつもりで、今後拡張していくつもりはないのですが、 研究プロトタイプの土台として採用されたり、大学のVDI基盤に採用されたり、 今でもたまに質問が飛んできます。決して多くはないですが、それなりに使われているそうです。 海外の会社相手にコンサルティングをして大きくはないですが報酬を得たこともあります。

もし実装にバグがあればすべてがおしゃかになる カーネルレベルのストレージ高速化ソフトウェアが他人に使われるというのは簡単ではありませんから、 ある意味、ディープラーニングのプラットフォームより書き手の信頼性が求められる分野だと思っています。 ですから、私はこの結果には満足しています。

SSDキャッシングはディープラーニングのように各社のメインストリームではなく サイドプロジェクトのレベルでしたが、私も趣味でやっていただけなので、 その中でそれなりの勝負が出来たというのは誇りに思います。

Chainerの開発者たちは日本の希望

Chainerに携わっていたプログラマのみなさんはどうでしょうか? おそらくこの4年間、濃密な時間を過ごしてきて、開発中止で悔しいというよりはむしろ やり切ったという思いの方が強いのではないかと思います。 開発中止は今日昨日に決まったことではなくずっと前に決まっていたでしょうから、 やっと公開されて気が晴れたというのもありそうです。

そういう濃密な時間を過ごせたみなさんを羨ましく思うとともに、 私は無職の底辺の者として、この数年で貯金が尽き生存中止されてしまう悲しい存在ですが、 みなさんに希望を託せば安心して死ねそうです。Chainerをありがとう。


このエントリーをはてなブックマークに追加

See also