Qwen3.5-9B for onw — Intel NPU だけで動く(テキスト+画像)
日本語 | English
Qwen/Qwen3.5-9B を onw(俺のNPUがこんなに動くわけない)用に変換したモデルです。onw は LLM を Intel NPU だけで動かすエンジンで、このリポジトリにはモデルだけが入っています(エンジンは別にダウンロードします)。
テキストと画像に対応。Hugging Face の重みから onw convert で直接作っています(単独版は ryugyosoft/Qwen3.5-9B-npu)。
私たちの知る限り、Gated DeltaNet 混在のハイブリッドモデルを画像入力まで含めて NPU で動かす公開実装は onw が初めてです(2026 年 9 月、Fable 5.1 調べ。OpenVINO 公式は Qwen3.5 を CPU・GPU のみ対応としています)。
| NPU 3720(Core Ultra 9 285HX) | |
|---|---|
| 入力 | テキスト+画像 |
| 生成速度 | 4.1 tok/s(先読み検証あり) |
| プロンプト処理 | 画像+質問 281 トークン:画像 0.5 秒+処理 8.0 秒 |
| ダウンロード | 5.3 GB |
| 使用メモリ(読み込み後の作業セット) | 約 11 GB |
| 初回起動(NPU 向けコンパイル)/2 回目以降 | 約 13 分/約 20 秒 |
対応 PC:NPU 付きの Intel Core Ultra(シリーズ 1/2:Meteor Lake・Arrow Lake・Lunar Lake、シリーズ 3:Panther Lake)、Windows 11 または Ubuntu 22.04 以降。上の数値はテスト機(NPU 3720)での実測で、NPU やメモリ量によって変わります。
使い方
-
onw(エンジン)を入れます。 まだの場合は、onw の「インストール」 のとおり 1 行貼るだけです。Windows はスタートメニューで「PowerShell」を開き、次の 1 行を貼って Enter(Ubuntu は onw の README の
curl ... | bash)。irm https://huggingface.co/ryugyosoft/onw/resolve/main/install.ps1 | iex -
タスクトレイの onw アイコンから開く onw ウィンドウ の「モデル」タブで Qwen3.5-9B を選び、「ダウンロード」を押します(5.3 GB)。
-
「サーバー」タブでモデルを選んで「ロード」を押します。初回だけ NPU 向けの準備に約 13 分かかります。
-
「チャット」ですぐ試せます。他のアプリからは OpenAI 互換 API として使えます(base URL は
http://localhost:8000/v1)。
from openai import OpenAI
c = OpenAI(base_url="http://localhost:8000/v1", api_key="none")
r = c.chat.completions.create(model="Qwen3.5-9B-onw", messages=[{"role": "user", "content": "こんにちは"}])
print(r.choices[0].message.content)
上級者向け:hf download ryugyosoft/Qwen3.5-9B-onw で取得したフォルダを onw serve フォルダ で起動することもできます。Git LFS なしの git clone では重みが入らないので使わないでください(onw が検出して止めます)。
バージョン
- v2(現在):区間の重みを 1 トークン用と 16 トークン用で共有、埋め込みを INT4 化、画像エンコーダーを INT8 化(9.4 → 5.3 GB、使用メモリ 21.2 → 19.9 GB)。回答は v1 と同じでした。 onw 0.3 以降が必要です。
- v1:
hf download ryugyosoft/Qwen3.5-9B-onw --revision v1 --local-dir ...で取り出せます。
ダウンロード量の削減の大半は同じ重みを 1 つにまとめたことによるもので、実行時は NPU がブロックサイズごとにコンパイル済みの重みを持つため、使用メモリの減り方は小さめです。
仕組み
- 32 層(Gated DeltaNet 24+ゲート付きアテンション 8)を 8 層ずつ 4 区間にし、グループ 128 の INT4。出力層は独立した区間で、ロジットが不要なプロンプト処理では飛ばします。
- DeltaNet は、生成時は 1 トークン用の行列形式、16 トークンのプロンプト処理はブロック倍々の厳密な逆行列によるチャンク並列形式。FP16 で小さくなりすぎる出力は 1024 倍し、直後のゲート付き RMSNorm は溢れないよう前処理しています。
- 画像エンコーダー(27 層の ViT)は 512×512 入力用の 1 枚の静的グラフ。画像トークンの MRoPE の位置はホストで計算します。
- 詳しくは onw の技術解説。
ファイル
| ファイル | 内容 |
|---|---|
seg*_S1.xml, seg*_S16.xml + seg*.bin | 4 区間+出力層(重みは区間ごとに 1 ファイル) |
vision.xml | INT8 の画像エンコーダー(512×512 → 256 トークン) |
shared.bin | INT8 の出力層、INT4 の埋め込み(ホストで参照) |
engine.json、トークナイザー/設定ファイル | onw 用のメタデータ、元のリポジトリの設定 |
品質
エキスパートなどはチャネル単位・グループ単位の INT4(四捨五入量子化)です。確認した範囲では最初のトークンの予測は bf16 と一致し、回答は自然ですが、数トークン先から言い回しが元のモデルと分かれることがあります。
ライセンス
Apache 2.0(元モデルと同じ)。重みは元モデルから再量子化・再構成したものです。