カメラ映像を、「見て、言葉で理解する」AIが現場の当たり前になりつつあります。
製造ラインの外観検査、店舗や施設の状況把握、車載・ロボットの周辺認識。これまで人が目視で判断していたこうした作業を、画像を理解して自然言語で答えるVLM (Vision-Language Model)が肩代わりし始めています。単に「モノを検出する」従来の画像認識と違い、VLMは「何が起きているか」を文章で説明し、質問に答えられる。これがエッジAIの表現力を一段引き上げます。
一方で現場には、映像をクラウドへ送れない事情がつきまといます。通信が不安定な環境、ネットワーク往復の遅延や回線の不安定さに応答を左右されたくない用途、そして映像そのものが機微情報で外部に出せないケース。こうした制約のもとでは、ボード単体で完結するオンデバイス実行が現実解になります。VLMをエッジで動かせて初めて、これらの現場にAIの目を届けることができます。
Qualcomm Dragonwing IQ-9075を用いて、クラウドに頼らずボード単体でオンデバイスで7BクラスのVLM(Vision-Language Model=画像と言語を扱うAI)、Qwen2.5-VL-7Bを動かしてみます。Qualcomm AI Hubでモデルを取得し、GenieX(Qualcommが公開するオンデバイス推論ランタイム)でサーバーを起動するだけで、OpenAI互換APIとしてVLMによる視覚言語理解が動きます。ボード側の実行環境には推論スタックが同梱され、ライブラリの手動セットアップはほぼ不要です。
本記事では、その手順と実測をご説明いたします。
執筆者
岩脇 秀隆
株式会社マクニカ マクニカフィネッセカンパニー
技術統括部技術第5部 第2課
この記事でわかること
・IQ-9075で7B VLMがオンデバイスで動くのか、どれくらいの速度か
・Qualcomm AI Hubからのモデル入手方法
・Qualcomm GenieXでOpenAI互換APIとして推論する手順
・LLM APIとして使う手順
実行環境
IQ-9075のQualcomm Linux環境には、GenAIの推論スタックがボードのOSに最初から同梱されており、モデルさえ用意すればすぐ推論できるよう必要なランタイムが揃っています。同梱されている主なコンポーネントは次のとおりです。
|
同梱コンポーネント |
役割 |
|
QNN SDK 2.47 |
Qualcomm AIランタイム |
|
genie-app / genie-t2t-run |
Genie推論の実行バイナリー |
|
libGenie.so |
Genieランタイム本体 |
|
libgenie-vlm.so |
VLM専用ランタイム |
|
V73向けskel一式 |
Hexagon NPU用ライブラリー |
Dragonwing IQ-9075のスペック
IoT・組込み向けの高性能エッジAI SoCで、本記事のEVKは100 TOPS版 (IQ9075-AA)です。 主要スペックは以下のとおりです。
|
項目 |
内容 |
|
SoC |
Qualcomm QCS9075 |
|
NPU |
Hexagon V73 × 2(デュアルCDSP) |
|
演算性能 |
100 TOPS(IQ9075-AA、NPU2基合計。単一モデル実行は1基を使用) |
|
動作温度 |
-40〜+115℃ |
|
評価機メモリー |
36GB |
テスト環境
|
要素 |
本記事での構成 |
|
ボード |
Dragonwing IQ-9075 EVK (IQ9075-AA) |
|
OS |
Qualcomm Linux 2.0 (kernel 6.18.30) |
|
モデル |
Qwen2.5-VL-7B-Instruct (W4A16 Genie, Qualcomm AI Hub) |
|
ランタイム |
GenieX v0.3.13 |
Qwen2.5-VL-7B-Instructが要求するQAIRTバージョンは、本記事の検証時点で2.45です。OS同梱の2.47はこれを上回るため要件を満たします。
要件はモデル側の更新で変わりうるため、実際に取得したバンドルの metadata.json で確認します。
モデルの入手 (Qualcomm AI Hub)
モデルの取得はGenieX CLI経由でおこないます。AI Hubのモデルページの「Quick Start (Linux)」にGenieXのインストールコマンドと geniex infer ai-hub-models/Qwen2.5-VL-7B-Instruct が掲載されており、モデルは後述の geniex pull で自動取得されます(本記事もこの経路を使います)。
zipファイルを直接ダウンロードしたい場合は、同ページの「download the model」リンクから入手できます。
・モデルページ: Qualcomm AI Hub:Qwen2.5-VL-7B-Instruct
・サインイン不要
・デバイスはQCS9075 (IQ-9075)、runtime/precisionはGenie / W4A16
GenieXでの実行手順
GenieXは、Qualcommが公開するオンデバイス推論ランタイムです。Hugging FaceのGGUFモデルやQualcomm AI Hubのプリコンパイル済みバンドルをNPU/GPU/CPU上で実行でき、CLI・Python・OpenAI互換サーバといった複数のインターフェースを備えます。
AI HubのモデルページのQuick Startでは、単発で試すための geniex infer <model> が案内されています。本記事では、アプリやエージェントから継続的に叩けるよう、モデル取得 (geniex pull)とOpenAI互換サーバー (geniex serve) に分けて使います。
1. インストール
```
curl -fsSL https://qaihub-public-assets.s3.us-west-2.amazonaws.com/qai-hub-geniex/install.sh | sh
```
----------------------------------------------------------
2. チップセット設定 → モデル取得
```
geniex config set chipset qcs9075
geniex pull ai-hub-models/Qwen2.5-VL-7B-Instruct:w4a16
```
----------------------------------------------------------
3. OpenAI互換サーバの起動
```
geniex serve --host 0.0.0.0:18181
```
これで http://<board-ip>:18181/v1 にOpenAI互換エンドポイントが立ちます。
----------------------------------------------------------
4. 画像を投げてみる(VLM)
OpenAIのマルチモーダル形式そのままで、画像はimage_urlにbase64データURIで渡します。
```
{"model":"qualcomm/Qwen2.5-VL-7B-Instruct",
"messages":[{"role":"user","content":[
{"type":"text","text":"Describe this image in detail."},
{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,..."}}]}]}
```
OpenAI互換なので、任意のOpenAI互換クライアントをこのエンドポイントに向けるだけで使えます。
ブラウザのOpenAI互換クライアントから画像を送り、説明が返る様子を以下の動画で示します。
実測パフォーマンス
7BのVLMが、画像1枚に対してデコード約7.6 tok/s、初トークンまで (TTFT) 約1.1秒で応答します。
計測はブラウザのOpenAI互換クライアントからストリーミングで受信したトークンを対象にしています。tok/sは初トークン以降の純デコード速度(生成本体)で、画像アップロードやネットワーク往復の時間は含めません。TTFT (Time To First Token) は画像エンコードとprefillにかかる一度きりの待ち時間です。この2つを分けて見ると、体感の内訳がそのまま読み取れます。
上のデモ動画に映る3プロンプト(同一ボード・同一設定・画面表示値そのまま)の実測は次のとおりです。
|
プロンプト(画像) |
生成トークン |
デコード |
TTFT |
|
立食パーティー |
56 |
7.6 tok/s |
1.2s |
|
講義風景 |
75 |
7.6 tok/s |
1.0s |
|
セルフ注文キオスク操作 |
36 |
7.7 tok/s |
1.1s |
いずれもオンデバイスNPUでの実行です。3プロンプトは代表例であり、厳密なベンチマークではありません。デコード速度は7.6〜7.7 tok/sで安定し、TTFTは約1秒です。ユーザーの体感待ち時間は「TTFT + 生成トークン数 × 1トークンあたりのデコード時間」で決まり、prefillは一度きりのため、長い応答ほど実効スループットはデコードレートに近づきます。
なお、IQ-9075はHexagon V73を2基備えますが、単一モデルの推論は2基のうち1基で動きます。したがって上の数値は1基相当であり、もう1基は別モデルや別ストリームの同時実行に充てられる余力として残ります。
簡便さと速度のトレードオフ:GenieXはOpenAI互換APIとしての手軽さを優先した実行パスです。速度を最優先する場合は、OS同梱のgenie-appを直接使うネイティブ経路のほうが速く、本記事の検証環境では同じデコードレートの比較で、GenieXの約7.6 tok/sに対しgenie-app直叩きでは約10 tok/sが得られました(Qualcomm AI Hubがモデルページで公開するResponse Rateとも整合)。用途に応じて、手軽さのGenieXと速度のgenie-app直叩きを使い分けられます。
バージョンの整合について
本記事の執筆にあたっては、モデルバンドルはQAIRT 2.45でコンパイルされているものを使用しました。
GenieXは自前でQAIRT 2.45ランタイムを同梱するため、モデルとランタイムのバージョンが自動的に一致します。なお、2.45でコンパイルしたモデルは、OS標準の新しいQNN 2.47(genie-app直叩き)でも後方互換で正しく動作することを確認済みです。
クラウドLLM APIの代替として実装
GenieXが立てるのはOpenAI互換APIなので、接続先URLを差し替えるだけでクラウドをエッジに置き換えられます。いまのLLM/VLMアプリやエージェントは「OpenAI互換API」を共通語にしています。OpenRouterのようなサービスは、その共通語で多数のクラウドモデルを束ねる中継です。GenieXがやっているのは、同じ共通語をエッジのSoC単体で喋らせることです。
エッジに置き換えることで得られる利点は次のとおりです。
・閉域ネットワークでも動く/ネット遮断でも止まらない
・画像もテキストもデータが外に一切出ない
・トークン課金がゼロ
つまり「クラウドの代替として、閉域で建てられるOpenAI互換エンドポイント」が、この1台で実現します。
まとめ
本記事では、Qualcomm Dragonwing IQ-9075上で、Qualcomm AI HubとGenieXを使い、7B VLM (Qwen2.5-VL)の視覚言語理解をオンデバイスで動かしました。モデル取得からOpenAI互換サーバーの起動まで、数コマンドでクラウドに頼らずボード単体で画像を説明・質問応答できます。
・ボードのOSにGenAI推論スタックが同梱され、7B VLMが「モデル取得→サーバー起動」だけで動く
・推論がOpenAI互換APIとして出るので、クラウド前提のアプリ・エージェントの接続先をそのまま手元のエッジに向けられる。VLMだけでなくテキストLLMのクラウド代替にもなる
オンデバイスの生成AIがOS標準で回る時代が、IoT・組込み向けSoCで現実的になってきています。
Qualcomm SoC、GenieXやAI Hubにご興味をお持ちでしたら、お気軽にお問い合わせください。
参考リンク
・Qualcomm AI Hub : https://aihub.qualcomm.com/
・Qwen2.5-VL-7B-Instruct (AI Hub) : https://aihub.qualcomm.com/models/qwen2_5_vl_7b_instruct
・GenieX : https://aihub.qualcomm.com/geniex
お問い合わせ
本ページの内容に関するご質問や製品詳細情報をご希望の方はこちらからお問い合わせください。
