File size: 6,416 Bytes
1adb9f5
 
 
 
 
 
 
 
 
 
 
 
 
 
5ddf944
1adb9f5
 
5ddf944
1adb9f5
5ddf944
1adb9f5
5ddf944
1adb9f5
5ddf944
1adb9f5
d3e70f3
 
5ddf944
 
 
 
 
 
9a3ef43
5ddf944
1adb9f5
bef2ec5
 
5ddf944
1adb9f5
f62aad4
bc2a057
 
 
 
1adb9f5
bc2a057
cfb8909
 
5ddf944
3324abd
 
 
 
5ddf944
 
 
 
 
 
1adb9f5
bc2a057
1adb9f5
5ddf944
1adb9f5
5ddf944
 
 
 
 
 
 
 
 
 
f62aad4
5ddf944
 
 
 
1adb9f5
5ddf944
 
 
 
 
 
 
 
 
1adb9f5
5ddf944
1adb9f5
5ddf944
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
---

license: apache-2.0
base_model: google/gemma-4-E4B-it
pipeline_tag: image-text-to-text
library_name: openvino
tags:
  - openvino
  - npu
  - intel
  - intel-npu
  - gemma4
  - onw
language:
  - ja
  - en
---


# gemma-4-E4B-it for onw — Intel NPU だけで動く(テキスト+画像)

**日本語** | [English](README_en.md)

[google/gemma-4-E4B-it](https://huggingface.co/google/gemma-4-E4B-it) を **[onw](https://huggingface.co/ryugyosoft/onw)**(俺のNPUがこんなに動くわけない)用に変換したモデルです。onw は LLM を Intel NPU だけで動かすエンジンで、このリポジトリにはモデルだけが入っています(エンジンは別にダウンロードします)。

テキストと画像に対応。単独版 [ryugyosoft/gemma-4-E4B-it-npu](https://huggingface.co/ryugyosoft/gemma-4-E4B-it-npu) と同じ検証済みの NPU グラフを、共通エンジンで動かします。

**私たちの知る限り、画像エンコーダーと層ごとの埋め込みまで含めて Gemma 4 全体を NPU で動かす公開実装は onw が初めてです**(2026 年 9 月、Fable 5.1 調べ。Intel 公式の OpenVINO GenAI は画像エンコーダーを CPU で動かし、他の公開例はテキストのみです)。

| NPU 3720(Core Ultra 9 285HX) | |
|---|---|
| 入力 | テキスト+画像 |
| 生成速度 | **7.2 tok/s(先読み検証あり、出力は通常生成と同一)** |
| プロンプト処理 | 画像+質問 284 トークン:画像 1.9 秒+処理 2.0 秒(64 トークン版、RAM 24 GB 以上) |
| ダウンロード | **4.3 GB** |
| 使用メモリ(読み込み後の作業セット) | 約 6 GB(画像処理中 8.5 GB) |
| 初回起動(NPU 向けコンパイル)/2 回目以降 | 約 4 分/約 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 ウィンドウ** の「モデル」タブで **gemma-4-E4B-it** を選び、「ダウンロード」を押します(4.3 GB)。
3. 「サーバー」タブでモデルを選んで「ロード」を押します。初回だけ NPU 向けの準備に約 4 分かかります。
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="gemma-4-E4B-it-onw", messages=[{"role": "user", "content": "こんにちは"}])

print(r.choices[0].message.content)

```

上級者向け:`hf download ryugyosoft/gemma-4-E4B-it-onw` で取得したフォルダを `onw serve フォルダ` で起動することもできます。Git LFS なしの `git clone` では重みが入らないので使わないでください(onw が検出して止めます)。

## バージョン

- **v2(現在)**:デコーダーの重みを 1/16/64 トークン用で共有、層ごとの埋め込み表を INT4 化(9.2 → 4.3 GB、使用メモリ 16.1 → 14.8 GB)。回答は v1 と同じでした。 onw 0.3 以降が必要です。
- v1:`hf download ryugyosoft/gemma-4-E4B-it-onw --revision v1 --local-dir ...` で取り出せます。

ダウンロード量の削減の大半は同じ重みを 1 つにまとめたことによるもので、実行時は NPU がブロックサイズごとにコンパイル済みの重みを持つため、使用メモリの減り方は小さめです。

## 仕組み

- Gemma 4 用に書き換えた静的デコーダー(ヘッド次元 512 のアテンションを 256 幅に分割、マスクはホストで作成)をそのまま取り込んでいます。
- 埋め込みと 2.7 GB の層ごとの埋め込み表はホストで引きます(表を引くだけなので NPU メモリを使わず、単独版にあった別プロセスも不要)。
- 出力層は全ブロックサイズで共有する INT8 入力。logit の softcap は NPU コンパイラの不具合を避ける形で組んでいます。
- 詳しくは [onw の技術解説](https://huggingface.co/ryugyosoft/onw/blob/main/TECHNICAL.md)。

## ファイル

| ファイル | 内容 |
|---|---|
| `seg00_S{1,16,64}.xml` + `seg00.bin` | 静的デコーダー(1/16/64 トークン用、重みは共有) |
| `seg01_S*.xml` + `seg01.bin` | 出力層と logit softcap |
| `vision.xml` | 静的な画像エンコーダー(280 トークン) |
| `shared.bin` | INT8 の埋め込み(出力層と共有)、INT4 の層ごとの埋め込み表と ID 変換表 |
| `engine.json`、トークナイザー/設定ファイル | onw 用のメタデータ、元のリポジトリの設定 |

## 品質

エキスパートなどはチャネル単位・グループ単位の INT4(四捨五入量子化)です。確認した範囲では最初のトークンの予測は bf16 と一致し、回答は自然ですが、数トークン先から言い回しが元のモデルと分かれることがあります。

## ライセンス

Apache 2.0(元モデルと同じ)。重みは元モデルから再量子化・再構成したものです。