深層学習の極小量子化という新たなる希望

(スターウォーズのテーマをかけ、ゆっくりとスクロールしながらお読みください)

この記事は LeapMind Advent Calendar 2019 25日目の記事です。

もはや年1回の更新すら怪しくなってきたこのブログですが、今年もなんとか更新できました。来年はどうなるかな。

概要

LeapMindは極小量子化という技術にかなり注力していますが、どういうことをやっているのか、なぜそのようなことをやっているのか、CTO個人としての視点から解説します。

はじめに

LeapMindという会社の究極的な目標を端的に表現すると、機械を今よりもインテリジェントにすること、特に、データセンターにあるような計算機ではなく、身近なエッジデバイスをインテリジェントにすることです。正確なニュアンスについて知りたい方は、現在絶賛社員募集中なので、ぜひ会社見学にいらっしゃってください。

さて、このような崇高なミッションを掲げるLeapMindですが、一足飛びにミッションを達成することはできません。ミッション実現へ至る道として、現在は、ニューラルネットワークの極小量子化とその高速な実行環境の整備を中心に、いくつかの技術領域に投資を行っています。(余談1:この極小量子化という言葉は造語ですが、この分野の論文でよく使われるExtremely low bit quantizationを訳したものです。よく使われる表現としては他にUltra low bit quantizationがあり、どちらかというと後者に魅力を感じたのですが、検索ヒット数では前者の方がひと桁多く、LeapMind公式用語としては前者を採用しました。)(余談2:LeapMindは極小量子化に注力していますが、極小量子化以外はやらない、という訳ではありません。極小量子化案件以外でも、お気軽にご相談ください。)

極小量子化について

情報理論における量子化とは、連続的な量を離散的な値で近似することですが、ここでは、十分な精度で表現されていた離散的な値を、より少ないビット数、例えば8bitで表現することを指します。ニューラルネットワークの量子化というと、現在の主流は32bit浮動小数点数から8bit整数への量子化ですが、LeapMindでは重みを1bit、アクティベーションを2bitに量子化しています。8bitより小さなビット幅への量子化は急激に難易度が増すことが知られており、普通の8bit量子化と区別するため、LeapMindでは極小量子化という名前を使っています。(前述の通り、研究分野では、extremely low bitが多く見られるので、それを日本語に翻訳しました。)

極小量子化の技術的な詳細については、手前味噌ですが、ニューラルネットワークの量子化についての最近の研究の進展と、その重要性 - SmartNews Engineering Blog をご覧いただければと思います。やや古い記事ではありますが、日本語でまとまったものは、私の知る限り、2019年現在でも、この記事しか存在しません。

さて、極小量子化技術の詳細については理解して頂けたものと仮定して話を進めます。

極小量子化のメリットは色々あります。単純にメモリ消費量を下げられますし、FPGAやASIC等で実装する場合、演算回路の面積も大幅に小さくできます。結果として、電力効率の大幅な改善に結びつけることができます。LeapMindでは、電力効率の改善のために、FPGA用の極小量子化DNN専用アクセラレーターの開発に取り組んできました。現在はこのアクセラレーターの汎用性の向上に取り組んでおり、2020年前半にはASICで使えるIPとしても販売することを目指しています。

そもそも、電力効率を改善すると何がいいのでしょうか。もちろん、効率が良いものと悪いものを比べれば、効率が良いほうが嬉しいのは自明ですが、それは他になにも不都合がない場合の話です。極小量子化にはメリットしか存在しないわけではありません。課題もいくつか挙げてみましょう。

  • 単純に量子化するだけだと精度が下がってしまう
  • 論文で解決されているのは大きな問題だけであって、実際に効率のよいアクセラレーターを作ろうとすると、未解決の技術的な課題が色々と残っている
  • GPUで作ったモデルがなんでも動かせるわけではない、学習時から量子化のことを考慮する必要がある
  • 既存のOSSに乗っかれる部分が少なく、開発コストが高い

なんだかんだで色々と課題があることがわかりますね。もっとも、未解決の技術的課題や開発コストの高さは、参入障壁にもなるので、乗り越えられるならば、実は好ましい性質の課題です。一方で、GPUで作ったモデルをそのまま何でも動かせるわけではない、という制限は、プロダクトだけで完全解決できず、顧客にある種の面倒さを強要してしまうことになり、好ましくない課題です。

では、なぜLeapMindはこのような大変そうな技術に注力しているのでしょうか。

極小量子化という困難にチャレンジする理由

そもそもの問題意識は、ニューラルネットワークは計算量が大きすぎてエッジデバイスではなかなか実用化までたどり着かない、というあたりから始まっています。特に、LeapMindが極小量子化に取り組み始めた頃は、エッジデバイスでの実用例を見つけるのは本当に難しい状態でした。

ニューラルネットワークの電力効率の改善という課題自体は、多くの人が賛同する課題でしょう。一方で、そのための解決策として極小量子化というアイディアが出てくると、この会社は大丈夫なのだろうか、という疑問が湧いてくる方も多いと思われます。実はこれがポイントで、スタートアップとしては、アイディアを聞いた10人が10人、全員が「いいね!」というようなアイディアには取り組むべきではない、と考えています。全員が賛同するようなアイディアはたぶん王道で、そのようなアイディアに注力しても、大企業にはほぼ確実に勝てません。スタートアップが大企業に勝つためには、ちょっと怪しいくらいのアイディアに取り組むべきです。

また、5年後、10年後の未来を考えると、深層学習が様々なシーンで使われているであろう未来は容易に想像できます。どんなキラーアプリケーションが使われているのかはよくわかりませんが、それを支える電力効率のよいDNNアクセラレーターが必要となることは間違いないでしょう。そのための技術として、ニューラルネットワークの極小量子化が5年後にメジャーな技術になっているのかというと、正直よくわかりません(もしかしたら、スパース化が使われていたりするかもしれないですよね)が、結局、自分の勘を信じて何かにチャレンジしなければ、道は拓けません。ある程度のリスクは仕方がないでしょう。

さて、ここまでは「極小量子化でもいい」という話で、「極小量子化がいい」という話ではありません。なぜ極小量子化を選んだのでしょうか。

なぜ極小量子化を選んだのか

隠れ層を持つニューラルネットワークでは、universal approximiation theoremという定理が成り立ちます。つまり、任意の関数を任意の精度で近似することができます。(隠れ層のニューロンの数に制限をつけない場合です。つけるとさすがに、任意の関数を任意の精度で、というわけにはいきません。)

おもしろいことに、実は、weightを量子化しても、universal approximiation theoremは成り立ちます。([1802.03646] On the Universal Approximability and Complexity Bounds of Quantized ReLU Neural Networks)この論文では、activationは量子化していませんが、私が思うに、たぶん、activationを量子化しても、universal approximiation theoremは成り立ちます。

極小量子化したニューラルネットワークの計算は、シンプルなビットベクターの内積の計算とたまに非線形変換を繰り返すだけのものですから、結局、ビット演算とちょっとした非線形変換だけで、任意の関数を任意の精度で近似することができるのです! (ややくどいですが、この命題は未証明です。)

複雑なことをやっている世の中のプログラムの一部は、もしかすると、シンプルなビット演算だけで書き直せるのかもしれない。私は技術者として、この事実(くどいですが、「事実」とか書きましたが、未証明です。)にとてもワクワクします。このワクワクを言葉でうまく伝えるのは難しいですが、説明が難しいということは、結局、本能的な、プリミティブな喜びなのかもしれません。カレーを食べておいしいと感じる、みたいな。

まとめ

LeapMindという会社が極小量子化に取り組む理由について、自分の視点から解説してみました。最終的には言葉でうまく説明できない部分が残ってしまいましたが、ああ、とにかく、極小量子化が好きなんだな、という点にご納得いただければ幸いです。

さて、LeapMindでは現在、数多くのポジションで新規採用を実施しております。ビット演算大好き!ワクワクする!という方もそうでない方も、新卒の方も中途の方も、歓迎しております。ソフトウェアエンジニアだけではなく、ハードウェアエンジニア(特にFPGA/ASIC用のIPの開発)、ビジネスデベロップメント、セールス、全方位でメンバーを募集しております。

あまりうまく宣伝できていませんが、社員構成は国際色豊かで、メンバーの出身国は10カ国以上になります。HackDaysという取り組みを行っていたり、Education Supportで技術書を買ったりCouseraのオンラインコースが受講できたりします。ご興味のある方、ぜひご応募下さい。いきなり応募は怖いという方、私の方までメールをいただければ会社見学をアレンジすることもできます。

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

Latest articles