local_qwen36_27b
- tags
- ai_programming
缘起
- 现在ai编程的服务触手可及,但有些时候还是需要本地部署一个大模型后端,因为可以带来2个好处:
- 数据安全, 所有数据都在本地。
- 速度快,在本地访问,不受网络延迟影响。
- 截止到 2026.5.24的时间点 ,本地部署还是推荐 Qwen3.6-27B 模型,实测效果不错。大模型发展太快,如果超过 3个月 了就要谨慎阅读博文的内容了。
- 目前在4090 24G的机器上,部署 Qwen3.6-27B 的4bit量化mtp模型,是达到可用效果的(吞吐量 50~70token/s ),具体来说:
- 如果追求极致质量,可以配置为 64~80k 上下文。
- 如果追求极致上下文,可以配置为 256k 上下文。
- 如果是用claude code的,上下文建议配置为200k,如果要启用256k的上下文,建议使用openclaude,详细内容后面再展开。
- llamacpp可以混合cpu和gpu推理,但建议还是使用gpu推理,混合推理速度变慢很多。
- 据传 Claude Haiku 也就是20B参数,所以本地的Qwen3.6-27B还是能打的。
大模型与显存
- 显存大小制约了模型参数和上下文长度
- 模型是固定开销,所以要根据自己的显存选择合适的量化版本
- 4bit量化版本大概占用17G显存
- Qwen3.6-27B-UD-Q5_K_XL也可以,模型19G
- kvcache和上下文长度、请求数量相关,也是优化的重点
- k和v可以选择不同的数据精度
- 一般说q8_0的量化精度损失比较少
推理后端选择
- 用来写代码的话不推荐用ollama,虽然部署简单,但推理性能一般,可能只有llamacpp的60%?
- 推荐 llamacpp 或者 vllm,或者其他推理引擎TensorRT LLM,lmdeploy,可以自己选择测试
- 注意:llamacpp的gguf格式在vllm下Qwen36用不了
推理参数选择
llamacpp推理参数
-ngl all \
-fa on -np 1 \
-ctk, --cache-type-k TYPE KV cache data type for K
allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
(default: f16)
(env: LLAMA_ARG_CACHE_TYPE_K)
-ctv, --cache-type-v TYPE KV cache data type for V
allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
(default: f16)
(env: LLAMA_ARG_CACHE_TYPE_V)
- 如果要非对称kvcache,比如-ctk q8_0, -ctv q4_0,cmake的时候加上-DGGML_CUDA_FA_ALL_QUANTS=ON选项
cmake llama.cpp -B llama.cpp/build -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DGGML_CUDA_FA_ALL_QUANTS=ON
上下文选择
- 要在本地形成生产力我觉得最好要128k的上下文,要不然很快就把上下文占完。
- 如果显存吃紧,那就优化下kvcache:
- 用q8_0的kvcache可以比f16节省一半,也就是扩大一倍上下文长度。
- 用q4_0的kvcache上下文可以比q8_0再扩大一倍,如果要开启256k上下文,kv cache都要使用 q4_0。
- 或者k用q8_0, v用q4_0,大家根据需求多测试选择最合适的。
ai编程助手选择
- 如果用claude code的话最好将模型的上下文设置为200k,匹配claude code的默认上下文,如果设置过短的话,比如32k就触发不了claude code自动压缩上下文的功能了。不过claudecode上下文不支持动态配置,即使配置为256k上下文,他也只认200k。
- 如果想兼容claude code而且配置上下文,那就切换到openclaude:
- 环境变量CLAUDE_CODE_OPENAI_FALLBACK_CONTEXT_WINDOW=262144可以设置模型默认的上下文
模型参数
通用思考任务: temperature=1.0, top_p=0.95, top_k=20, min_p=0.0, presence_penalty=0.0, repetition_penalty=1.0
精准编程的精准思考: temperature=0.6, top_p=0.95, top_k=20, min_p=0.0, presence_penalty=0.0, repetition_penalty=1.0
非思考模式: temperature=0.7, top_p=0.80, top_k=20, min_p=0.0, presence_penalty=1.5, repetition_penalty=1.0
总结
- 建议使用llamacpp或vllm来部署Qwen36-27B的4bit量化mtp模型。
- 上下文长度管理是非常重要的,如果使用claude code,建议使用200k上下文;如果要更强的灵活配置,请使用openclaude。