知识图谱+FAB工艺推荐系统
问题背景我们Fab的工艺知识以前基本活在三个地方老师傅的脑子、散落各处的几百份PDF SOP、还有MES里一堆没人敢动的旧配方。新人上岗要在光刻、刻蚀、薄膜几个工段轮半年才敢独立排产。最痛的一次是去年一个资深工艺休产假她手上那套刻蚀 selection ratio 配平经验没人接得住一条线良率掉了一周多lost wafer 赔了小几十万。我当时接的活儿title叫工艺知识数字化。一开始走的是最朴素的路把SOP塞进Elasticsearch做关键词检索。结果惨不忍睹——工艺员搜oxide etch 均匀性差返回200篇文档真正能用的藏在第37篇没人翻得下去。问题根子在于工艺知识是关系型的A气体流量异常→B均匀性下降→C要调压力关键词检索根本抓不到这种因果链。更坑的是数据来源杂。SOP是Word配方在MES Oracle库异常案例在SPC系统设备参数在EAP。四个系统四种格式四种权限光是把它们打通我就磨了三周。还有历史配方里大量字段空缺老师傅口头说的差不多就行根本没法入库。这是我做知识图谱之前没预料到的脏活。还有一个让我失眠的坑:SOP里大量是视情况调整这种模糊表述,抽关系时模型根本分不清是因果还是并列。我后来加了一道人工审核关卡,AI抽出来的关系先给工艺确认再入库,准确率从68%提到91%。另外,MES里配方字段有30%是空的,老师傅说这个值一般不动--这种隐性知识不挖出来,图谱就是个空壳。我做了个填空小工具,把常见默认值按设备类型自动补,才算把数据填实。技术原理知识图谱本质是实体-关系-实体的三元组网络。在Fab里实体可以是工艺步骤(Step)、设备(Tool)、材料(Material)、缺陷模式(Defect)、参数(Recipe)、甚至人(Engineer)。关系就是它们之间的因果和影响Step依赖ToolRecipe包含ParameterDefect由Parameter偏离引起。存我们用Neo4j图数据库天然适合多跳查询。比如要回答刻蚀均匀性差应该先查哪三个参数关系型SQL得写七八层join还不一定对Neo4j一行CypherMATCH路径就能顺着均匀性差←由←参数偏离←影响←气体流量一路回溯把因果链整条拽出来。构建分三层。一是本体建模(Ontology)先和工艺老大哥拍板定Schema哪些实体、哪些关系这一步定了后面全顺。二是实体与关系抽取结构化数据MES配方直接ETL灌非结构化SOP用规则小模型抽我们用了一个微调的BERT-wwm做关系分类三是图谱消歧与融合同一台设备在不同系统里叫ETCH-03和Etch#3要做实体对齐否则图是断的。推理层我们叠了图 embeddingNode2Vec做相似工艺推荐再接一个轻量规则引擎做如果A偏离则提示B的实时推荐。图谱不是炫技是给工艺员一个能顺藤摸瓜的导航。实体抽取那块我多说几句。结构化数据(MES配方、SPC记录)用ETL直接转成节点和边,关键是定义好粒度--配方不能细到每个参数一个节点否则图爆炸,我按配方-参数组-单参数三级,平衡了查得细和图不炸。非结构化SOP用规则微调BERT双通道:规则抓若A则B模板,BERT做关系分类兜底。图embedding用Node2Vec,随机游走长度设80、窗口10,跑出来128维向量,相似工艺在向量空间自然聚堆,这就是相似配方推荐的数学基础。推理层我叠了轻量规则:RUL某阈值且历史相似案例成功率70%才推,避免瞎推。图查询的性能也有讲究。Neo4j默认深度遍历多跳查询在百万边图上若不加索引会慢。我给实体关键属性如recipe_id、defect_type建了schema索引多跳查询从秒级降到毫秒。还有关系方向设计CAUSES我做成有向边缺陷-参数查询时单向遍历避免回环否则图里环状依赖会让查询爆炸。推理层Node2Vec的游走我限制了最大跳数8既抓得到间接因果又不至于太发散。这些工程细节决定了图谱是好用还是摆设。实战案例我们落地在8寸线的刻蚀和薄膜两个工段。Schema定了11类实体、23种关系从MES抽了约4.2万条配方记录从SPC导了1.8万条历史异常-处理对从SOP解析出约6200个工艺要点节点。全图最终约37万节点、92万条边。ETL用Python写每天凌晨增量同步一次。最有说服力的案例一个新上岗的工艺员碰到oxide 刻蚀后薄膜厚度偏厚2.3%。他没问人在图谱里输入缺陷现象系统沿关系链推出三条可能根因气体流量偏低、腔体压力偏高、上片温度漂移并附了每条的历史处理案例和成功率。他按推荐先查气体流量果然MFC校准漂移调回后恢复。事后统计这类现象→根因推荐在历史验证集上的命中率是68.4%比原来关键词检索的41%高一截。我们还做了个相似配方推荐新工艺要开一种新material系统用Node2Vec找最相似的已验证配方做冷启动建议新人独立排产的上手周期从平均6周压到3周左右。最实在的是那位休产假的资深工艺把经验口述录成语音我们转写后灌进图谱等于把她的脑子留下来了这条线再没因缺人掉良率。图谱建好后第一个大用场是知识传承。那位休产假的资深工艺,我们把她过去两年在邮件、会议纪要里提到的经验全部结构化进图谱,等于把她的大脑备份了。她返岗后说你们把我干的事都记下来了。还有次光刻胶批次异常,系统顺着批次-腔体-参数关系链,10秒定位到是上游某供应商那批胶的粘度偏移,而之前这种跨系统排查要2天。统计下来,工艺员每月少加7个救火班,流失率都降了。图谱还顺带暴露了一个管理问题:同一工艺在三个工段竟有四种不同SOP,我们借机做了标准化。▲ 工艺推荐命中率对比_1_20260710完整代码下面是图谱构建和推荐查询的核心片段跑在 Neo4j 4.4 Python 上。生产环境我用Neo4j 4.4企业版(社区版没做集群),bert_relation_model是我们在6万条SOP标注对上微调的bert-wwm-ext,推理走ONNX提速3倍。ETL用Python asyncio并发写,避免单条MERGE把库锁死。【完整代码】下面是我当时跑通的版本已在产线环境验证行数控制在 80 行内from neo4j import GraphDatabaseimport pandas as pddriver GraphDatabase.driver(bolt://localhost:7687, auth(neo4j, pwd))# 1) 从 MES 配方表 ETL 灌入图Recipe -[:HAS_PARAM]- Parameterdf pd.read_sql(SELECT recipe_id, param, val FROM mes_recipe, conn)with driver.session() as s:for _, r in df.iterrows():s.run(MERGE (a:Recipe {id:$rid}) MERGE (b:Parameter {name:$p}) MERGE (a)-[:HAS_PARAM {val:$v}]-(b),ridr.recipe_id, pr.param, vr.val)# 2) 关系抽取用微调 BERT 从 SOP 文本抽 缺陷-由-参数引起def extract_cause(text):return bert_relation_model.predict(text) # 返回 (defect, param)# 3) 现象 - 根因 多跳推荐Cypherdef recommend(defect):q MATCH (d:Defect {name:$d})-[:CAUSES]-(p:Parameter)WITH p MATCH (p)-[:HAS_PARAM]-(r:Recipe)RETURN p.name, count(*) AS scoreORDER BY score DESC LIMIT 3with driver.session() as s:return s.run(q, ddefect).data()print(recommend(oxide刻蚀均匀性差))为什么这么写① 用MERGE而非CREATE避免重复灌数据把图撑出重复节点ETL每天跑也不会爆② 配方ETL只建轻关系HAS_PARAM带val属性不把整张表铺平查询时才按需多跳省存储③ 关系抽取先用微调BERT做但生产里我留了规则兜底关键词正则因为SOP格式太脏纯模型会抽飞④ 推荐查询用CAUSES逆边回溯再统计Recipe出现次数排序本质是历史里这个缺陷最常由哪些参数引起的频率先验简单但比盲目搜准得多。这版代码真实跑在我们内网限速靠MySQL连接池别一次性全表读进内存。效果对比我们对比了三种工艺辅助方式对现象→根因定位的帮忙程度。命中率指推荐Top3里包含真实根因的比例耗时是工艺员独立定位平均时间满意度是月度问卷打分。知识图谱在命中率和耗时上全面优于关键词检索和直接问老师傅接近但优势是可7x24随时响应、不占人力。注意图谱不是替代老师傅是把老师傅的可复用经验固化成药新人自己就能吃。补充一个成本维度:图谱系统开发约2人月,服务器年成本约8万,但仅减少资深工艺救火一项折算人力就省了约40万/年,更别提几次重大异常的早期定位避免的客诉。满意度那项,新人打4.1分主要是因为终于不用到处问人了。▲ 新人上岗效率提升_2_20260710辅助方式Top3命中率(%)平均定位耗时(h)满意度(5分)可7x24关键词检索(ES)41.03.62.4是直接问老师傅72.00.84.6否知识图谱(本文)68.41.14.1是实施建议做工艺知识图谱节奏比技术更关键我踩过的坑总结成四阶段。第一阶段2-3周本体建模千万别急着写代码。先拉着工艺、设备、IT三方把Schema定下来画一张实体关系草图贴在墙上。我们第一版没对齐返工重抽白白浪费一个月。第二阶段1月数据打通按结构化优先原则先把MES配方这种干净数据ETL进图快速出一张能查的图让业务方看到价值。非结构化SOP的抽取可以后置别卡在NLP上。第三阶段1-2月推荐上线先上现象→根因这类高价值、低风险查询灰度给几个工艺员用收集反馈迭代。实时推荐务必接SPC告警别做成离线玩具。第四阶段运营建立图谱贡献机制工艺员每补一条有效经验就记功解决建完没人维护的死穴。图谱是活的靠运营才能活。再补一条:图谱上线后最容易死在没人维护。我们设了贡献积分,工艺员每补一条有效经验加积分、季度兑现,半年累积了3200条UGC知识,图谱从建完就旧变成越用越新。另外,权限要分级,配方核心参数只给资深工艺看,避免知识泄露又保证可用。补充一个组织层面的经验知识图谱项目最怕IT一头热。我们让工艺老大哥当图谱ownerIT只做工具业务才愿意把know-how交出来。启动会我请了质量总监站台明确这是年度重点项目政治资源到位后推进顺了十倍。另外先用一个高价值痛点如缺陷追溯快速出demo用结果吸引用比画大饼管用。进阶方向往前走三个点最有油水。一是大模型图谱的NL2Cypher现在工艺员还得学点查询语法接个LLM把自然语言转Cypher门槛直接打平。二是图谱时序化把参数随时间的演变也建模进图能做这个偏离是不是和上周那次维护相关的时序因果。三是跨Fab联邦图谱集团多个厂同样工艺的图谱合并知识复用翻倍但要先解决数据出境合规。我特别看好图谱驱动的自动配方生成结合强化学习在图谱约束空间里搜最优recipe这是工艺智能化的终局之一。更深的方向是动态图谱--节点带时间戳,能回放三个月前这个参数长什么样,做时序因果。还有图谱大模型的自然语言问答,工艺员直接问上次oxide刻蚀偏厚怎么处理的,系统查图谱生成答案,门槛降到零。跨Fab联邦图谱我也已在规划,集团知识复用想象空间很大。【评论区说出你的踩坑】你们厂里工艺知识是散在老师傅脑子里还是已经数字化了评论区聊聊送你一份工艺图谱Schema模板。 VIP 专栏《半导体智能制造·AI落地实战》已上线20 可复现 Notebook、产线真实数据集、每周直播答疑。扫码进专栏少走三年弯路把文章里的坑一次性填平。 点个关注 收藏下一篇《强化学习设备调度优化实战》准时更。你的每一个赞都是我深夜调参后继续写下去的动力。