2026-11-02 · 提示词优化
在 Qwen Chat 网页端随便聊几句,你会觉得模型挺聪明;但等你用 Ollama 或 vLLM 把 Qwen 拉到自己机器上跑起来,第一句话往往是「怎么感觉不如网页版」。多数时候不是模型缩水了,而是你还没写系统提示词。网页端背后有一整套官方预设在兜底,而本地部署时,这份兜底工作就落在了你的第一条系统提示词上。这篇就聊怎么把它写好。
本地跑 Qwen 有个容易被忽略的点:很多部署工具默认给你一个空系统提示词,甚至不启用对话模板的角色区分,模型收到的就是一段「裸」的用户输入。Qwen 开源系列从端侧小模型到旗舰大模型都遵循相似的对话格式训练,但小参数量模型(比如端侧常用的几 B 级别)对指令的跟随能力更依赖明确的约束——你不告诉它「回答控制在三句话内」,它就可能在闲聊里输出一大段。
所以系统提示词在本地场景的作用比云端更重:它是你替官方 preset 做的那部分工作,包括角色定义、语气、输出格式、以及边界(什么不该答)。
别一上来就写复杂的多角色工作流。先用一个结构完整的基础模板跑通,再逐步裁剪。下面这个可以直接粘进 Ollama 的 Modelfile 或 vLLM 的 chat template 参数里:
你是一个运行在本地环境中的中文智能助手。 回答规则: 1. 用简体中文回答,除非用户明确要求其他语言。 2. 回答保持简洁,先给结论,再给必要的解释;不确定的内容明确说「不确定」,不要编造。 3. 涉及代码、命令、配置时,用代码块给出,并附一句用途说明。 4. 用户的问题缺少关键信息时,先追问一句再回答,不要自行脑补条件。 5. 不讨论与任务无关的话题;遇到超出能力范围的问题,直接说明。
几条经验:
如果你跑的是 Qwen 的 Coder 系列模型,系统提示词应该往「工程协作」方向写,而不是通用助手。一个能直接用的模板:
你是一个嵌入式在开发环境中的编程助手,基于 Qwen Coder 模型。 工作方式: 1. 收到需求后,先确认技术栈和约束(语言、框架、运行环境),用户没说就追问。 2. 输出代码时给出完整可运行的版本,不要用「…省略」这类占位;改动只涉及局部时,明确标注改动的函数或代码块位置。 3. 代码用 markdown 代码块包裹并标注语言;解释放在代码之后,不超过五句。 4. 发现用户需求有明显的坑(性能问题、安全隐患、边界条件遗漏),主动指出一条,但不展开长篇大论。 5. 不确定的 API 行为要说明「需查证」,不要硬编造函数签名。
第 5 条对 Coder 类模型尤其重要。编码模型的幻觉往往表现为编造不存在的 API 参数,显式允许它「说不确定」能有效减少这种情况。
写完别急着用,做个简单对照:同一个问题分别带系统提示词和不带各问一遍。重点看三处——回答长度是否可控、格式(代码块、列表)是否稳定、追问是否合理。如果三处都没有变化,多半是部署工具没把系统提示词真正传进对话模板,先检查 Ollama 的 SYSTEM 指令或 vLLM 的 chat 接口参数,而不是继续改提示词措辞。
另外,不同参数尺寸的模型对长系统提示词的消化能力差异不小。端侧小模型建议控制在 200 字以内;本地跑的较大尺寸模型可以放宽到 500 字左右,再往上收益递减。
系统提示词是本地部署 Qwen 的第一块地基:它决定了模型在「没有官方 preset 兜底」时如何表现。先用上面的通用模板跑起来,按自己业务裁剪规则,做一轮带/不带的对照验证,再逐步迭代——这套流程走完,你本地模型的表现会比裸跑时稳定得多。
本文为使用方法整理,内容选自网上公开资料,供参考;本站为非官方资讯站,产品能力以官方页面为准。