2026年3月17日技术分享
[Ollama Qwen3.5] 调整 Modelfile 模板配置解决 thinking 模式无法禁用的难题
场景复现
在本地部署 Qwen3.5 大模型(如 Unsloth GGUF 版本)时,许多开发者发现无法有效关闭模型的“thinking”思考模式。这导致输出包含冗长的推理过程,不仅拖慢了响应速度,还增加了 Token 消耗。现有的文档对于 Modelfile 中的 `enable_thinking` 等关键参数缺乏清晰指引,严重影响了开发效率和业务落地体验。核心步骤
要解决这个问题,我们需要手动创建或修改 Modelfile,通过 Jinja2 模板逻辑显式控制思考开关,而非依赖默认配置。 步骤 1:创建 Modelfile 并指定基础模型 以 `unsloth/Qwen3.5-35B-A3B-GGUF` 为例,首先创建一个新的 Modelfile。我们需要明确引用 GGUF 文件,并设置基础参数。FROM unsloth/Qwen3.5-35B-A3B-GGUF
# 设置模型参数
PARAMETER temperature 0.7
PARAMETER num_ctx 8192
步骤 2:配置 TEMPLATE 模板逻辑
这是最关键的一步。在 Modelfile 中使用 `TEMPLATE` 字段覆盖默认模板。通过判断 `enable_thinking` 变量来决定是否渲染 `TEMPLATE """
{{- range .Messages }}
{{- if .Role == "system" }}<|im_start|>system
{{ .Content }}<|im_end|>
{{- else if .Role == "user" }}<|im_start|>user
{{ .Content }}<|im_end|>
{{- else if .Role == "assistant" }}<|im_start|>assistant
{{- if $.Think }}{{- end }}
{{ .Content }}<|im_end|>
{{- end }}
{{- end }}
{%- if enable_thinking is defined and enable_thinking is false %}
{# 此处逻辑可强制跳过思考过程或重置相关变量 #}
{%- set $.Think = "" -%}
{%- endif %}
<|im_start|>assistant
"""
步骤 3:构建模型并运行测试
保存 Modelfile 后,使用 `ollama create` 命令构建自定义模型,并在运行时验证输出是否不再包含思考标签。
# 构建模型
ollama create my-qwen35 -f Modelfile
# 运行模型(若模板支持参数传递,可尝试在 API 调用中设置 options)
ollama run my-qwen35 "请简述量子计算的基本原理"
商业价值
精准控制 Qwen3.5 的 thinking 模式能显著优化 API 响应结构。对于客服或知识库问答场景,关闭思考模式可减少约 20%-40% 的无效 Token 输出,直接降低推理成本并提升端侧用户的感知速度。如需定制方案欢迎咨询💬 遇到类似问题?欢迎 联系咨询,提供一对一技术答疑。