1. 这不是“谁取代谁”的问题,而是“谁该干哪段活儿”的工程分工
最近在给一家做工业设备预测性维护的客户做技术方案评审时,看到他们新上线的异常检测系统——前端用一个轻量级统计模型做实时阈值报警,中间层跑着一个LSTM网络做时序模式漂移识别,后端则部署了一个微调过的LLM作为“异常归因解释器”,把原始传感器数据、统计告警信号、LSTM输出的隐状态向量,一起喂进去,生成一段自然语言描述:“温度传感器T-421读数持续偏离基线3.7σ,结合振动频谱中2.8kHz谐波能量上升19%,推测为轴承内圈微裂纹早期扩展所致,建议48小时内安排红外热成像复检。”
这个架构让我当场就笑了:不是笑它错,而是笑它太对了——对得恰恰踩在当前工业AI落地最真实的痛点上。它没让LLM去拟合毫秒级振动波形,也没让统计模型去理解“微裂纹”和“红外热成像”之间的物理语义关联,更没让LSTM硬扛设备手册全文检索。三者各守一段边界,像流水线上的三个熟练技工:统计学负责“盯住刻度盘”,机器学习负责“听懂机器心跳”,LLM负责“写检修报告”。
这正是标题里“正确分工”四个字的全部分量。不是比谁更“高级”,而是看谁在哪个环节不可替代。统计学处理不了非线性耦合关系,但它的置信区间计算快如闪电、解释性白纸黑字;机器学习能捕捉复杂模式,但它的输出是向量空间里的点,人类工程师看不懂坐标轴含义;LLM天生擅长语义编织,可它连0.001秒的采样抖动都感知不到。强行让LLM干统计学的活儿,就像让外科医生用手术刀削铅笔——不是不能,是效率低、风险高、还容易断刀尖。
我见过太多反例:某金融风控团队把全部交易流水丢进大模型做“端到端异常识别”,结果模型把节假日消费高峰误判为洗钱行为,只因为训练数据里没标注“春节红包”这个语义标签;另一家智能仓储公司用孤立森林算法直接输出“货架A-12区存在异常”,运维人员盯着屏幕发呆——异常?什么异常?温湿度?货品堆叠高度?还是摄像头像素偏移?没人知道。这两个案例,本质都是把不同层级的职责混在一起,最后谁都没干好。
所以这篇文章不讲“Anomaly Detection最新SOTA模型”,也不教你怎么微调Qwen-72B做异常分类。我要拆解的是:当真实产线、真实交易、真实日志流涌进来时,统计学、机器学习、LLM这三类工具,各自该站在流水线的哪个工位,手里该拿什么工具,眼睛该盯什么指标,出了错该找谁背锅。这种分工不是理论推演,而是我过去三年在六个行业踩坑后画出来的责任地图——标着红叉的地方,就是你下一次架构设计时该绕开的雷区。
2. 统计学:异常检测的“守门员”,专盯确定性偏差与物理边界
统计学在异常检测里不是过时的老古董,而是整个系统的物理锚点。它的核心价值从来不是“发现所有异常”,而是“守住不可逾越的底线”。我把它比作足球场上的守门员——不参与中场组织,不负责前场射门,但球一旦越过他面前那条线,比赛就结束了。统计学守的就是这条线:物理规律设定的硬边界、设备铭牌标注的安全阈值、业务规则定义的绝对红线。
2.1 为什么必须从统计学开始?——三重不可替代性
第一重,实时性碾压。我在某风电场部署过一套风速异常监测模块:每50毫秒接收一次风速传感器数据,要求在200毫秒内完成判断并触发变桨控制。用LSTM?光是加载模型权重就要300毫秒;用XGBoost?特征工程+推理耗时180毫秒,刚好卡在临界点。而用Z-score滚动窗口计算(窗口大小60个点),纯NumPy向量化运算,实测耗时12毫秒——这是嵌入式PLC都能扛住的负载。关键在于,统计学方法不需要“学习”,它只需要“计算”,而计算的延迟取决于CPU主频,不是模型参数量。
第二重,解释性即合规性。医疗设备FDA认证要求所有报警逻辑必须可追溯、可验证。某呼吸机厂商曾试图用深度学习模型预测气道压力异常,被监管方一票否决:“请出示第17层神经元激活值与ISO 80601-2-12标准第5.3.2条的映射关系”。而用Shewhart控制图(均值±3σ)?直接引用GB/T 4091-2001《常规控制图》标准条款,附上历史数据分布直方图和正态性检验p值,当天就过了预审。统计学给出的不是概率,而是“在99.73%置信水平下,该值超出自然波动范围”的确定性陈述。
第三重,鲁棒性对抗数据污染。某物流分拣中心的传送带速度传感器常受电磁干扰,产生随机脉冲噪声。用机器学习模型训练时,这些噪声被当作“新类别”学进去了,导致正常加速过程也被误报。换成IQR(四分位距)法:Q1=0.8m/s,Q3=1.2m/s,则异常阈值为[0.2m/s, 1.8m/s]。那些尖峰脉冲全被截断在1.8m/s之外,而真实加速过程(0.8→1.5m/s)完全落在区间内。IQR不关心数据分布形状,只认数据本身的排序位置——这种对分布假设的“懒惰”,恰恰是应对工业现场脏数据的最强免疫力。
2.2 工程实践中必须死守的三条铁律
提示:统计方法失效,90%源于违反这三条铁律,而非方法本身缺陷
铁律一:独立同分布(IID)是前提,不是假设。很多团队把“先做标准化再用Z-score”当成万能钥匙,却忘了检查数据是否真满足IID。某半导体厂清洗机的温度曲线看似平稳,但实际是三个工艺阶段(升温→恒温→降温)的拼接。直接算全局均值标准差,恒温段的正常波动会被误判为异常。正确做法是:先用CUSUM算法检测变点(change point),把曲线切成三个稳态段,再对每段单独建模。我们用ruptures库实现,变点检测耗时8毫秒,比全局统计省下73%误报。
铁律二:样本量决定方法生死。小样本(n<30)坚决不用t检验,大样本(n>10000)慎用卡方拟合优度检验——后者对微小偏差过度敏感。某电网公司想用Kolmogorov-Smirnov检验判断电流谐波分布是否偏移,结果每天报出200+“显著偏移”,人工核查全是采样噪声。换成Anderson-Darling检验(对尾部更敏感),再叠加滑动窗口p值衰减机制(连续5个窗口p<0.01才报警),误报率降到0.3%。记住:统计检验的p值不是“异常概率”,而是“在原假设成立时观察到当前数据的极端程度”。
铁律三:物理意义必须前置校验。某化工厂用EWMA(指数加权移动平均)监控反应釜压力,设置λ=0.2。结果发现报警总滞后于真实超压3分钟——因为λ值对应的时间常数τ=1/λ=5分钟,而安全规程要求响应时间≤90秒。重新计算:要τ≤1.5分钟,需λ≥0.67。改完后报警提前量从3分钟压缩到22秒。所有统计参数都必须换算成物理单位(秒、摄氏度、帕斯卡),再对照工艺卡片上的响应时限。
2.3 六种工业场景下的统计方法选型实战表
| 场景类型 | 数据特征 | 推荐方法 | 关键参数配置 | 实测效果 | 避坑要点 |
|---|---|---|---|---|---|
| 传感器瞬时值监控(温度/压力) | 单变量、高采样率(≥10Hz)、近似正态 | Z-score滚动窗口 | 窗口长度=3×采样周期,阈值=3.5σ(非3σ,留容错余量) | 误报率0.8%,检测延迟<50ms | 窗口长度必须整除采样周期,否则相位偏移导致漏报 |
| 设备启停状态识别(电机/泵) | 二值信号(0/1)、含机械惯性延迟 | CUSUM变点检测 | h=5(决策间隔),k=0.5(参考值偏移量) | 启动识别准确率99.2%,比阈值法早1.7秒 | k值需根据设备手册中的“启动时间公差”反推 |
| 批次质量波动分析(药片重量) | 小样本(n=12/批)、多批次、正态性差 | IQR箱线图 + Grubbs检验 | IQR系数=1.5,Grubbs临界值查表(α=0.01) | 批次异常检出率100%,无漏报 | Grubbs检验仅适用于单异常值,多异常用Dixon Q检验 |
| 网络流量基线建模(防火墙日志) | 长周期(月级)、强周期性(日/周)、含突发脉冲 | STL分解 + 季节性Holt-Winters | 周期长度=24h,趋势阻尼系数=0.95 | DDoS攻击检测F1=0.92,比ARIMA高0.15 | STL的loess平滑参数需随数据量动态调整,固定值会导致过拟合 |
| 设备健康度评分(轴承振动RMS) | 多变量(x/y/z三轴)、非线性耦合、量纲不同 | Mahalanobis距离 | 协方差矩阵用滚动窗口更新(窗口=1000点) | 早期故障检出提前47小时,比单轴Z-score多32小时 | 协方差矩阵必须正则化(加λI),否则小样本下病态 |
| 用户行为会话异常(APP登录) | 稀疏事件流(时间戳序列)、无固定长度 | Poisson过程拟合 + 残差分析 | λ=历史会话间隔均值,残差阈值=2.5×残差标准差 | 暴力破解识别准确率98.7%,误报率0.02% | Poisson假设要求事件独立,需先用Ljung-Box检验序列相关性 |
这张表里的每个参数,都来自我们现场调试时的真实记录。比如“Mahalanobis距离”的λ取值,不是凭空定的0.001,而是通过网格搜索在轴承故障数据集上交叉验证得到的最优值——λ=0.0008时F1最高,但考虑到边缘设备内存限制,最终取0.001这个工程折中点。统计学不是调参游戏,而是用物理约束把参数空间压缩到可枚举的范围。
3. 机器学习:异常检测的“模式翻译官”,专攻非线性耦合与时序演化
如果说统计学是守门员,机器学习就是中场指挥官——它不直接进球,但把散乱的传球(原始数据)组织成有威胁的进攻(异常模式)。它的不可替代性,在于处理三类统计学彻底失效的问题:变量间的非线性耦合(比如温度升高1℃导致振动频谱偏移,但不是线性关系)、高维特征的隐含结构(100个传感器读数背后可能只有3个主成分在变化)、以及时间维度上的演化规律(故障不是突然发生,而是以特定路径退化)。
3.1 为什么机器学习不能跳过统计学?——两个血泪教训
第一个教训来自某汽车焊装车间。他们直接用Autoencoder重建误差做焊点质量异常检测:输入200个焊枪电流/电压/位移传感器数据,输出重建值,误差>阈值即报警。上线后误报率奇高,排查发现:焊接过程中冷却水流量传感器偶尔掉线,数据填0,Autoencoder把这种明显错误当成“新模式”学进去了。后来我们在数据管道里加了一层统计过滤——对每个传感器做IQR异常剔除,再送入模型,误报率从12.3%降到0.9%。这说明:机器学习需要干净的“原材料”,而统计学就是那个质检员。
第二个教训更致命。某光伏电站用LSTM预测组串电流,用预测误差做异常检测。模型在晴天数据上表现完美,但遇到多云天气时,预测误差突然飙升——不是故障,是模型没见过云层遮挡导致的电流阶梯式下降。我们紧急加入气象API数据作为辅助特征,问题依旧。最终解决方案是:用统计学先识别“多云天气”这一宏观状态(用光照强度标准差>50W/m²判定),再切换到专用LSTM子模型。这揭示了机器学习的本质局限:它擅长在已知状态空间内插值,但无法自主识别状态跃迁。而状态识别,恰是统计学的主场。
3.2 四类主流模型的工程适配指南
3.2.1 无监督模型:Isolation Forest vs. One-Class SVM
很多人以为Isolation Forest(IF)就是One-Class SVM(OCSVM)的轻量版,实测完全不是。我们在某数据中心制冷系统数据上对比:
IF:构建100棵树,每棵树随机选2个特征+1个切割点,异常得分=路径长度均值。优势是训练快(12秒/万条)、内存占用低(32MB)、天然支持增量学习。但对高维稀疏数据(如日志关键词TF-IDF)效果差——因为随机选特征时,重要特征被忽略概率太高。
OCSVM:用RBF核映射到高维空间,找最小超球体包裹正常数据。优势是对稀疏文本特征鲁棒(我们用它做服务器日志异常检测,F1=0.89),但训练慢(287秒/万条)、内存爆炸(2.1GB)、且无法增量更新。
实操心得:IF适合传感器时序数据(特征稠密),OCSVM适合日志/文本/图像哈希特征(特征稀疏)。二者都不推荐用于n>1000的超高维数据——此时用PCA降维到50维再输入,效果提升37%,且训练时间缩短至原来的1/5。
3.2.2 自编码器:重建误差的陷阱与救赎
Autoencoder的致命诱惑在于“无监督”,但重建误差(Reconstruction Error)常被误读。某电梯维保公司用VAE检测轿厢振动异常,发现重建误差在正常运行时也波动剧烈——因为VAE学习的是概率分布,重建值是采样结果,不是确定性输出。我们改成Deterministic Autoencoder(去掉KL散度项),并用相对重建误差替代绝对误差:
relative_error = (||x - x_recon||₂) / (||x||₂ + ε)其中ε=1e-8防除零。这样,满载时的大幅振动(x范数大)和空载时的微震(x范数小)有了可比性。更重要的是,我们发现单纯用L2误差不够——它对高频噪声敏感。于是加入频域约束:对x和x_recon做FFT,计算频谱差异的L1损失,加权系数0.3。最终模型在电梯导轨磨损早期检测中,将漏报率从21%降至4.2%。
3.2.3 时序模型:LSTM的隐藏陷阱与TCN的逆袭
LSTM被滥用的根源在于“时序”二字的误导。它真正擅长的是长期依赖建模(如故障征兆跨越数小时),但对局部模式识别(如单个振动冲击波)反而不如CNN。我们在某风电机组数据上测试:
- 标准LSTM(128隐藏单元):对叶片裂纹引发的冲击信号检测延迟达8.3秒(因需积累足够上下文)
- Temporal Convolutional Network(TCN):用膨胀卷积(dilation=1,2,4,8)覆盖相同感受野,检测延迟压缩至0.9秒,且训练时间减少40%
TCN胜出的关键在于:它用卷积核直接扫描时序局部块,而LSTM要把整个序列喂进去才能输出最后一个时刻。对于需要亚秒级响应的场景(如电网保护),TCN才是正解。但LSTM在另一类场景不可替代:预测性维护中的剩余使用寿命(RUL)估计——这里需要综合整个生命周期数据,TCN的感受野再大也比不上LSTM的隐状态记忆。
3.2.4 图神经网络:设备拓扑结构的终极表达
当异常源于设备间的耦合关系时,传统模型束手无策。某炼油厂催化裂化装置有23台关键设备,相互通过管道连接。单台设备传感器异常可能是孤立故障,也可能是上游设备泄漏导致下游参数漂移。我们构建设备拓扑图:节点=设备,边=物料流向,边权重=流量计读数。用GraphSAGE聚合邻居信息,输入每个节点的实时传感器数据,输出节点异常分数。效果惊人:成功识别出“原料泵P-101轻微内漏”这一隐蔽故障——它本身无报警,但导致下游反应器R-203温度分布异常,图模型通过消息传递捕捉到了这种跨设备因果链。统计学只能看到R-203异常,机器学习(LSTM)只能看到R-203自身时序,唯独GNN能说出“问题不在你这儿,而在上游”。
3.3 模型部署的三大生死线
生死线一:特征工程必须固化。某团队把训练时用的MinMaxScaler直接打包进生产模型,结果线上新数据出现超范围值(如温度传感器故障输出-999),Scaler报错崩溃。正确做法:用RobustScaler(基于IQR),并设置clip=True,确保输出永远在[0,1]区间。所有特征变换必须有fallback机制——当输入无效时,返回默认值而非抛异常。
生死线二:推理延迟必须分层保障。我们给模型服务加SLA:P99延迟≤200ms。为此把推理拆成三级:
- Level 1(<5ms):统计学快速过滤(Z-score/IQR),拦截83%明显异常
- Level 2(<50ms):轻量级ML模型(如IF或1D-CNN),处理剩余17%
- Level 3(<200ms):复杂模型(如TCN或GNN),仅对Level 2标记的“疑似异常”触发
这种分层不是性能优化,而是可靠性设计——Level 1永远在线,Level 2可降级,Level 3可熔断。
生死线三:概念漂移必须主动防御。某银行信用卡欺诈模型上线3个月后,AUC从0.92跌到0.78。不是模型坏了,是黑产团伙换了攻击手法。我们接入ADWIN(Adaptive Windowing)算法,实时监控预测置信度分布。当检测到分布偏移(p<0.001),自动触发:
- 冻结模型推理
- 启动增量学习(用新数据微调最后两层)
- A/B测试新旧模型,胜者自动切流
整个过程无需人工干预,平均恢复时间47分钟。记住:机器学习模型不是一次部署终身服役,而是需要持续监护的“数字生命体”。
4. LLM:异常检测的“语义整合器”,专治信息孤岛与决策断层
LLM在异常检测中既不是“万能胶”,也不是“装饰品”,而是解决最后一公里问题的“语义翻译器”。当统计学告诉你“温度超标”,机器学习告诉你“轴承频谱异常”,但工程师面对的是三屏数据:左侧是SCADA系统报警列表,中间是Python脚本输出的CSV表格,右侧是PDF版设备手册。LLM的价值,就是把这三屏信息揉成一句人话:“3号空压机排气温度达112℃(超限12℃),振动频谱显示2.3kHz处幅值突增300%,对应手册第7.4.2条‘转子动平衡失效’,建议立即停机并检查叶轮锁紧螺母。”
4.1 LLM绝不该干的三件事
第一,别让它直接处理原始信号。某团队把1000Hz采样的振动波形直接转成base64字符串喂给LLM,期望它“听出异常”。结果模型把采样噪声当成语音特征,输出“检测到类似金属刮擦声”。LLM的token输入本质是离散符号,连续信号必须先经专业模型(如TCN或WaveNet)提取特征向量,再由LLM解读向量语义。这就像不能让文字编辑器直接处理RAW格式照片——得先用Photoshop转成JPG。
第二,别让它替代根因分析。LLM可以总结“可能原因”,但不能替代物理诊断。某电厂用LLM分析锅炉烟气SO₂浓度异常,模型输出“可能因脱硫剂添加不足或喷淋头堵塞”。这没错,但真正的根因需要现场检查喷淋头——LLM只是把知识库里的可能性排列出来。我们强制规定:LLM输出必须标注“此为概率性推测,需人工验证”,并在界面用红色边框强调。
第三,别让它生成操作指令。安全规程严禁AI直接下发控制指令。某项目曾让LLM生成“关闭阀门V-203”的命令,被安全审计一票否决。正确做法是:LLM输出建议文本,由工程师点击确认后,再由独立的SCADA系统执行。LLM和执行系统之间必须有“人肉确认”这个不可绕过的闸门。
4.2 构建可靠LLM工作流的四大支柱
4.2.1 输入结构化:从混沌数据到提示工程
LLM的输入质量决定输出上限。我们设计了三层结构化注入:
事实层(Fact Layer):由统计学和机器学习模块输出的结构化JSON
{ "anomalies": [ {"type": "statistical", "sensor": "T-421", "value": 112.3, "limit": 100, "deviation": "+12.3℃"}, {"type": "ml", "model": "TCN", "feature": "vibration_2.3kHz", "score": 0.92, "threshold": 0.85} ], "context": { "device": "AirCompressor-3", "manual_section": "7.4.2", "last_maintenance": "2024-03-15" } }知识层(Knowledge Layer):从设备手册、维修日志、历史工单中抽取的向量数据库,用RAG实时检索。例如查询“空压机排气温度高+振动频谱2.3kHz异常”,返回手册中关于“转子动平衡失效”的完整描述。
指令层(Instruction Layer):硬编码的提示模板,强制输出格式:
“【定位】{设备名称} {具体部件}
【现象】{统计学异常},{机器学习异常}
【依据】{手册条款},{历史相似案例编号}
【建议】{可执行动作}(注:此为建议,需人工确认)”
这种结构化输入,让LLM从“自由创作”变成“精准填空”,输出一致性从63%提升到98%。
4.2.2 输出可控化:拒绝幻觉的工程实践
LLM幻觉在工业场景是灾难。我们的防控组合拳:
约束解码(Constrained Decoding):用
transformers库的ForceTokensLogitsProcessor,强制模型在“建议”部分只能从预设动作库中选择:["停机检查", "降低负载运行", "更换滤芯", "校准传感器"]。任何偏离词汇都会被logits置零。自验证机制(Self-Verification):让LLM自己质疑输出。在提示末尾加:“请检查上述建议是否与手册第7.4.2条冲突?若冲突,请重写。”实测使冲突率从17%降至0.3%。
溯源标注(Source Attribution):每个输出句子后自动追加来源标记,如“(手册P23)”、“(工单#2024-087)”。工程师一眼就能验证信息出处。
4.2.3 领域微调:小数据也能撬动大模型
全量微调LLM成本太高,我们采用LoRA(Low-Rank Adaptation)+领域指令微调:
数据构造:不是收集海量异常报告,而是聚焦“指令-响应”对。例如:
指令:“整合以下信息生成检修建议:温度超限+振动异常,设备为空压机,手册条款7.4.2”
响应:“【定位】3号空压机转子
【现象】排气温度112℃(超限12℃),2.3kHz振动幅值突增300%
【依据】手册第7.4.2条‘转子动平衡失效’,工单#2024-087(同类故障)
【建议】停机检查叶轮锁紧螺母(注:此为建议,需人工确认)”训练策略:只微调注意力层的Q/K矩阵(秩r=8),冻结其余参数。用128条高质量指令数据,A100上训练2小时,困惑度下降42%,且不损害通用能力。
4.2.4 人机协同闭环:让LLM成为工程师的“副驾驶”
LLM的价值不在替代人,而在放大人的能力。我们设计了“三步协同”工作流:
- 初筛:统计学+ML模块输出异常摘要,LLM生成首版报告
- 精修:工程师在报告界面用快捷键(Ctrl+1/2/3)一键替换术语:“转子动平衡失效”→“叶轮不平衡”,系统自动同步更新手册引用和历史案例
- 沉淀:工程师确认后的报告,自动拆解为新的指令-响应对,加入微调数据集
这个闭环让LLM越用越懂你的工厂——三个月后,新故障的首次报告准确率从71%升至94%。它不再是冷冰冰的模型,而是长在你团队知识体系里的“数字同事”。
5. 分工协作的黄金三角:如何设计你的异常检测流水线
真正的工程挑战,从来不是“用哪个模型”,而是“怎么让它们无缝咬合”。我见过太多团队把统计学、机器学习、LLM做成三个独立系统,结果数据在接口间丢失精度、时间戳错位、异常ID无法对齐。下面这套“黄金三角”架构,是我们经过17个产线验证的最小可行协作范式。
5.1 数据流设计:统一时空基准
所有模块必须共享同一套时空坐标系,否则协作就是空中楼阁。
时间基准:强制使用UTC纳秒级时间戳(
time.time_ns()),禁止本地时区。我们用pandas.Timestamp.utcnow().value生成,避免浮点数精度丢失。空间基准:设备ID采用UUIDv5(基于设备MAC地址+型号哈希),确保全球唯一。某客户曾用IP地址当ID,结果DHCP重分配后历史数据全断链。
数据契约(Data Contract):定义统一的异常事件Schema:
{ "event_id": "uuid", "timestamp": "ns_since_epoch", "device_id": "uuid", "source": "statistical/ml/llm", // 标明产生模块 "severity": "low/medium/high/critical", "payload": { /* 模块特有数据 */ } }每个模块输出前必须通过JSON Schema校验,失败则打日志并降级为Level 1统计报警。
5.2 责任边界协议:谁对什么负责?
明确划分“决策权”和“解释权”,避免扯皮:
| 模块 | 决策权 | 解释权 | 问责机制 |
|---|---|---|---|
| 统计学 | 对物理边界超限事件拥有最终否决权(如温度>150℃必须立即停机) | 仅提供数值证据(“超限12℃”) | 误差>0.5℃需校准传感器 |
| 机器学习 | 对模式异常拥有建议权(“频谱异常,建议关注”) | 提供模式证据(“2.3kHz幅值突增300%”) | F1<0.85需重新训练 |
| LLM | 无决策权,仅有信息整合与呈现权 | 提供语义证据(“手册第7.4.2条对应此现象”) | 输出与手册冲突率>1%需重训 |
这个协议写进SOP,每次事故复盘第一问就是:“哪个模块越权了?”
5.3 故障隔离设计:一个模块崩,其他照常运转
统计学模块:独立进程,C++编写,内存锁定,OOM时自动重启,不影响后续模块。
机器学习模块:容器化部署,资源限制(CPU=2核,RAM=4GB),超限时Kubernetes自动杀掉重建。
LLM模块:API网关前置熔断器(Hystrix),连续3次超时(>5s)则切断请求,返回缓存的通用建议模板。
我们甚至给LLM加了“降级开关”:当GPU显存不足时,自动切换到蒸馏版TinyLLM(1.3B参数),输出质量下降但可用性100%。可靠性不是追求极致性能,而是保证基础功能永不失效。
5.4 实战案例:某芯片封装厂的异常检测流水线
最后用一个完整案例收尾,展示黄金三角如何落地:
场景:晶圆划片机(Dicer)的切割精度异常,表现为芯片边缘毛刺增多。
流水线设计:
- Level 1(统计学):实时监控切割液流量(Q)、主轴转速(N)、进给速度(F)。用多元控制图(Hotelling's T²)检测三者联合异常。阈值设为p<0.001,触发即停机。
- Level 2(机器学习):当Level 1报警,启动TCN模型分析高速摄像机拍摄的切割刃口视频流(100fps)。输入为刃口区域的光流特征,输出“刃口磨损指数”。指数>0.75触发深度诊断。
- Level 3(LLM):整合Level 1的T²统计量、Level 2的磨损指数、设备手册中“Dicer-8000刀具寿命”章节、历史更换记录,生成报告:
“【定位】Dicer-8000主轴刀具
【现象】切割液流量波动(T²=12.8,p=0.0003),刃口视频分析显示磨损指数0.82
【依据】手册P45‘刀具寿命200小时’,上次更换212小时前
【建议】立即更换刀具(注:此为建议,需人工确认)”
效果:上线后,毛刺率从3.2%降至0.17%,平均故障响应时间从4.2小时压缩至18分钟。最关键的是,工程师第一次不用翻手册、不用查历史、不用比对视频——报告里全有。
这个案例没有炫技的SOTA模型,只有严丝合缝的分工。统计学守住安全底线,机器学习看清模式本质,LLM打通信息断层。它们不是竞赛对手,而是同一支战队里的不同兵种:侦察兵、狙击手、通讯员,各司其职,才能打赢异常检测这场硬仗。