llm-jp-4-32b-a3b-thinking — GGUF (Q4_K_M, imatrix calibrated with llm-jp-corpus-v4)

国立情報学研究所の大規模言語モデル研究開発センターが開発した大規模言語モデル、llm-jp/llm-jp-4-32b-a3b-thinking を GGUF / Q4_K_M に量子化したものです。

本リポジトリの特徴

importance matrix (imatrix) のキャリブレーションに、同モデルの公式事前学習コーパスである llm-jp-corpus-v4 を直接利用しています。訓練分布と同源の importance matrix を取得しているため、低ビット量子化でも本モデル本来の日本語性能(特に学術ドメイン)が保持される設計です。

キャリブレーションミックス (合計 ~15MB)

研究者ユースケースを想定した 5 サブセットを以下の比率で混合しています:

サブセット パス 役割 比率
ja_wiki ja/ja_wiki/0000.jsonl.gz 一般日本語・固有名詞 25%
ja_cc ja/ja_cc/level2/0000.jsonl.gz 日本語 Web (高品質フィルタ済) 30%
ja_kaken ja/ja_kaken/0000.jsonl.gz 科研費抄録: 学術日本語 15%
en_wiki en/en_wiki/0000.jsonl.gz 英日混在現実 15%
code_stack code/code_stack/0000.jsonl.gz Python コード+コメント 15%

特に ja_kaken (科研費データベース抄録) を含めたことで、研究者が日常的に扱う「敬体・受動態多用・専門用語混在の論文体日本語」を imatrix に取り込んでいます。

キャリブレーションテキスト本体 (ja_calibration.txt) は元コーパスの著作権 (Wikipedia CC-BY-SA、Common Crawl 由来 Web ページ、科研費抄録、The Stack コード) の再配布リスクを考慮し同梱していません。代わりに混合定義 (corpus_subsets.yaml) と生成スクリプト (fetch_corpus.py + build_calibration.py) を同梱しているため、必要に応じて同じキャリブレーションテキストを再生成できます。

提供ファイル

通常推論用 (推奨)

File Quant Size Notes
llm-jp-4-32b-a3b-thinking-Q4_K_M.gguf Q4_K_M ~20GB imatrix 適用済み。日常用途推奨
imatrix.dat ~97MB 再量子化用 importance matrix
corpus_subsets.yaml <1KB キャリブレーションミックスの定義 (再現用レシピ)
fetch_corpus.py 数KB corpus_subsets.yaml を読んで GitLab から llm-jp-corpus-v4 の必要シャードのみを取得
build_calibration.py 数KB DL 済みコーパスを混合して ja_calibration.txt を生成

再量子化・f16 直接推論用 (上級者向け、合計 ~60GB)

File Quant Size Notes
llm-jp-4-32b-a3b-thinking-f16-00001-of-00003.gguf F16 ~30GB shard 1/3
llm-jp-4-32b-a3b-thinking-f16-00002-of-00003.gguf F16 ~30GB shard 2/3
llm-jp-4-32b-a3b-thinking-f16-00003-of-00003.gguf F16 ~5GB shard 3/3

LLM-jp-4 専用 Unigram tokenizer パッチ + OpenAI Harmony vocab スワップ適用済みの f16 GGUF を、HF の単一ファイル上限を考慮して 3 shard に分割しています。 全 3 shard を同一ディレクトリにダウンロード後、先頭 shard を -m に渡すだけで llama.cpp が自動的に残り shard をマージロードします。

通常推論には Q4_K_M で十分です。 f16 shard は任意ビットへの再量子化、またはA100/H100 80GB クラスでの f16 直接推論向けです。

キャリブレーションテキストの再生成 (任意)

本リポジトリに同梱されている 3 ファイル (corpus_subsets.yaml + fetch_corpus.py + build_calibration.py) で、本量子化に使ったものと同一のキャリブレーションテキストを手元で再生成できます:

# 1. 本リポジトリを clone (GGUF を除いて軽量に取りたい場合は --filter=blob:none を追加)
git clone https://huggingface.co/ash2813/llm-jp-4-32b-a3b-thinking-gguf
cd llm-jp-4-32b-a3b-thinking-gguf

# 2. 依存
pip install requests pyyaml

# 3. GitLab から llm-jp-corpus-v4 の必要シャードを DL (~1.6GB)
python fetch_corpus.py corpus_subsets.yaml
#   → ./calibration/raw/llm-jp-corpus-v4/{ja_wiki,ja_cc,ja_kaken,en_wiki,code}/

# 4. 混合してキャリブレーションテキストを生成 (~15MB)
python build_calibration.py \
  --corpus-root calibration/raw/llm-jp-corpus-v4 \
  --out calibration/ja_calibration.txt \
  --no-fallback

得られた ja_calibration.txtllama-imatrix に渡せば、本リポジトリ同梱の imatrix.dat と同等の importance matrix が再計算できます (GitLab 上のコーパスシャードがバージョン更新された場合は若干差異が生じます)。

使い方

llama.cpp server (CPU)

docker run --rm -p 8080:8080 \
  -v $PWD:/models:ro \
  ghcr.io/ggml-org/llama.cpp:server \
  -m /models/llm-jp-4-32b-a3b-thinking-Q4_K_M.gguf \
  --jinja \
  --host 0.0.0.0 --port 8080 -c 4096 -t 8

--jinja は harmony chat template を Jinja パーサで解釈するために必須です(未指定だと reasoning_content 分離や tool/role の整形が効きません)。 -t 8 はワーカースレッド数で、実機の物理コア数に合わせて調整してください。 GPU を使う場合は ghcr.io/ggml-org/llama.cpp:server-cuda イメージに切り替え、--gpus all-ngl 99 を追加します。

OpenAI 互換 chat completions

curl -s http://localhost:8080/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"messages":[{"role":"user","content":"日本の首都はどこですか?簡潔に。"}],"max_tokens":300}'

応答 (抜粋):

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "東京です。",
      "reasoning_content": "The user asks in Japanese: ..."
    },
    "finish_reason": "stop"
  }]
}

思考過程は reasoning_content フィールドに自動分離されます。

別ビットへの再量子化

本リポジトリ同梱の f16 shard と imatrix.dat があれば、任意のビット (Q3_K_M / Q5_K_M / Q6_K / Q8_0 等) を 1 コマンドで生成できます:

# 全 shard と imatrix.dat を同一ディレクトリに用意してから:
llama-quantize --imatrix imatrix.dat \
  --output-tensor-type Q8_0 \
  llm-jp-4-32b-a3b-thinking-f16-00001-of-00003.gguf \
  llm-jp-4-32b-a3b-thinking-Q5_K_M.gguf Q5_K_M

llama.cpp が先頭 shard から残り 2 shard を自動的に検出して読み込みます。 convert/imatrix 計算は不要で、llama-quantize 1 ステップで完了します。

--output-tensor-type Q8_0 は出力射影層を Q8_0 に固定するオプションで、harmony chat-template の長文プロンプト下での argmax 安定性に寄与します (本リポジトリの Q4_K_M も同オプション付きで生成済み)。サイズは数百 MB 増えますが、付けておくのが安全です。

ライセンス・元モデル

謝辞

Downloads last month
573
GGUF
Model size
32B params
Architecture
qwen3moe
Hardware compatibility
Log In to add your hardware

4-bit

16-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ash2813/llm-jp-4-32b-a3b-thinking-gguf

Quantized
(5)
this model