Sarashina2.2-3B-Instruct for Ryzen AI NPU (ONNX / INT4)
sbintuitions/sarashina2.2-3b-instruct-v0.1 を AMD Ryzen AI NPU (XDNA) 向けに INT4 量子化・変換したものです。 OnnxRuntime GenAI (OGA) で動きます。
AMD が配布する Ryzen AI 向け LLM には日本語特化モデルがありません。 汎用の Qwen2.5 では中国語の語彙や英単語が訳文に混ざるため、 日本語翻訳用途に耐えるモデルとして変換しました。
動作確認環境
| CPU | AMD Ryzen AI 9 HX 370 (Strix Point) |
| NPU | XDNA 2 |
| Ryzen AI Software | 1.8.0 |
| onnxruntime-genai | 0.14.0 (directml-ryzenai) |
使い方
import json
import onnxruntime_genai as og
model = og.Model("path/to/this/model")
tokenizer = og.Tokenizer(model) # ← 失敗します。下記「注意 2」を参照
注意 1: --npu --basic で変換しています
このモデルは head_dim = 160 (hidden 2560 / 16 heads) です。
AMD が同梱するプリビルド NPU カーネル (dyn_bins.zip) は 64 / 128 しか持たないため、
--hybrid では Transaction not found: mladfmharope_..._160 で失敗します。
そのため融合 Attention を使わない --npu --basic で変換しています。
model_generate --npu --basic --input <sarashina2.2-3b-instruct-v0.1> --output <out>
融合カーネルを使わないぶん、AMD 公式の hybrid モデルより生成は遅くなります (実測: 1 文あたり中央値 2.45 秒 / Qwen2.5-3B hybrid は 1.30 秒)。
注意 2: トークナイザは OGA では読めません
Sarashina のトークナイザは sentencepiece 由来の Unigram 形式で、
vocab が配列になっています。OGA の C++ トークナイザは BPE しか読めないため、
og.Tokenizer(model) は次のエラーで失敗します。
[json.exception.type_error.302] type must be object, but is array
同梱の tokenizer.json を tokenizers (Rust) で直接読んでください。
生成器はトークン ID を直接受け取れるので、これで問題なく動きます。
from tokenizers import Tokenizer
tok = Tokenizer.from_file("path/to/this/model/tokenizer.json")
ids = tok.encode(prompt, add_special_tokens=False).ids
generator.append_tokens(ids)
チャットテンプレートは chat_template.jinja を jinja2 で描画してください。
注意 3: hybrid_opt_npu_read_ahead を切る必要があります
同梱の genai_config.json には設定済みですが、無いと次のエラーになります。
Weights not loaded in /model/layers.0/attn/c.v_proj/MatMul_Q4
{"RyzenAI": {"hybrid_opt_npu_read_ahead": "-1", ...}}
訳質の比較 (英 → 日)
同一プロンプト・同一機での実測です。
| 原文 | このモデル | Qwen2.5-3B (AMD 公式) |
|---|---|---|
| The meeting is scheduled for three o'clock tomorrow afternoon. | 会議は明日の午後3時に予定されています。 | 三時明天の afternoon に会議が予定されています。 |
| Please submit the documents by next Monday. | 次の月曜日までに書類を提出してください。 | 日付まで次の月曜日に文書を提出してください。 |
| Speech recognition accuracy has improved significantly. | 音声認識の精度は大幅に向上した。 | 会話認識の精度は大幅に向上しました。 |
| We need to postpone the release until the security review is complete. | 私たちは、セキュリティ審査が完了するまで、リリースを延期する必要がある。 | 延期してセキュリティレビューが終わるまで発売を控えましょう。 |
ライセンス
元モデルと同じ MIT です。 元モデルの権利は SB Intuitions にあります。 本リポジトリは量子化・形式変換のみを行ったもので、重みの学習・改変は行っていません。
Model tree for ryugyosoft/sarashina2.2-3b-instruct-ryzenai-npu
Base model
sbintuitions/sarashina2.2-3b