
1. 为什么质检判定会成为智能制造里最头疼的环节做了几年智能制造相关的AI落地项目我越来越确定一件事质检环节的判定问题远比识别问题更值得花时间去解决。你看产线上一套视觉检测系统识别缺陷、定位缺陷位置这些环节在深度学习成熟之后其实已经相对稳定了真正让项目卡壳、让产线工程师头疼的往往是最后那一步——系统看出来了但它到底该不该判不合格这个缺陷算轻微还是严重要不要返工这些判定问题如果处理不好前面再准的识别模型也白搭。制造业里质检判定的复杂程度真的只有干过的人才知道。同样是表面划痕出现在功能面上和出现在非功能面上结论完全不同同样是色差A客户能接受的范围和B客户能接受的范围可能差出好几个等级。传统机器视觉用阈值、规则、边缘检测那一套遇到标准模糊、缺陷形态多变的情况就力不从心。后来大家开始上深度学习模型模型确实看得更准了但判的环节反而更模糊了——因为模型输出的是一堆概率值和类别标签产线要的不是概率是明确结论。这时候提示工程的价值就体现出来了。我近两年在多个质检项目里尝试用提示工程来重构判定环节效果相当明显同一套视觉模型只改提示词的设计方式判定一致性可以从不到70%拉到95%以上。这篇文章我就把整个思路、架构、踩坑过程完整拆开讲适合正在做质检AI落地、或者正准备给现有视觉系统加智能判定能力的团队参考。2. 判定困境的本质不是模型不够聪明而是判定标准没有真正表达出来搞提示工程之前得先想明白一个问题质检判定到底难在哪我自己的体会是这事的本质矛盾在于——产线里的判定标准是一套活的、隐性的经验而现有的AI系统只能处理死的、显性的规则。2.1 质检判定标准的三层结构在制造业现场一份看起来写得很详细的《检验作业指导书》真正落到老师傅手里执行时会变成完全不同的东西。我把质检标准的实际构成拆成三层第一层是书面标准。就是挂在工位上、写在文件里的那些内容目视无明显划痕直径0.3mm以下气孔允许存在。这些文字看似明确实际执行起来全靠个人理解。第二层是经验标准。老师傅看一眼工件嘴上说这个不行你问他为什么他能说出一堆理由但这些理由往往没法完全写进指导书。比如某种纹理在特定光照下看起来像裂纹老手知道那是材料本身的纹理新手就容易误判。第三层是客户隐性标准。这是最麻烦的。客户验收时不会把所有要求都写进合同但退货时会告诉你这批外观不行。到底是什么不行很多时候要靠质量工程师反复沟通、试错才摸清楚。传统视觉系统只能处理第一层把规则固化成参数。深度学习模型能处理到第二层的一部分但它的判断依据是隐性的特征分布不受控。而提示工程的价值在于它提供了一种把这三层标准翻译成模型能理解的语言的方式让判定过程有迹可循。2.2 模糊到底出在哪个环节我复盘了多个质检项目后发现模糊感主要来自三个地方第一个是类别边界模糊。合格与不合格之间不是一条清晰的线而是一个过渡带。比如铸件表面的轻微砂眼单看标准很难说算不算缺陷得结合位置、数量、大小综合判断。模型在这类边界样本上的输出往往是各打五十大板——给出一个接近0.5的概率等于没说。第二个是上下文缺失。模型只看到了一个局部图像块但判定结论需要的是全局上下文这个缺陷在零件的哪个位置零件用在什么场景这批订单的客户容忍度如何没有这些信息模型看到的就是图像特征而不是质量问题。第三个是输出不可控。模型有这个能力判断但输出形式千奇百怪。有时候它自己补充一句建议复检有时候直接下结论而且给结论的时候不说明依据。产线系统拿到这种输出根本没法自动化处理。有意思的是这三个问题在提示工程层面都有对应的解决手段而且不需要动模型本身。这也是我为什么推崇先做提示工程、再考虑微调的原因——成本低、见效快、可解释性强。3. 质检场景提示工程架构四个关键设计维度真正动手写提示词之前我建议先搭一个架构框架不要想到哪写到哪。这里我把自己总结的一套架构分享出来按重要性排序系统角色设定、判定规则注入、推理路径引导、输出格式约束。3.1 系统提示词给模型一个质检工程师的身份和边界我见过太多人写系统提示词就是一句话你是一个质检助手请判断工件是否合格。这种写法和没写差不多。质检场景里系统提示词至少要包含四类信息角色定义不只是质检工程师而是在某某产线从事外观检验10年的质检工程师角色越具体模型调用的知识模式越贴近真实场景。任务边界明确告诉模型哪些属于它的职责范围哪些不属于。比如你只负责基于提供的图像和检测数据做出判定不负责分析设备故障原因。判定原则写明首要原则是防止不良品流出还是兼顾产线效率这个倾向不同同样的缺陷会得到完全不同的结论。禁止事项明确模型不该做什么比如不得仅凭单一特征下结论不得使用可能大概等不确定表述。我做过一个实验两组提示词一组只有简单的角色定义一组包含完整的四类信息在同样的200个真实检测样本上跑判定一致性从71%提升到了88%。差距非常大而且完全不需要改模型。3.2 判定规则注入把老师傅经验编码进提示词这是整个提示工程架构里最核心的部分也最考验对业务的理解深度。所谓判定规则注入就是把前面说的三层标准——书面标准、经验标准、客户隐性标准——转写成模型能利用的文本规则。具体写法上我推荐用条件-结论的结构化语句比如缺陷判定规则 1. 若缺陷类型为划痕且位于功能面则直接判定为不合格 2. 若缺陷类型为划痕且位于非功能面且长度小于5mm则判定为合格 3. 若缺陷类型为气孔且数量小于3个且单个直径小于0.5mm则判定为合格 4. 若缺陷类型为气孔且位于密封面无论大小数量直接判定为不合格 5. 若同时存在多种缺陷以最高严重等级作为最终判定结论。这里有几个容易踩的坑。第一个是规则之间要互斥不能出现同一条缺陷既满足规则2又满足规则4的情况否则模型会无所适从。第二个是规则的颗粒度要适中太粗解决不了问题太细提示词会膨胀到模型处理不过来的程度。我曾经给一个项目写了80多条规则结果模型准确率反而下降了后来精简到30条效果反而更好。第三个是要把规则按优先级排序让模型先处理一票否决类的强规则再处理需要综合判断的弱规则。3.3 思维链引导逼着模型把判定依据说清楚质检判定最怕的就是模型凭感觉给结论。我让模型先输出推理过程、再给结论这招在多个项目里都被证明有效。具体做法是在提示词里加入类似这样的指令请按照以下步骤进行分析 第一步描述图像中检测到的所有缺陷特征包括类型、位置、数量、尺寸 第二步对照提供的判定规则逐条评估每个缺陷是否命中规则 第三步如果存在规则冲突或模糊地带结合缺陷位置和零件功能进行分析 第四步给出最终判定结论。这个做法表面上看只是把输出结构调整了一下实际上带来了两个好处其一模型必须先生成可验证的中间描述这天然降低了幻觉概率。当模型需要逐条描述我看到了什么时它会比直接下结论时更克制。实测中加了思维链引导之后模型描述缺陷特征与人工复检结果的一致性显著提高了。其二输出的推理过程可以直接用于追溯。质量部门最怕的就是系统判了不合格但追问为什么时说不出来。有了思维链输出每一步都有据可查这解决了很多管理层面的信任问题。需要提醒的是思维链不是越长越好。我发现对质检场景来说4到5个固定步骤就足够了步骤太多模型容易在前面绕圈子、后面草草收尾。3.4 结构化输出约束让判定结果能直接接入MES系统提示工程做完了判定结论最终要交给产线系统去执行是放行、返工还是报废每一步都有后续操作。所以提示词的输出格式设计必须跟MES系统的接口对齐。我常用的输出格式是JSON并且在提示词里给出明确的schema要求{ defect_list: [ { type: 划痕, location: 非功能面, count: 1, max_size_mm: 3.2, severity: 轻微 } ], conclusion: 合格, confidence: 高, reasoning: 缺陷位于非功能面长度为3.2mm小于5mm阈值未命中其他否决规则 }这里有个细节值得注意confidence字段不要用数字概率用高/中/低这种离散值。原因是多模态模型给出的概率数字并不具备严格的统计意义反而会误导下游系统。离散等级更容易让产线系统做出稳定的分支判断。输出格式约束这件事很多人觉得不重要实际上它直接决定了整个方案能不能自动化落地。如果每次输出的格式都变光是写解析脚本和异常处理就够喝一壶的。4. 实操记录一个五金件表面缺陷判定项目的完整迭代过程光讲理论不过瘾我把最近做的一个真实项目过程完整复盘一遍。某五金加工厂要做一套针对冲压件的表面质检AI系统产线上原来的做法是人工目检漏检率高、标准不稳定厂里想用多模态视觉模型做自动判定。项目本身不复杂但提示词的迭代过程非常有代表性。4.1 项目背景与第一版方案为什么效果惨不忍睹这个厂的主要产品是一批结构件表面缺陷类型有划痕、压伤、氧化色差、毛刺、轻微变形五种。我最初拿到的需求描述就是一张表格里面写着每种缺陷的判定标准但语焉不详比如划痕不允许明显可见氧化色差不允许影响外观。第一版我偷懒了直接写了个通用提示词丢进去大意是你是质检专家请根据图片判断工件是否合格。结果在120个标注好的测试样本上判定准确率只有64%而且输出极不稳定——同一个样本跑了三次两次合格一次不合格。产线工程师看完直摇头说这还不如老师傅来得靠谱。复盘时我发现了几个问题首先是判定标准在提示词里完全没体现模型只能靠自己的常识去理解什么是表面缺陷理解方式跟工厂实际标准差异很大其次是输入信息不完整我只传了一张图完全没告诉模型零件的功能面在哪里、客户对这批货的要求是什么最重要的是没有约束模型的输出行为它经常答非所问甚至偶尔蹦出这是一个美丽的工件这种废话。4.2 关键迭代一把判定规则写进提示词之后的变化第一版失败后我开始认真做规则梳理。带着厂里的质检主管和老师傅开了两次会把每条缺陷标准都追问到可操作的程度。比如划痕不允许明显可见这句话老师傅实际的执行口径是划痕长度大于5mm不管深度如何直接判不合格划痕长度在2到5mm之间看深度和位置功能面从严、非功能面从宽划痕长度小于2mm一般放行但如果后续有抛光工艺需要看具体情况。类似的规则我把五种缺陷全部梳理清楚了一共整理出28条结构化规则。写进提示词之后模型的表现一下子上来了判定准确率从64%提升到82%输出稳定性也好了不少。但还有一个问题没解决——模型对疑难边界的处理仍然不稳定。4.3 关键迭代二加入少样本示例后的质变统计了一下剩余的18%错误里绝大部分集中在两类边界情况一是多个轻微缺陷同时存在单独看都合格合起来怎么办二是缺陷特征不明显模型识别得模棱两可。这两类恰恰是规则文字最难覆盖的。解决思路就是加少样本示例。我在提示词里加入了三条典型的边界案例每条包含图像特征描述、推理过程和最终判定。比如示例1 图像特征工件非功能面存在一条长度约4mm的浅划痕同时表面有2处直径约0.3mm的微小压伤点。 推理过程划痕长度未超过5mm阈值且位于非功能面压伤点数量为2未超过3个的上限但有轻微密集的趋势需结合外观要求从严判断。 结论不合格。原因多个轻微缺陷同时存在外观综合质量下降判定从严。这三条示例不是随便找的是我专门挑出来的、在历史质检数据里由质量主管仲裁过的典型案例。加入少样本示例后模型在边界样本上的判定稳定性有了明显提升整体准确率到了91%但距离上线目标还有差距。4.4 关键迭代三系统提示词的重构和输入增强最后这一步是把整个架构重新梳理了一遍。我之前把规则、示例、推理步骤全都堆在了一段提示词里结果模型有时候会跑偏——该按规则判的时候跟着示例跑了该参考示例的时候又把规则丢了。重构时我把系统提示词拆成了清晰的模块角色定义、判定总原则、结构化规则、少样本示例、推理步骤、输出Schema。更关键的一步是改进了输入内容——不再只传原始图像而是额外传入了检测算法的前置输出包括缺陷检测框坐标、类型预判、尺寸测量值等。这些信息本身来自另一套视觉模型但把它们作为文本附加信息传给判定模型相当于给判定模型递了一张检查单让它不用从零开始看图而是基于已有的检测结果做裁决。这一步的效果非常显著。最终在500个真实样本的测试集上判定准确率达到了96.5%判定结果与人工仲裁的一致性超过了93%完全满足产线自动化判定的需求。整条链路的完整调用流程最后长这样# 伪代码质检判定主流程 def quality_judgment(image_path, detection_result): prompt build_prompt( rulesrules_28, examplesboundary_examples, reasoning_stepsTrue, output_schemajson_schema ) response multimodal_model( imageload_image(image_path), contextdetection_result, # 检测框、缺陷类型预判等 system_promptprompt ) judgment parse_json(response) return judgment # {conclusion: 合格/不合格, reasoning: ...}整个迭代过程花了大概三周其中写规则开会就占了一周多真正调提示词的时间反而不多。这也印证了我一直以来的看法提示工程的大部分功夫在提示词之外对业务的理解深度才是决定上限的东西。5. 常见问题与排查实录那些年我们踩过的坑提示工程做质检判定坑是真的多。我把自己遇到过的、以及圈子里同行分享过的典型问题整理成了一份速查表按问题现象、可能原因、解决思路三个维度来梳理。问题现象常见原因解决思路同一张图多次判定结果不一致模型采样温度过高或提示词中规则冲突把采样温度调到0或接近0检查规则是否互斥增加确定性指令模型对明显缺陷强行判定合格提示词中从严原则缺失或示例覆盖不足在系统提示词中强化零容忍声明补充同类漏判案例输出JSON格式频繁解析失败输出Schema描述不够严格或模型生成了多余内容使用严格的格式约束措辞在Schema中给字段加枚举值限制模型把疑似缺陷描述成确定缺陷思维链步骤缺失模型跳过了特征描述直接下结论强制要求先描述特征再推理再判定可在推理步骤中要求分级表述换了一批产品后准确率骤降判定规则与新产品的工艺特征不匹配建立按产品族切换的提示词模板维护多套规则库提示词越来越长但效果越来越差规则和示例冗余模型注意力被稀释精简规则数量移除低价值示例将长文本拆分成模块5.1 模型嘴硬问题它压根没看清楚却非要给结论这大概是质检场景最危险的问题。大模型本身就倾向于回答问题你给它一张模糊的图它宁可瞎猜一个结论也不愿意承认自己看不清楚。但如果模型看不清时强下结论后果就是不合格品流出这在制造业是不可接受的。我的处理方案是在提示词里加入一个置信门槛机制明确告诉模型当无法清晰识别缺陷特征时必须输出无法判定并触发人工复检流程。同时在思维链步骤里要求模型先判断图像质量是否满足判定需求比如存在反光、遮挡、分辨率不足等情况时直接走复检分支不进入判定流程。这个门槛机制把模型从必须给结论的困境里解放出来让它敢于说我不确定。5.2 判定标准的漂移问题换了批次就翻车产线质检一个很现实的问题是同一款产品不同批次的材料、模具状态、工艺参数会有波动导致正常品的外观特征也在变。如果提示词里的判定规则写得过于绝对比如划痕长度大于5mm即不合格遇到一批表面纹理整体偏粗的产品模型就会大量误判。应对办法是建立一个提示词模板的参数化机制。把容易随批次变化的部分——比如尺寸阈值、数量上限、位置敏感度——提取成模板变量由工艺工程师根据每批次的实际标准填写。这样提示词本身保持稳定只有变量部分随批次切换。我在一个连接器外观检测项目里用了这个机制换批次时只需要更新一个配置文件不需要动提示词正文。5.3 幻觉问题模型脑补出不存在的缺陷多模态模型的幻觉在质检场景里也有体现。明明表面很光滑的工件模型有时候会因为纹理干扰在思维链描述阶段看到了一个实际上不存在的划痕。这种情况如果只是描述还好最怕它顺着幻觉往下推理最终给出不合格的结论。我做过对比实验发现思维链对幻觉有抑制作用但无法根除。更有效的办法是在输入侧做处理把检测算法输出的缺陷框叠加在图像上让模型只关注框内区域、忽略框外背景。这么做之后由背景纹理引发的幻觉降低了七成以上。这也说明了为什么提示工程在质检场景里必须跟前置视觉算法配合单独靠提示词解决不了所有问题。6. 落地建议与个人体会说了这么多最后聊点实际的建议。如果你所在的团队正准备用提示工程来改造质检判定环节我觉得有三件事值得提前想清楚。第一先想清楚哪些环节该用提示工程哪些不该用。提示工程最适合的是判定环节也就是已经有了检测结果、需要结合标准做裁决的部分。如果零件识别、缺陷定位本身还没做好那是另一个领域的问题别指望靠提示词来补。第二团队里必须有一个真正懂业务的人深度参与。我在多个项目里发现决定提示工程上限的往往不是技术能力而是能不能把老师傅脑子里的经验挖出来、转写成规则。这个人需要既听得懂产线语言又理解模型的思维方式。如果团队里没有这样的人建议先花时间培养或者借助质检工程师的力量而不是闷头调提示词。第三建立评测集和回归机制。提示词的每次改动都可能引入新的问题一定不能靠感觉判断改得好不好。我每次项目都会从历史质检记录里抽取几百个样本覆盖各类缺陷和边界情况做成固定的评测集。每次改提示词就跑一遍评测集对比准确率、召回率、稳定性指标用数据说话。我个人在实际操作中的体会是提示工程在质检判定这件事上真正的价值不是让模型更聪明而是让判定过程更透明。它逼着我们把那些藏在老师傅脑子里的、写在客户抱怨里的隐性标准一条条挖出来、写清楚、放进去。哪怕最终某些环节还是要上微调模型这个梳理过程本身也值回票价了。如果你正在做类似的项目希望这篇复盘能帮你少走几个弯路。最后再分享一个小技巧提示词版本管理一定要用Git或者类似的工具每条改动都留记录。我吃过没做版本管理的亏——有一次改了规则之后整体准确率掉了5%想回退却发现上一版提示词已经找不回来了只能重新调。从那以后每次迭代我都养成了提交版本、写清楚改动内容的习惯这个习惯省下来的时间远远大于养成它花掉的时间。