---
license: apache-2.0
base_model:
- ibm-granite/granite-4.2-3b
language:
- ja
- en
pipeline_tag: text-generation
tags:
- openvino
- npu
- intel
- onw
- agent
- tool-use
library_name: onw
---
# granite-4.2-3b for onw — Intel NPU だけで動く
**日本語** | [English](README_en.md)
[ibm-granite/granite-4.2-3b](https://huggingface.co/ibm-granite/granite-4.2-3b) を **[onw](https://huggingface.co/ryugyosoft/onw)**(俺のNPUがこんなに動くわけない)用に変換したモデルです。onw は LLM を Intel NPU だけで動かすエンジンで、このリポジトリにはモデルだけが入っています(エンジンは別にダウンロードします)。
IBM の [Granite 4.2](https://huggingface.co/collections/ibm-granite/granite-42-language-models) は、思考(推論)とツール呼び出しを強化した世代で、最大 200 回のツール呼び出しを含むエージェントの強化学習(コード修正・ターミナル操作・ウェブ検索)を経ています。構造は普通の Transformer(Llama 型)です。日本語は公式の対応言語ですが、多言語の指標は英語より低めで、日本語の回答では漢字の誤りや不自然な内容が混じることがあります(日本語中心なら [llm-jp-4.1-8b-thinking](https://huggingface.co/ryugyosoft/llm-jp-4.1-8b-thinking-onw) がおすすめです)。この 3B は Granite 4.2 でいちばん軽く、onw のモデルでも最速クラスです(元のカードで BFCL v4 52.4 は 8B と同点、τ³-bench 51.0、IFBench 74.3)。
**思考とツール呼び出し**:既定では考えずに答えます(チャット画面の「思考モード」、API の `chat_template_kwargs: {"enable_thinking": true}` で考えます。思考は `reasoning_content` で返ります)。ツールは OpenAI 互換 API の `tools` で使えます(並列呼び出しも可)。思考モードでは考える量が多いので、ツールを使うときは `max_tokens` を 2000 以上にしてください。元のカードの推奨設定は temperature 1.0・top_p 0.95 です(onw の既定は貪欲生成)。
| NPU 3720(Core Ultra 9 285HX) | |
|---|---|
| 入力 | テキスト |
| 生成速度 | **6.7 tok/s(先読み検証が効くチャットで約 7.7)** |
| プロンプト処理 | 短い質問は 1 秒未満 |
| ダウンロード | **2.1 GB** |
| 使用メモリ(読み込み後の作業セット) | 約 6 GB(Lunar Lake 16 GB 機の実測 6.4 GB。設定の「メモリ節約モード」なら待機中も回答中も約 2.8 GB、入れ替えの約 3 秒だけ 5.1 GB) |
| 初回起動(NPU 向けコンパイル)/2 回目以降 | 約 6 分/約 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 ウィンドウ** の「モデル」タブで **granite-4.2-3b** を選び、「ダウンロード」を押します(2.1 GB)。
3. 「サーバー」タブでモデルを選んで「ロード」を押します。初回だけ NPU 向けの準備に約 6 分かかります。
4. 「チャット」ですぐ試せます。他のアプリからは **OpenAI 互換 API** として使えます(base URL は `http://localhost:8000/v1`)。
```python
from openai import OpenAI
c = OpenAI(base_url="http://localhost:8000/v1", api_key="none")
r = c.chat.completions.create(model="granite-4.2-3b-onw", messages=[{"role": "user", "content": "こんにちは"}])
print(r.choices[0].message.content)
```
上級者向け:`hf download ryugyosoft/granite-4.2-3b-onw` で取得したフォルダを `onw serve フォルダ` で起動することもできます。Git LFS なしの `git clone` では重みが入らないので使わないでください(onw が検出して止めます)。
## 仕組み
- 40 層を 8 層ずつ 5 区間+出力層の区間にした静的グラフ。埋め込み・残差・アテンション・出力の倍率(Granite 独自の係数)はグラフに組み込んでいます。
- Granite はグループ 128 の普通の INT4 では誤差が大きめだったため、**符号を考慮した INT4**(正側は最大値/7、負側は最小値/8 で目盛りを決める。データの並びと速度は普通の INT4 と同じ)を使い、アテンションの q/k/v だけグループ 128 の INT8 にしています(速度の低下はわずか)。
- 出力層は独立した INT8 の区間で、行の目盛りが FP16 の非正規数(NPU では 0 になる)に落ちる行は作り直しています。
- 詳しくは [onw の技術解説](https://huggingface.co/ryugyosoft/onw/blob/main/TECHNICAL.md)。
## ファイル
| ファイル | 内容 |
|---|---|
| `seg*_S1.xml`, `seg*_S16.xml` + `seg*.bin` | 5 区間+出力層(重みは区間ごとに 1 ファイル) |
| `shared.bin` | INT8 の出力層、INT4 の埋め込み(ホストで参照) |
| `engine.json`、トークナイザー/設定ファイル | onw 用のメタデータ、元のリポジトリの設定 |
## 品質
元のモデル(bf16、CPU)の 400 トークンの回答を教師強制で流すと、344/400 トークンが一致(普通の INT4 だけでは 316)。NPU と CPU(FP32)の結果は同じで、日本語の 20 問の最初のトークンは 15/20 が一致しました。2 段のツール呼び出しから最終回答まで、思考の分離を確認済みです。
## ライセンス
Apache 2.0(元モデルと同じ)。重みは元モデルから再量子化・再構成したものです。学習はしていません。