【硬核架构】拒绝大模型幻觉!摩杰斯APS如何用“Qwen-2.5B + OR-Tools”实现工业级确定性排程?
摘要:在工业APS领域,概率性生成的LLM(如72B参数模型)为何频频翻车?本文深度复盘摩杰斯(Moges)从“启发式加权”到“混合整数规划(MIP)”的架构演进。我们将揭秘如何通过“端侧小模型语义解析 + 约束求解器全局最优”的混动架构,完美解决机加工场景中刚性外协与动态产能溢出的时空约束难题。附核心建模逻辑与性能压测数据。
0x01 背景:当“搜索引擎逻辑”遇上“组合爆炸”
早期,我们的APS引擎采用经典的多目标加权评分机制(MCDM)。这本质上是一个类似PageRank的排序算法:
1# 伪代码:旧版启发式评分逻辑
2def calculate_score(order):
3 score = 0
4 score += order.customer_level * 10 # 优质客户加分
5 score += (1 / order.remaining_days) * 20 # 交期紧迫加分
6 score -= order.external_process_count * 5 # 外协多减分(惩罚)
7 # ... 更多规则
8 return score
9
10# 策略:贪心算法 (Greedy Strategy)
11schedule = sorted(orders, key=calculate_score, reverse=True)
痛点:这种 O(n log n) 的贪心策略在低复杂度场景下尚可,但一旦面对机加工车间的 NP-Hard问题(如:五轴机床互斥、刀具寿命约束、外协物流时间窗),它极易陷入局部最优(Local Optima),甚至产生资源死锁(Deadlock)。
为了解决这个问题,我们曾尝试引入 72B参数的大语言模型 进行端到端排程。结果?惨败。
- 幻觉(Hallucination):LLM编造不存在的空闲时间窗。
- 非确定性:同样的输入,三次推理得出三个不同的计划,工厂无法执行。
- 延迟(Latency):推理耗时分钟级,无法应对车间秒级插单。
结论:工业排程是确定性约束求解问题,绝不是概率性文本生成问题。用LLM做排程,就像用蒙特卡洛模拟去控制伺服电机——理论很性感,工程很骨感。
0x02 架构重构:Hybrid Architecture(混动范式)
我们最终确立了 "Symbolic AI (OR-Tools) + Sub-symbolic AI (Quantized LLM)" 的双引擎架构。
2.1 交互层:端侧量化小模型 (Edge LLM)
- 选型:
Qwen-2.5B-Int4(知识蒸馏 + 量化)。 - 部署:单卡 RTX 3060 即可跑满,推理延迟
<200ms。 - 职责:仅做 NLU (自然语言理解) 和 Intent Recognition (意图识别)。将人类模糊指令转化为结构化JSON约束。
Input (User):
“把那个急单插进去,如果内部五轴忙不过来,就发外协,但要算上物流时间。”
Output (LLM -> JSON):
1{
2 "action": "reschedule",
3 "priority_order_id": "MO-2026-089",
4 "constraints": {
5 "force_outsourcing_if_busy": true,
6 "machine_type": "5AXIS",
7 "include_logistics_time": true
8 },
9 "optimization_goal": "min_makespan"
10}
0x03 核心层:基于OR-Tools的混合整数规划 (MIP)
这是系统的“心脏”。我们将业务规则转化为严格的数学约束,利用 CP-SAT Solver 进行全局搜索。
3.1 外协约束的深度建模 (The Outsourcing Model)
机加工最痛的是外协。我们将其建模为二元分类与时空折叠:
A. 工艺强制外协 (Hard Constraint)
对于热处理、电镀等内部无法完成的工序,定义为固定外部节点:Route_node ∈ { Internal_Machine, External_Vendor }
若 ProcessType == 'HeatTreatment',则 ResourceGroup 强制锁定为 VendorPool。
B. 动态产能溢出 (Binary Decision Variable)
当内部负荷 Load > 100% 或无对应设备时,触发决策变量 x_ij:min Z = Σ (Cost_internal * x_int + Cost_external * x_ext + Penalty_delay)
求解器会自动权衡:是内部加班划算,还是外协+物流划算?
C. 外协物流时空折叠 (Spatio-Temporal Folding)
拒绝简单的 +3天 估算。我们构建了全链路时间模型:
T_total = T_out_trans + T_queue_vendor + T_process + T_in_trans + T_qc
T_queue_vendor:动态读取供应商产能负荷(通过SRM接口或经验曲线)。TimeWindow:严格计算发车与回厂时间窗,避免“料到了,人下班了”或“车到了,产线停了”。
3.2 求解流程
- Constraint Propagation:传播硬约束(如:刀具互斥、工序先后)。
- Branch and Bound:分支定界法搜索解空间。
- Global Optimization:找到满足所有约束且目标函数(工期最短/成本最低)最优的解。
- Result:输出100%可执行的工单序列,零幻觉。
0x04 性能压测与实战数据
在某精密零部件工厂(200+台CNC,日均500+工序)的实测对比:
表格
| 指标 | 旧版加权系统 | 72B LLM方案 | 摩杰斯混动架构 |
|---|---|---|---|
| 求解算法 | Greedy Heuristic | Probabilistic Gen | CP-SAT (MIP) |
| 外协逻辑 | 静态固定天数 | 逻辑缺失/幻觉 | 动态时空链建模 |
| 平均响应时间 | 2.5s | 120s+ | 0.4s |
| 计划可行率 | 82% (需人工调) | <50% | 100% |
| 硬件成本 | Low | High (Multi-A100) | Low (Single GPU) |
Dev视角的亮点:
- 可解释性:当计划员问“为什么外协?”时,系统能回溯到具体的约束冲突(如:
Machine_05 Load > 1.2),而不是LLM的胡言乱语。 - 扩展性:新增约束(如“周五下午不排外协发货”)只需修改一行Python约束代码,无需重新训练模型。
0x05 总结
工业软件的核心壁垒不是模型参数量,而是对业务场景的数学抽象能力。
摩杰斯选择了一条更难但更正确的路:用小模型做交互,用数学求解器做决策。这不仅解决了“幻觉”问题,更将外协、物流等复杂变量纳入了全局最优解的计算范畴。
作者:昆山摩杰斯技术团队 | 标签:#APS #运筹优化 #OR-Tools #LLM #工业4.0 #混合整数规划
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)