ハイプサイクルに登場する技術②ー エッジAIや組み込みAI、AIチップ

はじめに 前回 は、AI PaaSの代表としてGoogle Cloud Platform(GCP)を取り上げ、AIモデルの学習環境と学習済モデルをクラウドサービスとして提供する仕組みを共有しました。データの準備からAIモデルの学習(トレーニング)、モデルの評価といったAIモデル作成を支援する機能だけでなく、学習済モデルをEdge(エッジ)コンピュータにデプロイしたり、監視・モニタリングするなどの管理機能まで充実しているクラウドサービスの状況が理解できたと思います。

https://thinkit.co.jp/article/18613

今回は、クラウド側ではなく、身近な機器側でAIを利用する形態として「エッジAI」「組み込みAI」「AIチップ」について学びましょう。

エッジコンピューティング/エッジAI

ハイプ・サイクルでは、2017年にエッジコンピューティングが黎明期に登場しています。そして2018年にエッジAIが黎明期に入り、2019年に「過度な期待のピーク期」に移行しています。ここで使われるエッジ(Edge)とは端(はし)や縁(ふち)の意味です。これは、クラウドを中心に発達してきたAIを、クラウドから見て末端にあるIoT機器やスマートデバイス内に置いて利用することからのネーミングです。人間から見ると一番近い側なのでちょっと違和感もありますが、まあ、日本もアメリカから見ればFar East(極東)なので、何事も起点によるということですね。

AI PaaSによるクラウドコンピューティングが発展する一方で、なぜ、エッジコンピュータが脚光を浴びつつ広まったのでしょうか。その原因の1つはIoTの普及です。人間が日本語の文章を送って、クラウドで英語に翻訳して返すというような使い方であれば、AI PaaSでも問題なく処理できます。ところがIoT端末のように時々刻々とデータを送信し続けるような場合、同じようにクラウドで処理して結果を返す方法だといろいろと支障が出てきます。

工場で流れてくる製品の外観検査(異常検知)を例に説明しましょう(図1)。上部のクラウドサービスは、前回取り上げたGCPのようなAI PaaSを想定してもらえば良いでしょう。左の図はAIモデルの機械学習を行うだけでなく判定処理(推論)までクラウドで行うモデルです。マシンビジョンカメラで連続撮影されている製品の外観画像が時々刻々クラウドに送られて異常の有無を判定し、異常と判定した場合に現場にアラームを出すようなイメージです。

図1:クラウドコンピューティングとエッジコンピューティング (画像出典 エッジコンピュータ:OKI IoT端末:Vision Systems Design)

この方法はインターネットを経由してクラウド上で判定処理するため、結果のフィードバックが遅延して異常製品の除去が間に合わない恐れが出てきます。また、インターネットを流れるトラフィック(通信量)やクラウドの処理量が膨大になりコストもかさみます。さらにインターネットは不安定なため、万一ネットが止まったら製造に支障をきたしてしまいます。製品の異常箇所や状態は極秘情報なのでクラウドにあげたくないという企業もあるでしょう。

整理すると、次のような不都合があるわけです。

  • インターネット経由で処理されるため、リアルタイム性が劣る
  • 通信量や処理量が膨大になり、通信量やクラウド利用料が大幅に増える
  • インターネットの接続が不安定になると処理がストップする
  • セキュリティの理由で、インターネット上に異常画像を送りたくない

これらの問題を解決するのが図1右のエッジコンピューティングです。こちらのモデルでは、クラウドで学習したAIモデルを現場側のエッジコンピュータに格納(デプロイ)し、ここで送られてくる画像を判定処理(推論)します。このモデルであれば、インターネット上に大量データを流す必要がなく、現場で判定処理するためリアルタイム性も確保できます。

エッジコンピューティングの場合でも、クラウドにはクラウドの利点もあるため、通常はクラウドとエッジとで役割を分担したシステム構成とします。例えば、私の会社ではディープラーニングを使った異常検知システム「AISIA-AD」という製品を出していますが、AIモデルの学習と分析、監視・管理はクラウド(Microsoft Azure Cloud)で行い、学習されたモデルはAzure IoT Edgeでエッジコンピュータにデプロイしています。

Embedded AI(組込みAI)

異常検知などで使うエッジ端末は、CPUやGPUを搭載したコンピュータに学習済AIをデプロイしたものです。ここからさらに一歩進んで、デバイスレベルにAIを搭載したものが組込みAIで、2020年のハイプ・サイクルで「過度な期待のピーク期」に登場しています。組込みAIを使うとAIの分析や処理はデバイスレベルで実行され、実行結果をもとに直接デバイス付近でアクションできます。

ここ数年、AIとIoTが発展・普及する中で、AIの処理はクラウドから現場(エッジ)やデバイスに領域を拡大しています。AIとIoTを組み合わせたThe Artificial Intelligence of Things(AIoT)という言葉も生まれており、デバイスにAIが入るのが当たり前になりつつあります。例えば、自動運転車はAIでリアルタイムに画像処理をして運転していますし、ロボットもAIでリアルタイムに判断して動作します。もっと身近なところではスマホの顔認証やスマートスピーカー、ドローン、セキュリティカメラなど、さまざまなモノに組込まれたAIが脚光を浴びているのです。

組込みAIが「過度な期待のピーク期」に登場したのは、Edge AIと同じく次のようなメリットがあるからです。

  • インターネットや中央コンピュータを介さずローカルで処理するため、自動運転車や安全システムのような応答性の必要な処理に利用できる
  • センサーやデバイスで収集したデータをインターネットや中央コンピュータに送信しないため、ネットワークトラフィックを削減できる
  • インターネットやネットワークが不安定になっても動作を継続でき、ネットが再接続された際に必要なデータを送信できる
  • 顔認証などの個人データや重要なデータをクラウドや中央コンピュータに送信する必要がないため、セキュリティが強化され、安全性が高まる
  • デバイス自身の障害を自己診断したり、消費電力を抑制するなど制御を改善したりできる。また、音声認識や自然言語処理、顔認証、モーション(ジェスチャー)認識を組み込んだりして、新しい機能を実現して価値を高められる

いつの間にか身の回りのいろいろなデバイスにAIが入っている、私たちはそんな時代に直面しています。そして、この組み込みAIのコアとなる部分がAIチップ化されているのです。

AIチップ

AIチップとは、AIに特化した半導体チップのことで、一般にAIアクセラレータ(Accelerator)とも呼ばれています。

GPU

AIで使われる半導体チップと言って、まず思い浮かぶのがGPU(Graphics Process Unit)ですね。NVIDIA(エヌビディア)社は、以前からグラフィックボードなどで使われていたGPUをディープラーニングの画像処理に応用することに成功し、一気に世界的なAIチップメーカーとして名を馳せています。

AIの画像処理は、処理内容は単純なものの処理量が膨大という特徴があります。これを汎用的な処理ができるCPUで行うこともできますが、シンプルな処理を大量に行えるGPUを使った方が効率良く実行できるため一気に利用が広まりました(表1)。

表1:CPUとGPU

CPUGPU
主な用途中央演算処理装置画像や動画処理、3D、CAD、AI
処理内容汎用な処理向き(if ~else~が得意)シンプルな処理向き(for~loopが得意)
並列処理1個当たり数コア1個当たり数十~数千コア
利用形態単独で利用できるCPUと一緒に利用

FPGA

AIチップはGPUだけではありません。エッジコンピュータやロボット、自動運転車などに組み込んで処理(推論)できるAIチップには、GPU以外にFPGAとASICやSoCなどがあります。

FPGA(Field-Programmable Gate Array)は、“現場でプログラミングできるゲートアレイ”という名称の通り、目的に合わせてIC(集積回路)の内部ロジックを作りこめるカスタムICです。ディープラーニングのフレームワークは進化を続けているため、FPGAのような再構成可能なデバイスを推論に用いることで柔軟に対応できるメリットがあります。

ASIC

一方、ASIC(Application Specific Integrated Circuit)は、“特定用途向け集積回路”という名称の通り、特定用途向けに製造されたカスタムチップです。FPGAは汎用品なため1種類でいろいろな用途に使えますが、ASICは1つの用途専用に作られたオーダーメイド品です。専用チップのため何倍もの効率性が得られ、消費電力も小さいため、GoogleやFacebook、Amazonなどさまざまな企業が独自モデルの設計が確定したときにASICを大量生産しています(表2)。

表2:FPGAとASIC

FPGAASIC
ロジックの書き換えロジックの再プログラム可能ロジックの再設定不可
コストASICより高い大量生産により低コスト
ロジックの開発コスト汎用品なので初期コスト低い設計やテストなどの負荷高い
リスク再プログラミング可能なので仕様変更や設計ミスに強い仕様変更や設計ミスが発覚すると作り直しとなる
消費電力GPUより低いFPGAより低くできる
生産ロット小ロット大量ロット

Googleが囲碁AIのAlphaGoやストリートビューなどに利用したTPU(Tensor Procesing Unit)というチップは、TensorFlowライブラリ用に特別に設計されたASICです。2016年に発表されて以来、2017年、2018年、2021年に改良版が出されており、2018にはエッジでの推論に向けて小型化、省電力化したEdge TPUも出されています。

機械学習の2つのプロセス

AIチップは機械学習の2つのプロセスで利用されています。1つが学習プロセスで、AIモデルが十分な能力を発揮できるまでトレーニングします。もう1つが推論プロセスで、合格レベルに達した学習済モデルを現場に用いて目的の用途に利用します。

図1右の異常検知のケースで説明しましょう。まずクラウドで大量の画像を用いて機械学習(トレーニング)を行います。そして目標とする精度以上に見分けられるようになったら、その学習済モデルをエッジコンピュータにデプロイして、製造ラインを流れてくる製品の正常/異常を推論するわけです。

ところで、この2つのプロセスのうち、学習プロセスと推論プロセスのどちらが負荷が高いでしょうか。答えは学習プロセスです。何千、何万ものデータを使って繰返しトレーニングする学習プロセスに対して、学習済プロセスが推論する負荷ははるかに軽い処理です。英語の勉強に置き換えてみてください。英語の学習に費やす膨大な時間と比べて、英語ができるようになった人が英文を読み解く方がずっと簡単だと思い当たるでしょう。

AIチップの2つのプロセス

AIチップには学習用と推論用の2種類あります。クラウドやデータセンターで学習に使われるAIチップは主に高性能なGPUが使われており、NVIDIAが強い領域です。一方、推論に使われるAIチップ(推論チップ)は、学習で使われるチップと違って小型軽量化、省電力化、低コスト化が可能で、GPU、FPGA、ASIC、SoCなどいろいろなAIチップが主導権を争っています。

スマホやカメラなど端末デバイスに組み込まれる推論チップはSmall Edgeとも呼ばれ、サイズや消費電力を小さくすることが目的です。アップルが2017年に発表したiPhoneXで顔認証が採用されましたが、ここでもパッと認証するために自社開発したAIチップを導入しています。また、スマホのカメラが画像を良い感じに処理する用途にもAIチップが使われています。

一方、自動運転車やロボットなどに組込まれるチップは、リアルタイム性やコンプライアンス(命令に応じる)などを目的に利用されています。NVIDIAやMobileeye(モービルアイ)、AImotive(AIモーティブ)など、さまざまな企業が自動運転車用AIチップを開発していますが、テスラのように自動車メーカーが独自でAIチップを開発しているケースもあります。

SoC

スマホに搭載されているのは、スマホ用SoC(System on Chip)です。GPUやFPGA、ASICがアクセラレータとしてCPUと一緒に使われるのに対し、SoCは必要な要素がすべて単体で組み込まれているチップでCPUやGPU、メモリなどもワンチップに含まれています。

例えば、NVIDIAは2015年に自動運転車のためのGPUアーキテクチャを使ったNVIDIA DRIVE PXというAIチップを発表していましたが、今ではSoCとしてNVIDIA DRIVE AGX Orinというチップを提供しています。テスラが独自開発したFSDチップもSoCで、CPUやGPU、AIアクセラレータなどを1チップに集積しています。

AIチップの利用イメージ

AIチップの利用イメージをエッジコンピューティングによる異常検知をモデルに考えてみましょう。

最も汎用的ななのはCPUベースのエッジコンピュータで、クラウドで学習した学習済みモデルを搭載して正常/異常を推論します。CPUだけでなくGPUという高速処理できるアクセラレータを搭載すると、さらに高パフォーマンスで推論できます。

GPUの代わりにFPGAを搭載すれば、推論モデルの変化に現場で対応できます。PGAは画像処理用のGPUと違ってAI専用に作られているため、省電力で効率的に推論処理が行えます。そして、AIモデルが確立したならば、それを専用チップのASICとして生産することで、さらに省電力で効率化を実現できます。

ただし、ASICの設計・開発は大変なので、検査対象製品が変わる度にチップを作るのは手間がかかります。これを補うために、例えばGyrfalcon Technology(ジルファコン テクノロジー)社のようなAIチップ開発ツールを提供する会社も出てきています(ソフトウェアの世界のSDKのようなものですね)。

おわりに

社会のいたるところにAIが浸透している未来を思い浮かべてみてください。その光景のいたるところでAIチップが使われていることになります。この膨大な市場のため、世界中のビッグカンパニー、スタートアップ、ユーザー企業がAIチップの分野に参入して最先端技術を競い合っているのです。

日本でも大手やベンチャーなど、さまざまな企業がAIチップに参入しています。また、経済産業省も「AIチップ・次世代コンピューティングの技術開発事業」を打ち出し、NEDO(新エネルギー産業技術総合開発機構)が「Original Post>