Ideinの技術や事業の紹介

Ideinの中村です。弊社は4/7でちょうど設立3年目を迎えたベンチャー企業です。この記事では主に弊社の取り組む課題や事業などについて紹介したいと思います。主にエンジニアや研究者の方々向けに弊社が何をやっているのか知ってもらう事を目的として書いています。

社名・ロゴ

社名のIdeinはイデインと読みます。アイデア(Idea)の語源になったと言われているギリシアの言葉で見る・知るという意味があります。画像認識技術をやっていく気持ちを表しています。ロゴは八咫烏です。

image

課題

IdeinはDeep Neural Network(DNN)による画像認識等の推論技術を、ハードウェア製品に搭載する技術に取り組んでいます。クラウドやサーバーではなく末端のデバイス上でDNNモデルによる推論を実行するニーズが近年高まっています。 最近はEdge ComputingとかOn Device Inference等と呼ばれているようです。

DNNの計算を行う為には出来るだけ高性能なプロセッサを利用したいですが、一方で製品価格や消費電力は抑える必要があります。また、熱・埃・振動・湿気等への耐性、供給安定性などなど様々な事を考慮する必要があるので、どんなハードウェアでも良いという分けにはいきません。現状ではハードウェアもソフトウェアも選択肢が少なくなかなか製品での応用が難しいという状況かと思います。

技術

Ideinはソフトウェアベースの高速化技術によって本課題に取り組んでいます。以下は弊社の技術デモの動画ですが、安価なRaspberry PiシリーズでGoogLeNetという比較的規模の大きいDNNを実行しています。演算は32bit浮動小数点数のままで行っており、量子化等の技術を一切使用することなく(つまり訓練時とモデルの精度を変えることなく)この速度を出す事が出来ています。以下の動画は昨年7月時点のもので、現在はより高速になっています。他にもResNet-50やMobileNetなど主要なCNNを動作させることが出来ます。

https://www.youtube.com/watch?v=R5niixLtf2Q

このデモではRaspberry Piに搭載されているVideoCore IVというGPUを計算資源として使用しています。使うといってもOpenCL等の処理系は存在しなかったので、自前でGPU用のアセンブラを開発するという所から始めています。また、こういったものは単にGPUを使用するだけで速くなるというわけではありません。演算器利用効率を高める為の並列化手法やメモリ最適化などについて研究を行っています。

弊社ではこうした研究に基づいてDNNの実行を高速化するコンパイラの開発を行っています。これは学習済みのDNNモデルを入力として取り、Cのプログラムを生成します。上で述べたように入力のモデルと生成されたコードは数学的に等価ですので精度低下がありません。非常に使い勝手の良いものとなっています。

image

ところで何故Raspberry Piに取り組んでいるかというと、Single Board Computerではシェア No.1の人気のあるデバイスで強いブランドとエコシステムがあるからです。様々なアイデアを試す為に必要なソフトウェアやハードウェアが揃っています。普及しているデバイスに載せて速やかに世界中に展開したいという狙いがあります。

実の所、Raspberry Pi向けの開発を始めた当初の理由はVideoCore IVのTechnical Reference Guideが公開されていたからというものです。通常、こういったGPUの情報は非公開ですので、他社が自前で処理系を開発することなど不可能です。Ideinの創業当初はKinectやLeap Motionのようなセンサー製品を創ろうと思っていたのです。その為にいくつかのCompute Moduleを検討する中でRaspberry PiのGPU仕様が公開されている事、理論性能が意外と高く高効率で使用する事が出来ればDNNを実用的な速度で実行できるという事に気づきました。私自身が大学時代に最適化コンパイラの研究を行っていたのでその経験も生かせると思い開発に着手したのです。

VideoCore IVはいたって普通のGPUですので、他のモバイル向けGPUでも同じことが出来るはずです。Raspberry Pi Zeroデモで使用しているプロセッサは2011年登場の比較的古いものです。DNNを実行するのに十分な性能を持ったプロセッサは世の中の沢山の製品に既に搭載されているという事を知ってもらいたいと思います。幸いにも、Raspberry Piデモを作り上げ会社の実力をアピールできる様になった事で、他デバイスをターゲットとした開発のチャンスも巡って来るようになりました。様々なアプリケーション、ハードウェアでIdeinの技術を利用してもらえるよう、開発を進めていきます。

また、これまでは学習済みモデルと数学的に等価な範囲の最適化を中心に研究開発を行ってきましたが、今後は必要な場合には非等価な変換を許容するような、よりアグレッシブな最適化技術にも取り組んでいきたいと考えています。

事業

ActcastというWebサービスを開発しており今年リリース予定です。このサービスは以下の3つの機能を持ちます。

  1. 人検出、顔検出、姿勢検出等すぐに利用できる学習済みモデルの配信
  2. デバイスで検出したデータ・イベントとWebサービスのAPI連携
  3. デバイスやアプリケーションの管理

Raspberry Piとカメラを購入しこのサービスに登録すれば、簡単にDNNモデルを使ったComputer Visionのプロジェクトを開始する事が出来ます。セキュリティカメラ、工場などでの異常検知・検品・オートメーション、店舗での人流解析など様々なプロジェクトに活用できると思います。

モデルの高速化はコンパイラで自動化出来ているので、Ideinで用意したモデルだけでなく、ユーザーが作成した学習済みモデルも将来的には使用できるようにしたいと考えています。

このサービスでのマネタイズは何らかの課金になると思いますがその詳細は検討中です。ただ、クラウドで行う画像認識サービスに比べると非常に安くなります。計算資源はユーザーが購入したデバイスなので、弊社側の負担はありません。またエッジで計算した結果のみを通信するので通信料も減ります。以下の画像はMobile World Congress 2018という展示会に出展した際のポスターです。

image

それから、先日アイシン精機株式会社と資本・業務提携をし、次世代自動車の開発にも関与する事になりました。

https://prtimes.jp/main/html/rd/p/000000004.000026271.html

推論の高速化技術は次世代自動車の開発においても非常に重要となります。また、様々な画像認識モデルの開発も行っています。他社との協業はこの他にもいくつか行っています。技術ベンチャーとして最先端の研究トピックに関わる事が技術蓄積の為に重要と考えており、Actcastを事業の中心としつつも、自動運転など重要な技術テーマには積極的に関与していく方針です。

最後に

Ideinは共に仕事をして頂けるメンバーを探しています。

数値計算や最適化コンパイラ等の分野に詳しい方々、DNNのモデルアーキテクチャや訓練手法等に詳しい方々是非ご連絡ください。Actcastで配信するモデルや他社との協業において学習済みモデル自体を開発する仕事もあります。あまり大規模ではないですがGPU+Infinibandのクラスタ環境があります。それから弊社はコンパイラの会社と思われている節がありサービス開発での応募が若干少ないです。こちらもご応募ください。 ちなみにサーバーと、デバイス上のクライアントソフトウェアはRustで、UIはElmで開発しています。サービスのインフラ構築に関心のある方も是非ご連絡ください。

現在アルバイトも含めて26名でやっておりますが、事務の方1人を除いて全員がエンジニアかリサーチャーです。人が増えてきましたので、日々の業務を支えて頂くバックオフィスメンバーの募集も開始しました。

皆さまからのご連絡をお待ちしております。