Downloads · 30 days
104
2% of all-time downloads
ash2813/llm-jp-4-32b-a3b-thinking-gguf
llm-jp-4-32b-a3b-thinking-gguf is a text generation model from ash2813. Use it when you need the model to write or continue text. It is set up for llama.cpp. The card lists the license as apache-2.0.
国立情報学研究所の大規模言語モデル研究開発センターが開発した大規模言語モデル、llm-jp/llm-jp-4-32b-a3b-thinking を GGUF / Q4KM に量子化したものです。
Downloads · 30 days
104
2% of all-time downloads
All-time downloads
5K
Public
Repo size
51.1 GB
Likes
3
Public
Click a slice to open those files.
.gguf85.8 GB · 100%
From the Hugging Face model README
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 を取得しているため、低ビット量子化でも本モデル本来の日本語性能(特に学術ドメイン)が保持される設計です。
研究者ユースケースを想定した 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 を生成 |
| 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.txt を llama-imatrix に渡せば、本リポジトリ同梱の imatrix.dat と同等の importance matrix が再計算できます (GitLab 上のコーパスシャードがバージョン更新された場合は若干差異が生じます)。
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 を追加します。
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 増えますが、付けておくのが安全です。