Sign up for free

This page is intended for users in Japan(English). Go to the page for users in United States.

TPU開発の経緯の記事を見て思うこと

まだ気の利いた開発ブログなどなどかける力は無いので、少し違う視点から記してみようと思いました。

つい先日、気になっていたTPUの開発に至った経緯の記事を眺めていました。記事自体が公開されたのはもう1年前なので目新しさはないのですが。

Google の Tensor Processing Unit (TPU) で機械学習が 30 倍速くなるメカニズム

https://cloudplatform-jp.googleblog.com/2017/05/an-in-depth-look-at-googles-first-tensor-processing-unit-tpu.html

この記事を読んで見て、素人なりにふと思ったことがあったので、いくつかメモしておこうと思いました。

1.機械学習を取り巻くプレーヤー

一口に機械学習と言っても、これに携わるプレーヤーは様々だとは思います。データサイエンティスト、研究者、GPUの販売元、回路の設計者。

一つ目のデータサイエンティストという職種が語られるようになってまだ日が浅く、機械学習を少し学んだ人間であればわかることですが、この中核にある思想は統計学によって固められています。NN自体はもう20年以上前からある技術ですし、それが多層になったことで10年程度前にイノベーションが起きたわけですが、本来の定義から見た人工知能と呼べるようなものからは程遠い代物です。なので現状データサイエンティストしてやっていこう、と考えるのであるならば、やはりtensolflowやkaggleを弄り倒すことに意味があるのではなく、統計学や確率論の基盤をしっかり身につけることが大事なんじゃないかな、と考えています。欲を言えばその先にある情報幾何あたりも。

周りには東大生がゴロゴロいて、彼らの多くはtensolflowやkaggleを使ってその出力結果や分析の出来具合を競っている子達が多いわけですが、妙な過熱ぶりも感じることもまた多く、少し心配している面もあります。

二つ目の研究者ですが、実際問題として、データサイエンティストには研究者が向いてるんじゃないかなと思うことが多くあります。サイエンス、ととりあえずは名がついている通り、そのプロセスは実証分析に極めて近いためです。他方でものづくりとしての要素はほぼありません。データを大量に扱い、これを振るいにかけて意味を抽出する、というプロセスですが、そこからプロダクトが生まれるわけではなく、リサーチレポートが出てくるのみですから、やはり研究者とやっていることが似ているわけです。

データサイエンティストとエンジニアは需要の高まる職種ではあると思うんですが、要求される資質は全然違うなという手応えを持っています。そして恐らく、嗜好が一致すれば比較的裾野の広い業種です。

3つ目の販売元ですが、これはいうまでもなく現状GPU市場を独断場にしているNVIDIAの存在感が圧倒的です。民生用・業務用ともにGPUを使った機械学習がほとんど全てでしょうから、今後もしばらくNVIDIAの業績は上り続けると思います。でも、学生の就職先としてはあまり名前を聞きませんね。なぜでしょう?

ですがそのNVIDIAの売っているものは、回路そのものの開発というよりは、すでに組んだ回路に対するソフトウェア開発、つまり独自に開発している言語であるCUDAな訳ですが、ここで勝負をしています。GPUは機械学習に限らず、映像の書き出しやCADによる製図でも使われていますが(CUADRO)、CPUが不得手とする並列処理全般を扱う回路を組み込んだ装置がGPUであり、必ずしもGPUは機械学習に特化したものではないということはよく知られています。

そんな中でてきたのが4つ目の新たな回路の設計者、つまりgoogleによるTPUの開発だったわけです。当然回路レベルから機械学習に特化した装置を用意できるということであれば、そのパフォーマンスは優れたものを期待できます。上のblogにもある通り、NNの演算を行うにあたって8ビットの演算で荒削りな推論を行い、レジスタへの書き込みを押さえることで飛躍的な処理速度の向上を実現しました。現状googleはTPUを市販する気はないようですが、NVIDIAとしては相当冷や汗もので見てるのではないでしょうか。

4つの主なプレーヤーの力関係を俯瞰するに、今後の鍵を握るのは、主に回路の開発競争にあるのではないかと、そのように捉えています。もちろん機械学習のアルゴリズムの改良は論文発表から実装まで半年程度しかないという速度で進んでいますし、ここでの競争も繰り広げられるでしょうが、機械学習という産業の最深部に手を加えることができる回路の設計という仕事の影響力は圧倒的です。

2.機械学習を提供する上での競争力はASICその他回路の設計に

こうした視点で見た場合の回路の設計者としてのgoogleの懐の深さは恐ろしいものがあります。まずこのTPUの話自体が車内で上がったのが2006年頃だと記されています。2006年といえばPRMLが出版されたのと同時期ですから、いかに早い段階から見通しを立てていたかがわかります。

次に実際に開発に乗り出したのは2013年で、おそらく市場投入のタイミングを見計らっていたのだと思いますが、そこから開発終了までのASICの設計よりもはるかに短期間であるというこの2点にも驚きです。

得てして日本の機械学習に関心のある人間の多くは、現状ほとんどアルゴリズムとソフトの利用の方に目が向いているかと思います。そして回路の設計にはほとんど目が向いていない。おそらく開発投資もできないというのもあると思いますが、得てしてGPUの設計は技術的にかなり高度であるとも聞いています。

ですが本気でグローバルな市場で主要なプレーヤーと戦う気があるのであれば、ここを避けて通るのはあまり利口とは思えません。実際学生を見ていても、CUDAですら関心を持つ子がほとんどいないわけですが、回路となると一部の大学の情報学科の学生がその価値を把握している程度でもあれば、テキストその他も出回っていません。

短期的な流行り物のラットレースでの自己満足に終わるのでなく、長期的に頑健な戦略を練らないと、このまま無駄に若年世代の才能も死んでいく気がしてなりません。戦争と同じだなと思う次第です。あるいは機械学習という競争分野を外して全く別の分野で勝負した方が、結果的には多くの企業も利益を享受できるのでは無いか、そんな風にも思えています。