ryugyosoft's picture
Card: supported PCs incl. Panther Lake
8b09f53 verified
|
Raw History Blame Contribute Delete
6.99 kB
---
license: apache-2.0
base_model: Qwen/Qwen3.6-35B-A3B
pipeline_tag: image-text-to-text
library_name: openvino
tags:
- openvino
- npu
- intel
- intel-npu
- qwen3.6
- moe
- reap
- expert-pruning
- gated-deltanet
- onw
language:
- ja
- en
---
# Qwen3.6-REAP-18B-A3B for onw — Intel NPU だけで動く(テキスト+画像)
**日本語** | [English](README_en.md)
**[onw](https://huggingface.co/ryugyosoft/onw)**(俺のNPUがこんなに動くわけない)用に変換したモデルです。onw は LLM を Intel NPU だけで動かすエンジンで、このリポジトリにはモデルだけが入っています(エンジンは別にダウンロードします)。
[Qwen/Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) の **エキスパートを半分に刈り込んだ** 版(各層 256 → 128 個、REAP 方式)。総パラメータ約 18B、1 トークンあたり約 3B が動きます。テキストと画像に対応。刈り込みなしの版は [ryugyosoft/Qwen3.6-35B-A3B-onw](https://huggingface.co/ryugyosoft/Qwen3.6-35B-A3B-onw)。
**私たちの知る限り、MoE と Gated DeltaNet を組み合わせたモデルを画像入力まで含めて NPU だけで動かす公開実装は onw が初めてです**(2026 年 9 月、Fable 5.1 調べ)。16 GB の PC 向けに刈り込んだのがこの版です。
| NPU 3720(Core Ultra 9 285HX) | |
|---|---|
| 入力 | テキスト+画像 |
| 生成速度 | **6.8 tok/s** |
| プロンプト処理 | 画像+質問 281 トークン:画像 0.5 秒+処理 15 秒 |
| ダウンロード | **9.6 GB** |
| 使用メモリ(読み込み後の作業セット) | 約 12 GB |
| 初回起動(NPU 向けコンパイル)/2 回目以降 | 約 7 分/約 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 やメモリ量によって変わります。
## 使い方
1. **onw(エンジン)を入れます。** まだの場合は、[onw の「インストール」](https://huggingface.co/ryugyosoft/onw) のとおり 1 行貼るだけです。Windows はスタートメニューで「PowerShell」を開き、次の 1 行を貼って Enter(Ubuntu は onw の README の `curl ... | bash`)。
```powershell
irm https://huggingface.co/ryugyosoft/onw/resolve/main/install.ps1 | iex
```
2. タスクトレイの onw アイコンから開く **onw ウィンドウ** の「モデル」タブで **Qwen3.6-REAP-18B-A3B** を選び、「ダウンロード」を押します(9.6 GB)。
3. 「サーバー」タブでモデルを選んで「ロード」を押します。初回だけ NPU 向けの準備に約 7 分かかります。
4. 「チャット」ですぐ試せます。他のアプリからは **OpenAI 互換 API** として使えます(base URL は `http://localhost:8000/v1`)。
<img src="https://huggingface.co/ryugyosoft/onw/resolve/main/images/onw-models.png" width="640" alt="onw ウィンドウの「モデル」タブ">
<img src="https://huggingface.co/ryugyosoft/onw/resolve/main/images/onw-server.png" width="49%" alt="「サーバー」タブ"> <img src="https://huggingface.co/ryugyosoft/onw/resolve/main/images/onw-settings.png" width="49%" alt="「設定」タブ">
```python
from openai import OpenAI
c = OpenAI(base_url="http://localhost:8000/v1", api_key="none")
r = c.chat.completions.create(model="Qwen3.6-REAP-18B-A3B-onw", messages=[{"role": "user", "content": "こんにちは"}])
print(r.choices[0].message.content)
```
上級者向け:`hf download ryugyosoft/Qwen3.6-REAP-18B-A3B-onw` で取得したフォルダを `onw serve フォルダ` で起動することもできます。Git LFS なしの `git clone` では重みが入らないので使わないでください(onw が検出して止めます)。
## 刈り込み(REAP)
| | この版(50% 刈り込み) | 刈り込みなし |
|---|---|---|
| ダウンロード | **9.6 GB** | 17 GB |
| 使用メモリ(onw 0.7) | **約 12 GB** | 約 20 GB |
| パープレキシティ(チャットデータ、bf16 基準) | 14.30(+8.9%) | 13.13 |
| 各層のエキスパート | 128 個(8 個+共有) | 256 個(8 個+共有) |
REAP(Router-weighted Expert Activation Pruning)で、各エキスパートの寄与度を「そのエキスパートに振り分けられたトークンでの、ゲートの重み×出力の大きさの平均」として、日本語・英語・コードのチャット形式データ 16,000 トークン(databricks-dolly-15k-ja、databricks-dolly-15k、CodeAlpaca-20k)で測りました。各層で寄与度の低い 128 個をルーターの行ごと取り除き、残りに softmax が配分し直されます。再学習はしていません。同じ組み合わせの評価データでのパープレキシティは 13.13 → 13.31(75% 残し)→ 14.30(50% 残し)。
調整に使っていない分野や言語では、落ち方が大きい場合があります。約 12 GB(onw 0.7)なので 16 GB の PC でも収まる見込みです(16 GB 機での実測はまだ)。再現は `python -m onw.prune calibrate` / `eval` と `onw convert --prune saliency.json --keep 0.5` で行えます。
## 仕組み
- 刈り込み版でも構造は刈り込みなし版と同じです(41 区間+出力層、選ばれたエキスパートをホストが結び付ける方式)。
- エキスパートが 128 個になったため、16 トークンのプロンプト処理では全エキスパートを最初に結び付けたままにできます。
- 詳しくは [onw の技術解説](https://huggingface.co/ryugyosoft/onw/blob/main/TECHNICAL.md)。
## ファイル
| ファイル | 内容 |
|---|---|
| `seg*_S1.xml`, `seg*_S16.xml` + `seg*.bin` | 41 区間+出力層(重みは区間ごとに 1 ファイル) |
| `experts.bin` (+ `.json`) | 40 層 × 128 エキスパート、チャネル単位 INT4 |
| `vision.xml` | INT8 の画像エンコーダー(512×512 → 256 トークン) |
| `shared.bin` | INT8 の出力層、INT4 の埋め込み |
| `engine.json`、トークナイザー/設定ファイル | onw 用のメタデータ、元のリポジトリの設定 |
## 品質
エキスパートなどはチャネル単位・グループ単位の INT4(四捨五入量子化)です。確認した範囲では最初のトークンの予測は bf16 と一致し、回答は自然ですが、数トークン先から言い回しが元のモデルと分かれることがあります。
## ライセンス
Apache 2.0(元モデルと同じ)。重みは元モデルから刈り込み・再量子化・再構成したものです。