ハードウェアからサーバ・アプリまでワンストップで開発

エッジAI

Orange PiによるAIのエントリを結構書きました。

Orange Pi 5で人工知能の記事まとめ

多くは今のところ実用性に難のあるものですが、Usefull Transformerを試してみた時、大きな可能性を感じました。

Useful Transformersを試してみる

現在この辺はまだ遊戯の域を出てないように感じますが、実は大いに期待をしています。

エッジAIにしたさ

技術的に可能かどうかはとりあえず置いておくとして、この辺に期待する理由を挙げてみます。

  • 得られる情報の量とかレイテンシとか考えると、データの発生している場所に近い方が有利
  • プライバシー等を考えると、クラウド利用は不安
  • 今時のAIは「育てる」感じがあり、それなら「うちの子」の方が嬉しい

というようなことです。

データの発生している場所に近い方が有利というのは、エッジAIを勧める文脈では常にトップに挙がるものです。あまり説明する必要はないと思います。

近頃のクラウド上のAIは非常に優秀になっていて、「絵を見せて直すべきところを聞くとアドバイスをしてくれる」くらいのことが出来るようになりました。もう使わない手はないな思うに十分ですね。

でも前に言っていた「自動運転電動車椅子」みたいな応用を考えると、結構な解像度の動画を見ながら実用的な速度で答えが出ることが求められます。ですから、処理するべき情報は動画ですし、車体の安定性も含めて考えるには、加速度の情報等々をリアルタイムで処理しなければならなくなって、「推論のためのデータ」の発生速度は結構なものになります。これがクラウド利用だと、

  • レスポンスはベストエフォート(遅い時は遅い)
  • データ転送速度は結構要求される
  • オフラインで動けない

というような問題があります。ごく一般論として、エッジで使えるプロセッサとクラウドの持っているプロセッサでは速度がまるで違うわけですが、使い方によってはそれを帳消しにしてしまうくらい「遅い」ことになってしまいます。

また、自動運転の類もそうですが、「AIもの」は机の上で使うシーンに負けないだけ組み込まれた形で使われます。そして、組み込まれたものの多くは一箇所に留まっていてくれません。そうなると、ネット到達性の保証がなくなります。オフラインで動けないとなると、システムそのものが動かせないということになってしまいます。いくらChatGPTを使った運転制御が優秀な結果を出しても、ネット到達性のないところに行けないのでは実用になりません。

とか考えると、何とか騙し騙しであっても、エッジで動いて欲しいなと思うわけです。

プライバシーの問題のほとんどは「気持ちの問題」です。プライバシーの問題の多くは取り越し苦労であり、それが悪用されるというのはそうそうないものです。もちろん「クレジットカードの番号」みたいなものは漏れると嫌ですが、それは「プライバシー」とは関係ありません。そう思うと、実害があるものはあまりないのです。

とは言え、この「気持ちの問題」は無視できるほど小さくはありません。たとえば、「ブラウザの閲覧履歴」とか見られて嬉しいでしょうか? 多分「実害」はほとんどなくても、「恥ずかしい」と思うものはあるのではないでしょうか? そして、現代の技術を使えば、この「恥ずかしい」ものを集約させたり名寄せしたり、さらには精神分析的なことをすることは可能です。あるいは思想調査とかされて... とかも、やろうと思えば出来る程度には技術は存在しています。とか考えると、いくら見えるところに実害がないと言っても、対策はしておきたいですね。「目玉親父」でトイレに行った履歴とか誰かに会った履歴は外部に出て行くこと自体嫌でしょう。風俗店に行きましたとかちょっとね。「目玉親父」はそういったプライバシーに係る部分を解決したいという思いも考えついた理由の一つです。

今のAIは「人工知能」だとか「deep leaning」だとか言いながら、実のところ「学習」はあまり得意ではありません。と言うか、推論については元々学習と比べて軽い処理であるとか、それをさらに軽くするための技術とかあって手が届きやすくなりましたが、学習は結構重い処理な上にそれ程軽くするための努力もされていなくて、なかなかやりにくいわけです。とは言え、近頃はいろいろ軽く学習させるための技術も出て来て、単に中間状態をデータベースに保存する以上の「学習」をさせることが可能になりつつあります。つまり、育てられるようになって行くわけですね。

そうやって「育て」られるようになったなら、「うちの子」として育てたいと思いませんか? もう少しちゃんとした言い方をすれば、パーソナライズされた状態の学習をさせたいと思いませんか? それは、単純に「うちの子」としてかわいがりたいという気持ちでもあれば、プライバシーの問題でもあります。そして「パーソナライズ」というのは、常にプライバシーが関わります。「子供が余分なことをしゃべって」とか、育児ネタとしてはよくある話ですが、AIもそれをやらないとゆー保証はありません。

クラウドAIの良さ

エッジAIがいいなぁと思いながらも、こういったものは適材適所ですから、「ここはクラウドAIの方がいい」と思うものを挙げていきます。

  • 知識量の豊富さ
  • 一般的なレスポンスの良さ
  • だいたい低コスト

知識量の豊富さは言うまでもないですね。GPT-4のパラメータ数がいくらなのか想像もつきませんし、公開もされていません。複数の処理系の合議みたいなことをやっているという話もあります。あまり明確に公開されてないので妄想し放題ですが、ローカルなオンプレで動かせる規模よりもずっと大きいモデルが使えるのは確かです。雑に言えばそれだけ知識量が多いわけです。

このことで一番嬉しいのは、世間一般にそれほど知られていないことまで知っているということじゃないかと思います。結局はコンピュータなので、学んだ以上の「知識」はないわけです。LLMが思った以上に返事をしてくれるということがあってそれは何だという研究もされているわけではありますが、こと「知識」に属するものは学習して得るものであり、それはパラメータの規模に関係するわけです(「思った以上に返事をしてくれる」のは、どうやら「推論」の能力のようです)。

ですから、専門的な問題はクラウド上のAIは圧倒的に強いということになります。もちろん何にでも限界はあるわけですし、知らないことも当然あるわけですが、その限界点は随分高いところにあります。これはなかなかエッジやローカルなAIでは勝負になりません。ですから、そういったことを期待するのであれば、クラウドAI以外の選択肢はありません。

これはちょうどコンサルのような専門家を使うのに似ています。いくら素人が頑張ったところで餅は餅屋。難しいことは専門家にお任せするに限ります。

レスポンスに関しては、モデルの規模のことを抜きにしても、クラウドサービスの方がかなり上ですね。もちろんサーバやデスクトップPCだと「強いグラボ」を入れることで高速化できますが、いろんな人の報告や実験を見ている限りでは、クラウドサービスよりも速いレスポンスを期待するのは難しいです。仮にそれが実現できても、随分と高くつくことになるだけではなくて、「専門知識(=モデル規模)」の制約があったりするので、コスパ的にどうなんだって話になりますね。いくらレスポンスが良くても頭が悪ければ金かける意味ないですから。雑な想像力で言えば、実験や研究という目的以外で、ローカルでAIを動かす意味ってあまりないなぁというのが個人的な結論です。せいぜい画像生成とかまでです。

AI用のハードって高いですね。この辺、考え方や使う頻度によるので一概には言えませんが、一般利用者という立場からするとハードに見合う金を払う意義がなかなか見い出せません。また、実験や研究がしたければ、Google Colabを(課金して)使えば結構なことが出来ます(弊社内で実用で使っているものはこれです)。これで足りないとなれば、いよいよ自前ハードということになりますが、利用率とか考えると頭痛いですね。

とか言うことを考えれば、「消費者」として「AIもの」を使う限りでは、クラウドAIを使うのが一番良いということになりますし、アプリケーション開発者であってもクラウドAIが第一選択であると言えます。モデルの信頼や規模も、クラウドAIの方が良いですからね。

エッジAIの展望

冒頭のところで、「いろいろ試してはみたけど実用性には乏しい」と書きました。少なくとも現状では、「流行り」のAI応用については公開されているものを使う限り、実用には遠いです。

Orange Pi 5で動かす限りでは、Whisper.cppは相当精度を落とさないとリアルタイムより高速には動いてくれません。ELIZA(Llama2)も返事を返して来るまでに随分待つことになります。これらを組み合わせて「話相手になってくれるAI」を作ろうにも、ちょっとテンポ的に無理がありますね。もちろんもっと高速なパソコンを使えばいいんですが、「高々話相手」というレベルで高速で電気を食うパソコンを使うのは、せいぜい実験まででしょう。実用にはなってくれません。デモには使えるでしょうけど。

とは言え、エッジで使われるSoCにもNPUが搭載されていたりして、それがうまくヒットする範囲であれば、実用にならないこともありません。

エッジで使われるSoCの多くはスマホ用であり、スマホで多く使われるAIは主に画像関係の処理です。この辺は環境も比較的整っていて、いろんな出来あいのモデルができるものもあります。YOLOを使った画像識別のようなタスクは、既に十分高速です。

他方、SoCのメーカが想定していない問題となると、NPUの細かいところが非公開になっていることもあって、非常な困難を伴います。また、使えるモデルの規模もメモリを全部使えるというわけでもないので、大きなモデルを動かすにはかなりの苦労を伴います。この点ではUseful Transformerのチームはよく頑張っていると思います。またその成果も公開されているので、他のソフトにも転用できるでしょう。

というように、個々のソフトウェアや要素技術を見ると、「もうちょっと」という感じであることは否めません。

ただ、こういったものの常として、「使い方」が大事ですから、その辺をよく考えてみれば使いどころはたくさんあるとも思います。この辺については、「ご相談下さい」というのが責任ある結論となるところです。

というのが現状理解ですが、エッジAIもクラウドAIもGoogle Colabもいろいろ試してみて、

エッジAIは面白いしやりがいがある

と考えています。PoCや試作、あるいは共同開発的なお話があれば、喜んで相談お受けします。残念ながら、実用品を納期を定めて作るというのは難しいですが。

これがJetsonのような「AI用」として作られたSoCを使ったものはこの限りではありません。Pythonのそれ用のライブラリがそのまま使えますから、ここまで難しいことにはなりません。86用に作られたソフトもかなり動かせます。もちろんハードウェア規模の違いによる違いはありますが、スマホ用SoCのそれほどは違いません。今実用にするのであれば、この辺を使うのが近道でしょう。現実にどうなるかは、評価してみないとわかりませんが、これもまた用途次第ということになると思います。

最近のエントリー

Hieronymusのインボイス番号対応について

会計システム「Hieronymus」の現状

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル