sharp_engineer sharp_engineer
見出し画像

AI高位合成ツール「AIRTIPS」で、エッジAIの未来を拓く~AIRTIPS導入編~

研究開発本部 中村 龍昇(なかむら たつのり)

今回は、シャープの研究開発本部が開発したAI高位合成ツール「AIRTIPS(AI Real Time Image Processor Synthesiser)」をご紹介します。これは、スマホや監視カメラのような小さなデバイス(エッジデバイスと言います)で、AI映像処理を賢く、速く、軽快に動かすためのツールです。しかも、オープンソースとして公開しているので、誰でも気軽に触って、AIハードウェア開発に挑戦できるようになっています。
次回のnote記事では、AIRTIPSで生成した独自AIアクセラレータを、AMD社製FPGA評価基板「KV260」に実装し、実際に手書きの文字の画像を判別させる様子をお見せしますので、ぜひあわせてチェックしてみてください。

次回のnote記事タイトル:AI高位合成ツール「AIRTIPS」で生成した独自AIアクセラレータ(4DTC)をKV260で動かす方法~AIRTIPS実践編~

なぜ「AIRTIPS」を作ったの?(モチベーション)

最近、カメラの映像を「今すぐ!」AIで処理したいという要望が、すごく増えています。でも、これまでの方法だと、大きなデバイスが必要だったり、電気をたくさん使ったり、処理に時間がかかったりして、スマホや小さなカメラみたいな「エッジデバイス」でAIを動かすのは本当に大変でした。

さらに、AIの技術は日々進化してるので、新しいAIがどんどん出てきます。そのたびにハードウェアをイチから設計し直すと、時間も労力もハンパない感じです。そこで私たちは、このモヤモヤを解決すべく、「リアルタイムでサクサク動いて」「小さいデバイスに組み込めて消費電力も少ない」、そして「新しいAIにも対応できる」そんな魅力的で夢のようなツールを作ろうと決意しました。

ここが「すごい!」私たちなりの工夫(こだわりポイント)

AIRTIPSの一番のキモは、AIを作るときによく使うPythonのコード(PyTorch)やONNXファイルから、AIを動かすための専用の「頭脳(回路)」を自動でパパッと作ってくれるところです。つまり、難しいハードウェアの知識がなくても、誰でもいろんなデバイスに載せられるAI回路を作ることができます。

画像
AIRTIPS(AIデバイス向け高位合成ツール)の利用イメージ図

作られる回路には、電力をグッと減らして、処理を高速にするための特別な機能がいっぱい詰まっています。例えば、普通はたくさん必要なメモリアクセスを減らすために、映像を「ラインごと」に効率よく処理する「フレームメモリレス構造」を考えました。これで、データの出し入れがスムーズになり、電気代も浮くし、動きもすごく速くなるんです。

AIの計算で特に大事な「畳み込み演算」という処理には、「4次元Tensor演算器(4DTC)」という専用の回路を開発しました。これで、複雑な計算をサクサクこなしてくれます。

AIRTIPSは、使い方にあわせて2つのタイプの「頭脳(回路)」を選べるようになっています。

  • フルロジック方式

    • AIの処理内容に合わせて、すべて専用の回路にする方法です。単独で動くから、超高速、超低遅延、そして電気もとってもエコ! AI超解像の評価では、既存技術と比べても電力効率が良いことを確認しています。

  • AIアクセラレータ(4DTC)方式

    • これは、小さなマイコンと組み合わせて使う方法です。回路自体は小さくても、もっと大きなAIモデルも動かせる柔軟性が魅力です。メモリへのアクセスを減らすことで、速くて低消費電力な動きを実現しました。

また、最近話題の「Vision Transformer(ViT)」みたいな、複雑なAIモデルにも対応できるように、回路設計には色々な工夫を凝らしました。

どんなことに使えるの?(活用シーン)

このAIRTIPSは、映像をリアルタイムでAIに処理させたい!と思っている、さまざまなエッジデバイスで活躍してくれます。例えば、こんなことに使えますよ。

  • AI超解像:ぼやけた画像をAIでくっきり鮮明に!

  • 画像認識:手書きの文字を判別したり、たくさんの種類の中からモノを見分けたり!

  • 物体検出:映像の中に「何がどこにあるか」をAIが見つけてくれます!

監視カメラやロボット、はたまたスマート家電まで、いろんなエッジデバイスにAIの賢い頭脳を載せて、リアルタイムでサクサク処理できるようになります。

もっと良くしたい!未来への挑戦(これからの展望)

今、AIRTIPSは一部のAIモデルで既存技術の10倍以上の電力効率を確認できています。でも、これで終わりじゃありません!

実は、AIの計算精度については、量子化による誤差が課題なんです。元々、浮動小数点という細かい計算をしていたのを、回路で動かすために整数に変換する時に、どうしても丸め誤差が出てきます。これを改善するために、AIモデルの調整方法を見直したり、計算の途中で誤差が出にくいように「アキュムレータ」という機能を4DTCに追加したりすることを考えています。

また、4DTCの処理をもっと速くするために、「レイヤ統合」みたいな最適化機能をさらにパワーアップさせていく予定です。現状では一部手動での最適化が必要ですが、将来的にはツールが全部自動でできるようにしたいです。

また、ViTは最小構成での実装であり、精度評価は行えていませんが、将来的には「Vision-Language Model(VLM)」のようなAIモデルにも適用できるようにしていきたいです。

私たちは、この技術をみんなに広く使ってもらって、エッジAI開発をもっともっと加速させ、エッジAIの素敵な未来が拓けるように貢献したいと考えています。

興味を持ったアナタ、ぜひご一緒に

AIRTIPSは、シャープがNEDO(国立研究開発法人新エネルギー・産業技術総合開発機構)のプロジェクトで生まれた成果で、オープンソースとして公開しています。エッジAI開発に興味がある企業さん、大学や研究機関、そして個人的にAI開発をやってみたい!という方も、ぜひぜひ触ってみてください。

AIRTIPSのダウンロードはこちらからできます。実際に、ツールを触って、処理の時間を体感してみてください。
https://corporate.jp.sharp/8k5g/8klab/ai-edge_report_202505.html

AIRTIPSのより詳しい内容はニュースリリースを見てください。

ちなみに、AIRTIPSとKV260を用い、こんなものも作れます。

市販のWebカメラを接続し、そのWebカメラからセンシングしている入力情報から何が映っているかを、LLMを介して回答させるという「画像分析システム」になります。こういったものが作れるようになりますよ。

次回のnote記事では、AIRTIPSで作った4DTCを、AMD社製FPGA評価基板「KV260」で動かす方法について、実例(文字認識システム)を用いて説明したいと思います。

※この文章は、作成・推敲に生成AIを利用しています。

最後まで読んでいただき、ありがとうございました。


いいなと思ったら応援しよう!

コメント

ログイン または 会員登録 するとコメントできます。
AI高位合成ツール「AIRTIPS」で、エッジAIの未来を拓く~AIRTIPS導入編~|sharp_engineer
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1