sakamakismile commited on
Commit
3917c8c
·
verified ·
1 Parent(s): eb7748b

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +79 -0
README.md ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - ja
5
+ base_model: llm-jp/llm-jp-4-33b-thinking
6
+ base_model_relation: quantized
7
+ library_name: vllm
8
+ tags:
9
+ - nvfp4
10
+ - compressed-tensors
11
+ - blackwell
12
+ - japanese
13
+ - reasoning
14
+ pipeline_tag: text-generation
15
+ ---
16
+
17
+ # llm-jp-4-33b-thinking-NVFP4
18
+
19
+ [llm-jp/llm-jp-4-33b-thinking](https://huggingface.co/llm-jp/llm-jp-4-33b-thinking)(国立情報学研究所 LLM勉強会による日本語特化 33B・推論モデル)の **NVFP4 (W4A4, group 16)** 量子化です。モデル本体の功績はすべて [LLM-jp](https://huggingface.co/llm-jp) にあります。本リポジトリは量子化重みのみを配布します。
20
+
21
+ **66.5 GB → 21 GB。** 16GBカード2枚から載ります。
22
+
23
+ - アーキテクチャは素直な **LlamaForCausalLM**(Dense 33B・64層・語彙196,608の日本語特化トークナイザ・64kコンテキスト)
24
+ - **SM120(Blackwell)+ 素のvLLM v0.22.0** 向け。compressed-tensors自動判定、`--quantization`フラグ不要
25
+ - 量子化除外は `lm_head` のみ(視覚塔もMoEルーターも無い、当ラボで最も素直な焼き上がり)
26
+
27
+ ## 実測(TP=4・32kコンテキスト・KV fp8・RTX PRO 2000 Blackwell ×4)
28
+
29
+ | 並列数 | 合計スループット |
30
+ |---|---|
31
+ | 1 | 43.1 t/s |
32
+ | 2 | 85.1 t/s |
33
+ | 4 | **167.3 t/s** |
34
+
35
+ プリフィル単流: **3,597 tok/s**(8kプロンプト・prefix cache無効・3回平均)
36
+
37
+ ## 起動方法 — ⚠️公式の推論パーサが必須です
38
+
39
+ このモデルは OpenAI Harmony 形式(analysis / final チャンネル)で応答します。**素のvLLMでは思考(analysis)が本文に混ざって返る**ため、[公式cookbook](https://github.com/llm-jp/llm-jp-4-cookbook) の専用パーサを登録してから起動してください。**本リポジトリに同梱してあります**(`llmjp4_reasoning_parser.py` / `example_cli.py`)。
40
+
41
+ ```bash
42
+ # リポジトリのファイルがあるディレクトリで
43
+ python3 example_cli.py serve <このモデルのパス> \
44
+ --served-model-name llmjp4 --trust-remote-code \
45
+ --tensor-parallel-size 4 --max-model-len 32768 \
46
+ --kv-cache-dtype fp8 --enable-prefix-caching \
47
+ --reasoning-parser llmjp4
48
+ ```
49
+
50
+ P2Pの無いボードでは `NCCL_P2P_DISABLE=1` と `--disable-custom-all-reduce` を追加してください。
51
+
52
+ 思考の深さはリクエストごとに指定できます:
53
+
54
+ ```json
55
+ "chat_template_kwargs": {"reasoning_effort": "low"} // low / medium / high
56
+ ```
57
+
58
+ ## 検証メモ — reasoning_effort の使い分け(実測)
59
+
60
+ 日本語の音韻課題(モーラ数え・俳句の音数走査・字余り検出)で汎用27Bと突き合わせた結果:
61
+
62
+ - **effort=low**: 語のモーラ数え 10/12。俳句の音数走査はほぼ不能(これは汎用モデルも同じ。表記→音の透視がボトルネックで、ひらがな分かち書きを与えればどちらも正解できる)
63
+ - **effort=high**: **一変します。**「古池や〜」を5-7-5と正しく走査し、字余りの句を「5-7-6、字余りあり」と検出できました(比較対象は汎用27B一体のみ・小規模な検証です。汎用側はeffortを上げてもここまで到達しませんでした)
64
+ - 目安: **日常会話・実務は low(速い)、韻文・言葉の精査は high(-thinkingの真骨頂)**
65
+
66
+ 品質の実弾例(effort=low・本文分離済み):
67
+
68
+ > 潮騒に 足あと残す 夕焼けかな
69
+
70
+ ## ⚠️ 量子化時に踏んだ罠(再現する方へ)
71
+
72
+ - **カスタムトークナイザのラッパー**(`llmjp4_tokenizer.py`)は環境によって日本語を一文字ずつに分割します(「ありがとうございます」が11トークン)。**生の `tokenizer.json` は正常**(同じ語が1トークン)。キャリブレーションは生のtokenizer.jsonで行い、chat_templateだけ`tokenizer_config.json`から移植しました。壊れたトークナイザでのキャリブは日本語品質を静かに損なうので、焼く前に必ず検問を
73
+ - GPU常駐でキャリブした場合、保存時の集約でOOMすることがあります。このモデルはCPU側に重みを置く方式(llm-compressorのSequentialPipeline既定)で問題なく焼けます
74
+
75
+ ## レシピ
76
+
77
+ llm-compressor NVFP4 (W4A4, group 16)、`targets: [Linear]`、`ignore: ["lm_head"]`、キャリブレーション 32サンプル × 8192トークン(`neuralmagic/calibration`)。
78
+
79
+ 🙏 [LLM-jp](https://huggingface.co/llm-jp)(モデルと公式パーサ)、vLLM / llm-compressor の各チームに感謝します。