利用事例

連載9回:LeapMind 株式会社 様

量子化ニューラルネットワークが実現する、「どこにでもAIがある」エッジAIの世界

 日本での5G元年と言われる2020年、スマートフォンをはじめとした我々の身近にある情報端末や機器では、より賢いデータ処理が必要とされています。そんな中、エッジディープラーニングのトータルソリューションに独自の強みを持つLeapMind株式会社様に注目が集まっています。演算精度をわずか1bitにまで極小化したAIモデルの実現や、様々なエッジコンピューティングの社会実装を志向する同社の取組みについて、研究部門を統括する兼村様と研究者の方にお話を伺いました。


Photo01_LeapMind

LeapMind 株式会社

執行役員 CRO 兼村 厚範 様


― まず、皆さんが、今どのような仕事をされているのか教えて下さい。

中曽 拓(以下、中曽):

 私はResearch and Science Divisionという部門で、機械学習の応用研究をしています。研究と言っても、大学のような理論的な研究をしているのではありません。プロダクトそのものは別の部門でやっていて、私はそのためのエンジニアリングとして、機械学習の論文を読んだり実際に実験をしたりして、どの方法が良いかを比較検討しています。

ジョエル ニコルズ(以下、ジョエル):

 私も同じ部門に所属しています。量子化ニューラルネットワークや量子化ディープラーニングというものを研究して、より高品質でサイズの小さなAIモデルを作り出す手法を見つけるために、いろいろな実験をしています。

兼村 厚範(以下、兼村):

 実は、私は2018年まで産総研の人間情報研究部門と人工知能研究センターにおりました。今は退職しましたが、招聘研究員という形で産総研の立場でも働いています。LeapMindでは執行役員Chief Research Officer兼Chief Scientistとして、Research and Science Divisionが会社全体の中でどのような研究をしたら面白いのか、役に立つのかということを経営側の一員としてやっております。


Photo03_LeapMind

Research & Science Division

ジョエル ニコルズ 様(左)、中曽 拓 様(右)


クラウドでのAIから、「どこにでもあるAI」に着目


― LeapMindさんは、組込み型AIやエッジAIといった技術に取り組んでいると伺いました。今さらですが、そもそもエッジとはどういう概念ですか?

兼村:

 人によって少し違いますが、ざっくり言うとクラウドコンピューティングと対になる、その場で処理するのがエッジコンピューティングです。エッジとは縁とか端っこ、という意味です。クラウドのように情報を中央のサーバーへ送って処理した結果が返ってくるのではなくて、手元で処理するということです。

 ただ、モバイル回線につながっているスマートフォンも、全部クラウドでやっているということではなくて、たとえばカメラの画質改善処理などはチップ上つまりエッジで行っていますから、今のスマホは既にエッジとクラウドの混ざったものと言えると思います。


― なるほど。では、エッジAIと普通のAIはどう違うのでしょうか?

兼村:

 Google猫というものをご存知でしょうか。ディープラーニングを用いて人工知能が初めて「猫」という画像を認識したという論文が出たのが2012年です。このときの計算リソースは16コアCPUのマシンが169台、全体で約3000個のCPUコアを使っていました。2015年頃になると、計算リソースにNVIDIAのGPUが大規模導入されたといったニュースが出てきます。つまりディープラーニングは当初からクラウドとかデータセンターのような大規模なリソースを使用するのが前提になっていました。

 この時期我々には、こんな便利な技術なんだから世の中のいろんな場所で使われるようになるはずだ、という予感がありました。しかし、世の中のいろんな場所でデータセンターや高価なGPUを使うのは限界がくるし、いずれは低消費電力、かつコンパクトな形でディープラーニングが活用されるようになるはずだと考えたのです。

 そこで2015年から2016年頃、先ほどジョエルから話した量子化ニューラルネットワークですとか、FPGA1などのハードウェア上での実行に着目して研究開発を進め、パートナー企業の方々との共同プロジェクトや提携を始めたという流れです。


― 機械学習に大量のCPUやGPUのリソースが使われ始めた頃から、将来はFPGAのように小さな組込み機器によるAIが必要になると考えておられたんですね。

兼村:

 はい。その精神は今も変わっていなくて、機械学習を使って今までにないデバイスをあまねく世に広めていきたいと考えています。眼鏡のようなウェアラブルデバイスやドローンなどに使うのに、AIのためにGPUが100Wの電力を使います、というのは避けたいわけです。


極小AIモデルを実現する、量子化ニューラルネットワーク


― 機械学習は、まずABCIのように膨大なリソースを使って行う「学習」と、それで作られたモデルを利用した「推論」の2つの段階がありますが、この「推論」をFPGA程度のリソースで足りるものにしようということですね。

兼村:

 そうです。そこで他社や大学の研究と着眼点が違うのは、量子化という考えを取り入れたことです。ここで言う量子化とは、物理学で言う量子ではなく、情報の離散化のことです。


― 音楽をCDなどのデジタル信号に変換することを、量子化と言いますね。

兼村:

 まさにそれです。レコードの針は連続した動きですが、それをCDでは44.1kHz、16bitの離散化したデータにサンプリングしています。これが量子化です。

 ディープラーニングの中身は、膨大な掛け算と足し算の組み合わせです。たとえば32bitの浮動小数点計算をしようとすると、複雑な電子回路が必要です。LeapMindではこれを、1bitにまで落とそうとしています。1bitというのは0か1かだけなので、ものすごく回路が単純化できるんです。サイズも、消費電力も、コストも下がります。

 FPGAにも1個数百万円のハイエンド品から、数百円以下のローエンドまであります。普通のディープラーニングのモデルは携帯電話ぐらいのデバイスでは動きますが、ローエンドのFPGAでは動きません。1bitの量子化によって、小さなFPGAでも実行可能なAIモデルが実現できるんです。


組込みAIは宇宙へ、自動車へ、鉄道車両へ


Photo02_LeapMind


― どのような用途で実用化されているのでしょうか?

兼村:

 我々は製品を売りだすのではなく、基盤技術を提供しています。例えばJAXA(宇宙航空研究開発機構)の宇宙探査ミッションです。

 将来は画像を認識して探査機を制御すると言った処理にも使いたいのですが、まずは写真の選別から始めました。遠い宇宙から大量の画像を送るのは帯域的に難しいので、撮影した写真の中から写りの良いものを選別して、時間をかけて送信するようにしたいんですね。宇宙用FPGAは放射線に強いなど特別なものを使いますが、普通のFPGAと比べると2、3桁程度性能が落ちます。そこで、我々が作っている量子化技術が役に立つのです。


― ほかにはどのような用途があるのでしょうか?

兼村:

 自動車の情報処理は、車の中で完結するものと、車の外にまたいで処理をしたいものがあります。そのときに、全部のデータをクラウドへ送ると通信量が膨大になりますから、必要なものだけエッジで処理して送るケースがあります。あるいはドライブレコーダーで録画して、事故などの時には送信するとか。自動車は宇宙ほど厳しい状況ではありませんが、通信料金や機器の価格などを考えると、我々の技術が良い場面があると考えています。

 また、川崎重工とは、電車のドア挟みの識別の実験を行いました。電車のドアを閉めたとき、ゴムの部分に傘や手などが挟まっていても、「ドアに異物が挟まっている」と検知できないことがあります。それを自動認識したいのですが、全てのドアに高解像度のカメラと高性能GPUを取り付けるのも大変です。そこでFPGAのデバイスを使って、実際に手や傘などが挟まっていればリアルタイムで識別できることを確認しました。


1ビットの量子化技術を広めるために、オープンソース化


― 量子化技術によるコンパクトなAIの難しさはどんなところですか?

兼村:

 コンパクトにするには何かが犠牲になるはずですが、それは精度です。だから精度を要する用途には向いていないのですが、なるべく落ちない工夫もしていきます。あるモデルで、モデルのサイズを99%小さくしても、精度は1%しか低下しませんでした。去年だと数%の低下だったので、研究開発を進めて新しい技術や工夫を入れて精度を上げているところです。

 たくさんのbit数で学習してから後処理で1bitや2bitにしてしまうと、精度が低下してしまうことがわかっています。そこで、最初からこのネットワークでは1bitしか使いませんよと、「quantization aware training(量子化を意識した学習)」をすると精度劣化がある程度避けられるなど、量子化の手法でも変わってきます。


― Blueoilという、エッジデバイス向けの機械学習ソフトウェアを公開されましたね。

兼村:

 1bitや2bitの量子化ネットを試してみたい、という人が気軽に訓練できて、FPGAで動くバイナリも生成できるものです。

 エッジAIの中でも、1bitまで量子化できると言うと、まだ疑いの目で見られてしまうこともあります。8bitくらいまでは良いけど、それ以上落とすと使い物にならないなんてレポートもあります。我々は、そうじゃないですよ、1bitまで落としても使える状況がありますよと言いたくて、多くの方に試してもらいたいんです。


― なるほど。でもオープンソース化すると、自社の強みを独占できなくなるのではありませんか?

兼村:

 社内の技術を全て入れているわけではありません。まだ公開していない新しい技術もありますから、新しい技術はまず商用で提供して、その後徐々にBlueoilに入れていこうと思っています。もうひとつは、オープンソースであってもサポートがビジネスになると考えています。MySQLやLinuxもオープンソースですが、商売になっていますよね。


― ところで、Blueoilというのは不思議な名称ですね?

兼村:

 社内にソローキンというロシアの文学者を好きな人がいて、「青い脂」という小説から取っています。この小説は、トルストイやドストエフスキーといった文学者のクローンを作って作品を執筆させるという話なのですが、なぜかクローン人間は黄色ではなく青色の脂肪が溜まるという設定らしいんです(笑)。

 クローンに文学作品を執筆させる代わりに、ABCIのような大規模コンピューティングで機械学習をさせると、青い脂の代わりに量子化されたモデルが出来上がっていく。そういったアナロジーからの命名です。


常に同じ環境を提供するABCIで、多数の処理を手軽に実行


Photo05_LeapMind


― 開発や実験で、PCとABCIの使い分けはされているのでしょうか?

中曽:

 今は手元のPCはあまり使わず、1ノードや1GPUで終わるような実験でも、最初からABCIを使っています。同じ実験でたくさんのパラメーターを試したいというような場合も、バッチジョブを使えば100個の実験でも同時に終わらせられるので重宝しています。


― その都度データを送信する手間などは問題ありませんか?

中曽:

 どちらかというとモデルそのものを作ることよりも、どうすればより良いモデルができるかという手法を開発することに主眼を置いているので、データセットはあまり頻繁には変えません。そのため必要なデータセットを実験前にあらかじめアップロードしておくという運用でやっています。テラ単位でストレージを利用できるので、現在利用しているデータセットは全てABCI上に載せられています。


― ジョエルさんはABCIをどう感じていらっしゃいますか?

ジョエル:

 良いところは、自前のサーバーを準備するのと違って環境が整えられているので、データを送るだけで利用できることですね。しかも、ノードによって仕様が違ったりせず、常に同じ処理能力が保証されています。新しい学習をするときに、前回とサーバーの仕様が異なるとそれが原因で処理に失敗することもあり得ますが、ABCIでは処理がちゃんと終わるか心配する必要がありません。


― 今後、ABCIや産総研に期待することはありますか?

兼村:

 ABCIは稼働当時(2018年6月)のTOP500で世界5位になりましたが、その後徐々に順位が下がっています。当然、時間がたてば新しい技術を使った速いシステムがでてくるので、これはある意味しかたがない話です。でも、そのランキングのなかでも継続的に設備投資して増強されているシステムもあって、そのような計算機はあまり順位が下がっていません。さらに言うと、TOP500にはGoogleやAmazonの自社向けリソースは含まれていませんが、もしランキングに載せればトップを独占するのは間違いありません。アイデアを検証できる計算リソースが潤沢にあるという点で、こういった巨大IT企業の研究者はすごく有利です。

 我々のようなスタートアップや、国内の大学研究者などが彼らと同じような成果を出していくためには、公的研究機関がABCIのような計算基盤を整備して、安価に提供しているのは非常にありがたいことだと思います。ABCIにも投資を継続して、国内のAI開発を支え続けていただきたいですね。

※記事中の組織名称は2019年11月当時のものとなります


聞き手 大貫 剛(ライター)


LeapMind 株式会社 https://leapmind.io/


  1. field-programmable gate arrayの略称。製造後に開発現場でプログラムの書換えができるデバイスのこと。