DeepSeek 自检指令怎么写:让模型先审再答
很多人抱怨大模型输出不稳定,其实问题常出在提示词只有「要求」,没有「验收」。DeepSeek 的 R 系列有可开关的深度思考,V 系列走通用对话,两者都吃结构化的约束,而不是一堆角色扮演花活。这篇文章讲一种便宜的提质手段:把检查规则写进提示词,让模型自己当质检员,再由你抽查验证。
一、自检的本质:把验收标准前置
普通提示词的结构是「任务 + 要求」,模型一次性产出,错了你才发现。自检指令相当于加了一道闸:任务 + 要求 + 自查清单。关键不是写得多花哨,而是把模糊期望翻译成可逐条判定的检查项。比如「别太啰嗦」是模糊的,「正文不超过 300 字,超出即删除次要论据」是可判定的。
写清单时建议:
1. 每条检查项对应一条硬约束(字数、格式、必含字段、禁用词)。 2. 检查项要能客观回答是/否,避免「更好」「更专业」这类主观词。 3. 明确发现问题的处置方式:是自行修正后再输出,还是标注出来交给你裁决。
二、V 系列:输出前自查清单模板
V 系列适合日常对话和中等复杂度任务,直接在提示词尾部加一段自查要求即可。可复制的模板:
【任务】 为我们的智能家居 App 写一条活动通知,面向已购用户,说明 3 月会员续费享 8 折。 【硬约束】 1. 正文不超过 120 字,另起一行给标题(不超过 15 字)。 2. 必须包含:活动时间、折扣幅度、续费入口名称「我的-会员中心」。 3. 禁用感叹号超过 2 个;不得出现「最优惠」等极限表述。 4. 语气:像客服通知,不像营销短信。 【输出前自检】 输出前逐条核对上述 4 项约束: - 字数是否超标?超标则删次要句。 - 三项必含信息是否齐全?缺失则补上。 - 感叹号数量与极限词是否合规?不合规则替换措辞。 全部通过后输出最终版本,不要展示核对过程。
注意最后一句「不要展示核对过程」——V 系列没有独立思考开关,自查放在生成前内部完成最干净;如果任务要求公开审计痕迹,可以改成「以「自检」小节列出核对结果」。
三、R 系列:让深度思考覆盖验证环节
R 系列的深度思考本身就带逐步推理,自检指令的最佳用法是让它把「验证」作为推理的明确步骤,而不只是最后回答。适合数学、代码、多条件推理这类错了代价高的任务。模板:
【问题】 某仓库有 A、B 两种货箱共 58 个,A 每箱装 12 件,B 每箱装 18 件, 总件数为 876 件。求 A、B 各多少箱。 【要求】 1. 思考阶段按「列方程 → 求解 → 验证」三步走,验证不可省略。 2. 验证方式:把解代回两个原始条件,分别确认箱数与件数是否吻合。 3. 若验证不通过,回溯检查方程设定,修正后重新验证。 4. 最终回答只给:A 箱数、B 箱数、一行验证等式。
对 R 系列,写「角色扮演」式提示(你是资深数学教授之类)收益不大,把约束和验证步骤写清楚才是杠杆。同时注意:像上面这种一步方程题其实不必开深度思考,V 系列足够;R 系列留给多变量、多分支的复杂推理,省钱也省时间(API 按量计费,具体定价以官方页面为准)。
四、代码场景:让模型跑一遍脑内测试
DeepSeek 代码能力是强项,配合自检效果明显。核心是把「写完就算」改成「写完 + 走查 + 造测试用例」:
【任务】 用 Python 写一个函数 parse_duration(s: str) -> int,把 "1h30m"、"45s"、"2d" 这类字符串转换为秒数,支持 h/m/s/d 组合,非法输入返回 -1。 【自检要求】 完成代码后,依次执行: 1. 走查边界:空字符串、"0m"、"1h30m20s"、乱序如 "30s1h"、含非法字符 "1x"。 2. 对每个用例,先手推期望输出,再逐行核对你的实现是否得出该输出。 3. 发现不一致时修正代码,重复走查。 4. 最终输出:修正后的完整代码 + 一个「用例 → 期望 → 实际」对照表。
本地部署开放权重版本的用户同样适用这套模板——自检指令不依赖任何云端特性,纯提示词层面生效。
五、自检不是免检:你要做的验证
让模型自查不等于你可以不看。模型可能为了「通过检查」而曲解检查项,或修正了一处又引入新问题。低成本验证方法:
1. 抽查关键约束:字数、格式、必含字段这类能用肉眼或脚本 10 秒确认的项,每次都看。 2. 让验证可复算:代码任务把对照表贴回本地真跑一遍;数学任务把验证等式代一遍。 3. 建立反馈回路:发现某类错误反复出现,就把它新增为一条检查项,清单会越用越准。 4. 分层使用:草稿类任务用简短自检甚至不检,交付类任务上完整清单,不必处处加闸。
自检指令的价值在于把「你看出来的问题」提前变成「模型自己拦下的问题」,写清约束、留出验证步骤、再抽查兜底,三件事做齐,输出质量会稳定一个台阶。
大模型网摘