打补丁让 vLLM 支持 lm_head LoRAGEV-26B-Decide-NVFP4 单引擎部署内幕与 2 个关键 Patch 剖析【免费下载链接】GEV-26B-Decide-NVFP4项目地址: https://ai.gitcode.com/hf_mirrors/autotrust/GEV-26B-Decide-NVFP4GEV-26B-Decide-NVFP4 是基于 Gemma-4 的开源决策模型的 NVFP4 量化版用单引擎部署就能同时提供 45ms 即时决策System 1与自适应深度思考System 2。本文剖析它的部署内幕——只需打补丁让 vLLM 支持 lm_head LoRA2 个关键 Patch就能让决策头和思考大脑共享同一个推理引擎并把 50 GB 的模型压进 17 GB 显存。 模型速览NVFP4 量化26B 决策模型只要 17 GBGEV-26B-Decide 是一个类型化决策模型对文本或图片提出是非题、0–5 分评分、2–256 选项选择题直接输出每个选项的校准概率而不生成一段文本。它的底层是一个 26B MoE30 层 × 128 专家 3840 个路由专家。NVFP4 版本只量化了占比最大的路由专家权重其余部分注意力、稠密 MLP、路由器、视觉塔、lm_head、System 1 适配器、决策头全部保持 bf16 不变。量化配置见 hf_quant_config.json其中lm_head被明确列入排除清单——这一点后面会解释为什么重要指标bf16 原版NVFP4 版下载体积49.5 GB18 GBvLLM 权重显存51.1 GiB17.1 GiB−66%也就是说整模型可以塞进一张 24 GB 显卡还能留出空间给上下文。 单引擎部署核心思路把决策头伪装成 lm_head LoRA这个项目的巧妙之处在于一个 vLLM 引擎两个系统System 2思考大脑未改动的 Gemma-4 基座模型走标准 OpenAI 接口可思考、可看图System 1即时决策加载名为jev-decision的 LoRA 模块一次前向就输出概率分布中位数 45ms。关键问题在于System 1 的决策头是一个 24 槽位的线性读出层head.safetensors2816 → 24在 vLLM 里并没有现成的加载位置。作者的解法见 serve_decide.py 的设计说明把基座 LoRA 和决策头一起打包进一个 PEFT 适配器——适配器 adapter_vllm/adapter_config.json 的target_modules里赫然包含lm_head决策逻辑不再自定义算子而是读取 lm_head-LoRA 之后、verbalizer 词元true/false、0–5、A–P的 logprobs再叠加偏置与温度得到最终概率。槽位布局与读出细节记录在 adapter_vllm/decision_head.json。这样 vLLM 的推理内核完全不用写新代码直接复用标准的 processed logprobs 通路。但这条路在当时的 vLLM 上根本跑不通障碍有两个对应 patches/vllm-gemma4-lm-head-lora.patch 中的 2 个提交。 Patch 1放开词表上限 声明 lm_head 为 embedding 模块改动一LoRA 词表上限 258048 → 262144vLLM 的 logits 处理器有一个硬性检查启用 LoRA 时词表大小必须 ≤ 258048否则直接抛异常。而 Gemma-4 的词表恰好是262,144——超出上限 4000服务启动即失败。Patch 1 把上限改为 262144patch 第 16–25 行并注明已通过 Gemma-4-26B-A4B 的输出一致性验证——即放开上限后输出分布与未改动前完全一致。改动二用 embedding_modules 映射 lm_head LoRA由于 Gemma-4 的 lm_head 与输入嵌入共享权重tied weightsvLLM 默认不知道该如何把 PEFT 里lm_head这个 LoRA 目标挂到 logits 处理器上。Patch 1 在 Gemma-4 模型类中补充了一段声明patch 第 37–43 行embedding_modules { lm_head: output_embeddings, }它把 PEFT 的lm_headLoRA 目标映射到 vLLM 的 logits-processor LoRA 包装器上。因为 lm_head 与输入嵌入同权重LoRA 增量只作用在输出 logits 上且发生在 Gemma 最终 logits soft-cap 之前不激活 LoRA 时输入嵌入和基座 logits 完全不受影响——这正是单引擎双系统能干净共存的前提。 Patch 2修复 Gemma-4 模块别名导致的 LoRA 静默重置如果说 Patch 1 是启动不了Patch 2 修的是一个更阴险的悄悄算错。Bug 原理两条路径指向同一个 LoRA 包装器Gemma-4 的模型结构里同一个物理层有两个模块路径可以访问到model.layers.N和model.self_decoder.decoder_layers.N。vLLM 的 LoRA 管理器激活适配器时会遍历所有模块路径逐个写入权重两条别名路径最终指向同一个物理 LoRA 包装器于是后写入的那条路径没有权重调用了reset_lora把刚加载好的权重清零——没有报错、没有日志只是概率输出全错。修复方式按物理模块去重Patch 2patch 第 51–87 行在上游 vLLM 39816 号 PR 的基础上做了回移修复激活时用id(module)识别物理模块每个物理模块只保留一个条目并且优先选择带有权重的路径确保任何别名都不会重置刚加载的权重。这类静默失败bug 对新手尤其危险服务正常启动、请求正常返回唯一线索是概率分布和预期对不上。⚡ 部署实操serve.sh 一键启动单引擎两个 Patch 打上后部署只需要一行命令完整说明见 README.md 的 Quick Start 一节hf download autotrust/GEV-26B-Decide-NVFP4 --local-dir GEV-26B-Decide-NVFP4 MODEL_DIRGEV-26B-Decide-NVFP4 bash GEV-26B-Decide-NVFP4/serve.sh # vLLM 起在 :8000serve.sh 的本质是标准 vLLM OpenAI 服务加几个关键参数--enable-lora --max-lora-rank 32 --lora-modules jev-decision模型目录/adapter_vllm --logprobs-mode processed_logprobs --max-logprobs 256--lora-modules jev-decision...挂载决策 LoRA就是 Patch 让 vLLM 能加载的那个 lm_head LoRA--logprobs-mode processed_logprobs读取经过 lm_head LoRA 修正后的 logprobs决策概率正是从这里算出serve_decide.py 在标准接口之外新增了POST /v1/decide支持thinking: auto的自适应思考。对新手友好的地方vLLM 自动从 config.json / hf_quant_config.json 读取出 NVFP4 量化方式无需任何量化参数启动日志里能看到modelopt_fp4与所选 MoE 内核。B200 上是原生 W4A4 内核RTX 5090/PRO 6000 走 CUTLASS FP4H100/A100 则退回 Marlin W4A16全部自动。❓ 新手常见问题Q必须打补丁吗不行的话怎么办单引擎 vLLM 部署必须打 Patch。如果不想动 vLLM可以走transformers peft路径README.md 的 Usage 一节但那需要 bf16 原版权重且没有决策服务接口。Q需要哪个版本的 vLLM带 Gemma-4 支持的 vLLM 开发构建2026 年 9 月版已验证在 vLLM 源码目录中应用补丁git apply patches/vllm-gemma4-lm-head-lora.patch。Q量化会影响决策概率吗不会。hf_quant_config.json 排除了 lm_head、注意力与稠密 MLPlm_head LoRA 运行在 bf16 权重上vLLM 引擎与 transformers 引擎在 300 个留出决策上平均最大概率差仅 0.015。Q显存要多少权重 17.1 GiB24 GB 显卡即可运行短上下文--gpu-memory-utilization与MAX_MODEL_LEN可按卡调整例如MAX_MODEL_LEN32768。Q温度配置用哪个文件默认用 calibration.json若要根据置信度自动门控动作请改用按真值校准的 calibration_gold.json。小结GEV-26B-Decide-NVFP4 的单引擎部署内幕可以浓缩成三步NVFP4 只量化路由专家把 26B MoE 压进 17 GBlm_head 保持 bf16 不动决策头伪装成 lm_head LoRA塞进标准 PEFT 适配器让 vLLM 无需新算子2 个 Patch——放开词表上限并声明embedding_modules让它能加载、按物理模块去重让权重不被别名静默重置——让整条通路在 Gemma-4 上既跑得起来、又算得对。最终效果一个引擎、一套权重文本与图像两用System 1 中位 45ms 出概率System 2 在想清楚的时候才花时间思考。【免费下载链接】GEV-26B-Decide-NVFP4项目地址: https://ai.gitcode.com/hf_mirrors/autotrust/GEV-26B-Decide-NVFP4创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考