ryugyosoft/llm-jp-4.1-8b-thinking-int8-onw

来源:🤗text-generationapache-2.0激活 8B8.3 GBother✓ 11 个校验和4 天前更新
或提交种子

llm-jp-4.1-8b-thinking-int8 for onw — Intel NPU だけで動く

日本語 | English

llm-jp/llm-jp-4.1-8b-thinking を onw(俺のNPUがこんなに動くわけない)用に変換したモデルです。onw は LLM を Intel NPU だけで動かすエンジンで、このリポジトリにはモデルだけが入っています(エンジンは別にダウンロードします)。

国立情報学研究所(NII)の LLM-jp が日本語を中心に一から学習した llm-jp-4.1-8b-thinking の思考型 8B です(構造は Llama 型、語彙 19.7 万)。元のカードでは、日本語の MT-Bench 7.58(gpt-oss-20b は 7.33)、日本語中心の指示への従い方で Qwen3.5-9B を上回ります(数学・コード・複数ターンのツール利用は Qwen3.5-9B が上)。日本語の文章を扱う用途に向いています。

思考とツール呼び出し:gpt-oss と同じ系統の harmony 形式で、必ず(英語で)考えてから答えます。思考は思考モードのときだけ reasoning_content で返り、思考の量は reasoning_effort(low/medium/high。onw は思考モード以外では low)で変えられます。思考も文字数上限に含まれるので、max_tokens は 300 以上にしてください。ツールは OpenAI 互換 API の tools で使えます(並列呼び出しも可)。

この版は高精度版です:重みをチャネル単位の INT8 にして、元のモデル(bf16)との差をほぼなくしました。メモリ 24 GB 以上の PC 向けです(16 GB の PC では設定の「メモリ節約モード」で)。軽い INT4 版は ryugyosoft/llm-jp-4.1-8b-thinking-onw。

NPU 3720(Core Ultra 9 285HX)
入力 テキスト
生成速度 約 4.1 tok/s(INT4 版の 1 割弱遅い程度)
プロンプト処理 短い質問は 1 秒未満
長いプロンプト(onw 2.0 以降) 1024 トークンで約 144 tok/s(16 トークンずつの約 64 から約 2.3 倍)
ダウンロード 7.7 GB
使用メモリ(読み込み後の作業セット) 約 15 GB(NPU 3720 の実測。設定の「メモリ節約モード」なら待機中 約 8 GB)
初回起動(NPU 向けコンパイル)/2 回目以降 約 10 分/約 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 の「インストール」 のとおり 1 行貼るだけです。Windows はスタートメニューで「PowerShell」を開き、次の 1 行を貼って Enter(Ubuntu は onw の README の curl ... | bash)。

    irm https://huggingface.co/ryugyosoft/onw/resolve/main/install.ps1 | iex
    
  2. タスクトレイの onw アイコンから開く onw ウィンドウ の「モデル」タブで llm-jp-4.1-8b-thinking-int8 を選び、「ダウンロード」を押します(7.7 GB)。

  3. 「サーバー」タブでモデルを選んで「ロード」を押します。初回だけ NPU 向けの準備に約 10 分かかります。

  4. 「チャット」ですぐ試せます。他のアプリからは 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="llm-jp-4.1-8b-thinking-int8-onw", messages=[{"role": "user", "content": "こんにちは"}])
print(r.choices[0].message.content)

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

仕組み

  • 32 層を 8 層ずつ 4 区間+出力層の区間にした静的グラフ(重みはチャネル単位の INT8)。19.7 万語彙の出力層は INT8 の独立した区間で、ロジットが不要なプロンプト処理では飛ばします。INT8 はグループ単位にすると NPU のコンパイルが 1 パーツ約 8 分と極端に遅くなるため、チャネル単位にしています(1 パーツ約 1 秒、生成速度もほぼ同じ)。
  • トークナイザーは元のリポジトリの tokenizer.json をそのまま使います(独自コードの実行は不要。トークン番号は元の実装と一致を確認)。harmony の区切りごとに文字列へ戻し、ツール呼び出しの宛先の位置の違いも onw が読み替えます。
  • 詳しくは onw の技術解説。

ファイル

ファイル 内容
seg*_S1.xml, seg*_S16.xml + seg*.bin 4 区間+出力層(重みは区間ごとに 1 ファイル)
seg*_S64.xml + seg*x.bin 64 トークンずつのプロンプト処理(onw 2.0 以降。重みは seg*.bin を共有し、seg*x.bin はブロックの形を表す数百バイト)
shared.bin INT8 の出力層、INT4 の埋め込み(ホストで参照)
engine.json、トークナイザー/設定ファイル onw 用のメタデータ、元のリポジトリの設定

品質

元のモデル(bf16、CPU)と教師強制で比べると、思考の量 low・medium とも 24/24 トークンが一致し、上位 5 候補のロジットの差は 0.21・0.17(INT4 版は 1.41・1.34)。日本語の 20 問の思考と回答の書き出し 40 か所もすべて一致しました(INT4 版は 34/40)。2 つのツールの並列呼び出しと結果を使った日本語の回答を確認済みです。

ライセンス

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