ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

基于AI大模型的数字化智能工厂:总体框架与架构设计实战

基于AI大模型的数字化智能工厂:总体框架与架构设计实战

简介:这份PPT资料面向制造业数字化转型从业者、智能工厂规划人员及AI技术应用研究者,系统梳理基于AI大模型的数字化智能工厂建设方案。内容围绕智能工厂总体框架、架构设计思路、AI框架赋能应用及挑战前景四大板块展开,涵盖智能工厂定义与特点、发展趋势、核心价值、关键技术分级,以及系统整体架构、技术平台架构、数据架构、软件与硬件架构设计等模块,并深入探讨AI框架在智能调度、预测性维护、质量管控中的落地路径与远景规划。资源包为1个pptx文件,大小7.42MB,以图文并茂的幻灯片形式呈现,便于直接用于方案汇报或内部培训。目前已有336人浏览学习,适合需要快速建立智能工厂整体认知、获取架构设计参考与AI赋能思路的读者,可帮助理解从感知、分析、控制到协同的技术链路,以及数字孪生、大数据、边缘计算等关键技术的应用场景。

1. 数字化智能工厂:大模型进场后,旧架构为什么必须重写

去年帮一家做精密结构件的客户做产线升级复盘,他们两年前上的那套数字化系统其实跑得不算差——MES 在跑、SCADA 在采、看板在亮,但老板一句话把问题点透了:“数据都在,可我要问一句‘三号线上周良率为什么掉了两个点’,没人能在十分钟内给我答案。”这就是传统数字化工厂的天花板:它把数据存下来了,却没把数据变成能对话、能推理、能主动给建议的东西。大模型进来之后,变化不在于多了一个聊天窗口,而在于工厂第一次有了一个能同时读懂工单、工艺参数、设备日志和质检图像的“统一语义层”。这篇笔记要讲清楚的,就是基于 AI 大模型的数字化智能工厂到底该怎么搭总体框架、架构设计时哪些地方必须改、AI 框架赋能时踩过的坑,以及这套东西现阶段值不值得投。适合正在做工厂数字化规划、被要求“接入大模型”但不知道从哪下手的工程师和架构负责人。

2. 总体框架:大模型智能工厂的五层结构怎么切

2.1 从传统 ISA-95 到“大模型增强层”的映射关系

传统智能工厂的架构基本绕不开 ISA-95 那套分层:设备层、控制层、执行层(MES)、管理层(ERP)、决策层。这套分层解决的是“谁管谁”的问题,但大模型进来后,它解决不了“谁理解谁”的问题。我一般会在执行层和管理层之间,硬插一个工业语义与智能体层,这一层不替代任何原有系统,只做三件事:把异构数据翻译成统一语义、把业务问题拆成可执行任务、把大模型输出约束回工艺规则。

具体映射关系是这样的:设备层和控制层不动,继续跑 PLC 和 SCADA;执行层的 MES、WMS、QMS 保留,但对外暴露标准 API;新增的语义层通过 API 拉取工单、BOM、工艺路线、质检记录;管理层 ERP 提供订单和成本上下文;最上面才是大模型应用层,包括工艺问答、排产建议、质量归因、设备预测性维护对话等。

这里有个关键判断:不要试图用大模型替换 MES 的任何核心事务逻辑。排产算法、库存扣减、工单状态机这些必须是确定性的,大模型只做“建议”和“解释”,最终写回由规则引擎或人工确认。我见过一个项目让大模型直接改工单优先级,结果因为幻觉把急单排到了后面,产线停了半天。这个边界必须在架构设计第一天就画死。

2.2 五层框架的职责与数据流向

把上面说的整理成可落地的五层,每层的职责和数据流向如下:

层级核心职责典型组件数据流向
设备与控制层实时采集、闭环控制PLC、SCADA、传感器向上提供时序数据
执行层工单执行、质量记录、库存MES、QMS、WMS向上提供业务事件
工业语义层数据翻译、实体对齐、知识图谱向量库、图数据库、ETL双向:拉数据、回写约束
大模型智能体层推理、问答、任务分解LLM、Agent 编排、工具调用向下调 API,向上出建议
应用与决策层人机交互、报表、告警对话界面、BI、移动端接收建议,人工确认

数据流向不是单向的。语义层从执行层拉数据,但大模型智能体层产生的“建议”要经过语义层的规则校验才能回到执行层。这个回环设计是很多方案忽略的,导致大模型输出直接怼到产线,出了事没法追溯。

2.3 最小可跑通的框架验证步骤

不要一上来就全厂铺开。我一般会选一条产线、一个质量场景做最小闭环。步骤如下:

第一步,确定一个高频且答案明确的问题。比如“某型号产品在某个工序的最近 30 天不良率趋势及主要缺陷类型”。这个问题传统 BI 也能做,但大模型能额外给出“可能关联的工艺参数偏移”。

第二步,把相关数据落到语义层。需要的数据包括:MES 工单记录、QMS 缺陷代码、设备时序中的关键工艺参数(温度、压力、节拍)。用 ETL 脚本每天增量同步。

# 示例:从 MES 和 QMS 拉取质量相关数据并写入向量库 import pandas as pd from datetime import datetime, timedelta from langchain_community.vectorstores import Chroma from langchain_community.embeddings import HuggingFaceEmbeddings # 参数说明: # - days_back:回溯天数,建议 30,太短看不出趋势,太长噪声大 # - defect_codes:缺陷代码白名单,避免把无关记录灌进去 def fetch_quality_data(mes_conn, qms_conn, days_back=30): end = datetime.now() start = end - timedelta(days=days_back) mes_sql = f""" SELECT work_order, product_model, process_step, start_time, end_time, equipment_id FROM mes_work_orders WHERE start_time BETWEEN '{start}' AND '{end}' """ qms_sql = f""" SELECT work_order, defect_code, defect_desc, inspect_time FROM qms_defects WHERE inspect_time BETWEEN '{start}' AND '{end}' """ mes_df = pd.read_sql(mes_sql, mes_conn) qms_df = pd.read_sql(qms_sql, qms_conn) # 按工单号关联,形成“工单-缺陷”宽表 merged = mes_df.merge(qms_df, on='work_order', how='left') return merged # 将宽表转为文本描述后嵌入向量库,供大模型检索 def build_vector_store(df, persist_dir='./chroma_quality'): texts = [] for _, row in df.iterrows(): text = (f"工单{row['work_order']} 产品{row['product_model']} " f"工序{row['process_step']} 设备{row['equipment_id']} " f"缺陷{row['defect_code']} {row['defect_desc']}") texts.append(text) embeddings = HuggingFaceEmbeddings(model_name='all-MiniLM-L6-v2') vectordb = Chroma.from_texts(texts, embeddings, persist_directory=persist_dir) vectordb.persist() return vectordb

这段代码的逻辑是:先把 MES 和 QMS 的数据按工单号拼成宽表,再把每行转成自然语言描述,最后嵌入向量库。参数上,days_back控制回溯窗口,model_name选轻量级嵌入模型即可,工厂场景不需要追求最大模型,检索准确率够用就行。注意缺陷代码要做白名单过滤,否则会把“外观轻微划痕”这种不重要的记录也灌进去,干扰大模型判断。

第三步,用大模型做检索增强问答。把用户问题向量化,从向量库召回相关工单记录,拼进提示词让大模型总结趋势和可能原因。这一步的提示词要严格约束:“只根据提供的工单记录回答,不要编造未出现的缺陷类型或参数。”

第四步,人工验证 20 个问题。如果准确率低于 70%,先别急着上第二个场景,回头检查数据质量和提示词约束。

3. 架构设计思路:大模型在工厂里到底放在哪一层

3.1 云边端协同:哪些推理必须放在车间

这是被问得最多的问题之一:像工业 AI 检测、服装检测这类场景,到底用云端大模型还是单机部署?我的经验是分场景。质检图像推理、设备实时告警这类延迟敏感(要求 200ms 内响应)且数据量大的,必须放在边缘侧,用轻量级模型或蒸馏后的小模型。而工艺问答、排产建议、质量归因这类对延迟不敏感(几秒到几十秒都能接受)且需要强推理能力的,可以走云端或厂内私有化部署的大模型。

具体划分原则:

  • 边缘侧:图像分类、目标检测、异常声音识别、PLC 时序异常检测。这些用传统 CV 模型或小参数量模型就够了,不需要大模型。
  • 厂内私有化:工艺知识问答、设备维修手册检索、质量根因分析。数据不出厂,用 7B 到 14B 参数量的模型,配合 RAG 检索增强。
  • 云端(如果允许):跨工厂的排产优化、供应链协同、行业知识更新。但涉及核心工艺参数的,我一般不建议出公网。

提示:很多工厂网络条件其实不支持稳定的云端调用,车间里 Wi-Fi 抖动、防火墙策略、数据出境合规都是现实问题。私有化部署虽然前期成本高,但后期可控性强得多。

3.2 大模型与 MES/ERP 的集成方式:API 还是消息队列

集成方式选错,后面全是坑。我见过用大模型直接轮询 MES 数据库的,结果把生产库拖垮了。正确做法是:

方式一:API 网关。MES 和 ERP 暴露 RESTful API,大模型智能体通过网关调用。适合查询类操作,比如“查一下工单 WO-20240501 的当前状态”。优点是简单直接,缺点是高频调用会给业务系统压力。

方式二:消息队列。MES 把工单状态变更、质检结果等事件推到 Kafka 或 RabbitMQ,大模型侧消费后更新自己的语义层。适合事件驱动的场景,比如“当某工序连续 5 件不良时触发分析”。优点是解耦,缺点是实时性略差。

方式三:数据库只读副本。对于分析类查询,直接读 MES 的只读副本,不碰生产库。适合批量趋势分析。

我一般会组合使用:查询走 API,事件走消息队列,批量分析走只读副本。下面是一个消息队列消费的示例:

# 示例:消费 MES 质检事件,触发大模型质量归因 import json from kafka import KafkaConsumer from quality_agent import QualityAgent # 自定义的质量分析智能体 # 参数说明: # - bootstrap_servers:Kafka 地址,建议用内网地址 # - group_id:消费者组,不同环境用不同 group 避免抢消息 # - auto_offset_reset:从最新开始消费,避免历史消息刷屏 consumer = KafkaConsumer( 'mes.quality.events', bootstrap_servers='10.0.1.20:9092', group_id='llm-quality-agent', auto_offset_reset='latest', value_deserializer=lambda m: json.loads(m.decode('utf-8')) ) agent = QualityAgent(model_endpoint='http://local-llm:8000/v1') for msg in consumer: event = msg.value # 只处理不良事件,良品事件跳过 if event.get('defect_code') is None: continue # 调用大模型做归因,传入工单号、缺陷代码、最近工艺参数 result = agent.analyze( work_order=event['work_order'], defect_code=event['defect_code'], recent_params=event.get('recent_process_params', {}) ) # 归因结果写回告警系统,由人工确认 if result['confidence'] > 0.8: send_alert(result)

这段代码的关键参数是auto_offset_reset='latest',避免重启后把历史消息全部重新处理一遍。confidence阈值设 0.8 是经验值,低于这个值的大模型归因建议只记录不告警,防止误报太多导致产线麻木。

3.3 语义层建模:实体对齐比模型选型更重要

很多团队花大量时间比较“用哪个大模型”,却忽略了语义层的实体对齐。工厂里同一个东西可能有五六个名字:MES 里叫“工单号”,ERP 里叫“生产订单”,QMS 里叫“检验批次”,设备日志里叫“Lot ID”。如果不做对齐,大模型检索时会漏掉大量相关记录。

我一般会建一张实体映射表,至少覆盖:工单、产品型号、工序、设备、缺陷代码、物料批次。映射关系可以手工维护,也可以半自动从历史数据里挖掘。这张表是语义层的核心资产,比换哪个大模型重要得多。

4. AI 框架赋能:从“能问答”到“能干活”的四个台阶

4.1 台阶一:RAG 检索增强,让大模型读懂工厂文档

第一个台阶是最容易落地的:把工艺文件、设备手册、历史维修记录、质量报告灌进向量库,让大模型基于这些文档回答问题。技术栈常见的是 LangChain 或 LlamaIndex 加向量数据库。

关键参数:分块大小。工厂文档很多是表格和流程图,按固定字数切会切断语义。我一般用 500 到 800 字符,重叠 100 字符,表格单独处理不切分。嵌入模型选支持中文的,比如 BGE 系列,不要直接用英文模型。

这个台阶的局限是:只能回答文档里有的东西,不能做推理,不能调 API,不能改任何状态。

4.2 台阶二:Agent 工具调用,让大模型能查实时数据

第二个台阶是给大模型配上工具(Tools),让它能调用 MES API 查工单状态、调用设备接口读实时参数、调用报表接口拉趋势数据。这就是 AI Agent 的雏形。

实现上,用 OpenAI 兼容的 function calling 或 ReAct 模式。每个工具定义要非常明确:输入参数、输出格式、调用限制。比如“查询工单状态”这个工具,输入是工单号,输出是状态字符串和当前工序,限制是每分钟最多调 30 次。

# 示例:定义一个查询工单状态的工具供大模型调用 from langchain.tools import tool import requests # 参数说明: # - work_order:工单号,格式如 WO-20240501-001 # - timeout:超时时间,工厂内网建议 3 秒,太长会拖垮对话体验 @tool def query_work_order_status(work_order: str) -> dict: """根据工单号查询 MES 中的当前状态和所在工序。""" resp = requests.get( f"http://mes-api.internal/api/work-orders/{work_order}", timeout=3 ) if resp.status_code != 200: return {"error": f"工单 {work_order} 查询失败,状态码 {resp.status_code}"} data = resp.json() return { "work_order": work_order, "status": data.get("status"), "current_step": data.get("current_step"), "equipment": data.get("equipment_id") }

这个工具定义里,timeout=3是关键。工厂内网 API 响应一般很快,超过 3 秒要么是网络问题要么是 MES 卡了,继续等只会让对话界面转圈。返回结构里带上equipment是为了让大模型能进一步关联设备数据。

4.3 台阶三:多智能体协作,排产、质量、设备各管一摊

第三个台阶是把不同领域的智能体分开:排产智能体、质量智能体、设备智能体,各自有自己的工具集和知识库,通过一个协调者智能体来分发任务。这就是多 AI 协作在工厂里的落地形态。

好处是每个智能体的提示词和工具集可以独立优化,不会互相干扰。坏处是协调逻辑复杂,容易出现“三个智能体互相踢皮球”的情况。我一般会设一个兜底规则:如果协调者无法在 3 轮内确定由哪个智能体处理,直接转人工。

4.4 台阶四:微调与私有化,把行业知识焊进模型

第四个台阶是微调。当 RAG 和 Agent 都解决不了某些领域特有的表达方式时,用工厂自己的历史工单、维修记录、工艺变更单做指令微调。数据量不需要很大,几千条高质量问答对就能见效。

微调数据格式一般是“指令-输入-输出”三元组。比如指令是“分析该工单的不良原因”,输入是工单和缺陷描述,输出是根因分析和建议。数据标注要由工艺工程师参与,不能只靠算法团队拍脑袋。

注意:微调不是必须的。我见过很多项目一上来就微调,结果数据质量差,微调后模型反而更差。先把 RAG 和 Agent 跑通,确认瓶颈确实在模型领域知识不足时,再考虑微调。

5. 避坑与排查:大模型进工厂的五个血泪教训

5.1 现象:大模型回答“设备温度正常”,但实际已经超限

原因:大模型读的是历史工单里的文本描述,不是实时传感器数据。如果 RAG 检索到的文档是上个月的维修记录,它会基于旧数据回答。

解决:实时类问题必须走 Agent 工具调用,不能走 RAG。在提示词里明确区分“历史文档查询”和“实时数据查询”,并给实时查询工具设置更高的优先级。

5.2 现象:质检图像推理延迟从 200ms 涨到 2s

原因:把图像推理也接到了大模型上,每张图都要走一遍视觉大模型,边缘设备算力不够。

解决:图像检测用专用小模型(YOLO 系列或轻量级 CNN),只在发现异常时把异常图像和上下文传给大模型做二次分析。大模型不参与每张图的实时推理。

5.3 现象:大模型建议调整工艺参数,操作工不敢执行

原因:大模型输出没有置信度说明,也没有可追溯的依据。操作工不知道这个建议是怎么来的,出了问题谁负责。

解决:每条建议必须附带:引用的历史工单号、相关工艺参数范围、置信度分数、以及“建议人工确认”的明确标识。置信度低于阈值的只记录不展示。

5.4 现象:私有化部署的模型回答质量明显低于云端测试效果

原因:私有化部署的模型参数量通常比云端小,且量化后精度有损失。另外,本地提示词模板可能和云端测试时不一致。

解决:私有化部署后必须重新做一轮提示词调优和评测,不能直接套用云端结果。量化等级建议不低于 4-bit,7B 模型在工厂问答场景基本够用,但复杂推理会吃力。

5.5 现象:多轮对话后大模型“忘记”了前面的约束

原因:上下文长度限制。工厂场景的对话经常要带工单号、设备号、时间范围,几轮下来就超了。

解决:把关键约束(工单号、设备号、时间范围)提取成结构化字段,每轮对话都重新注入,而不是依赖模型自己记住。上下文窗口再大,也不如显式注入可靠。

6. 验证与进阶:怎么判断这套方案真的在干活

6.1 用“三个指标”验证大模型智能工厂是否落地

不要看演示效果,看三个指标:

指标一:问题闭环率。大模型给出的建议中,有多少被人工采纳并执行?低于 30% 说明建议质量不行,高于 70% 说明可以扩大场景。

指标二:平均响应时间。从用户提问到收到有效回答的时间。RAG 类问题应在 5 秒内,Agent 类问题应在 15 秒内,超过 30 秒用户就会失去耐心。

指标三:数据新鲜度。语义层的数据延迟。如果 MES 已经更新了工单状态,但大模型还在用昨天的数据回答,那这套系统就是摆设。我一般要求关键业务数据的延迟不超过 5 分钟。

6.2 一个具体技巧:用“影子模式”先跑一个月

正式上线前,让大模型在后台“影子模式”运行:它照常接收问题、生成建议,但建议不直接展示给操作工,只记录到日志里。一个月后对比日志和实际操作,看大模型的建议和人工决策的一致率。一致率超过 60% 再考虑逐步开放。

这个做法听起来笨,但能避免很多翻车。我经历过一次没跑影子模式直接上线的项目,大模型建议把某批急单的检验优先级调低,操作工照做了,结果客户投诉。后来查日志发现,大模型是基于三个月前的检验周期数据做的判断,而那个产品的检验标准已经改了。影子模式能提前暴露这类问题。

6.3 值不值得做:我的判断标准

如果工厂已经有 MES 和 QMS 且数据质量尚可,从 RAG 问答场景切入,投入 2 到 3 个人月就能看到效果,值得做。如果数据还散落在 Excel 和纸质记录里,先补数据基础,别急着上大模型。如果指望大模型直接替代排产算法或质检规则,现阶段不建议,边界划清楚比模型选型重要得多。

我自己现在养成一个习惯:每上一个新场景,先问工艺工程师三个问题——“这个问题现在怎么解决的?”“答案的准确率要求多高?”“错了会怎样?”如果第三个问题的答案是“会停线”或“会客诉”,那就必须加人工确认环节,没有后悔药可吃。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进