Meridian:从部门文件到有负责人的行动。
这是基于 Meridian Components 搭建的案例。Meridian Components 是一家虚构的制造商,在越南有四家工厂。下文的每个 SAS 界面都来自我们搭建时所用的 Viya 环境,截取于 2026 年 10 月。每个数字都由该环境产出。
- 个部门文件作为起点
- 19个部门文件作为起点
- 行数据由 40 条清洗规则修正
- 28,098行数据由 40 条清洗规则修正
- 个缺货模型参与比较
- 7个缺货模型参与比较
- 项行动,每项都经已发布的决策确认
- 306项行动,每项都经已发布的决策确认
四家工厂,每个部门各有一套真相。
Meridian 用各部门的工作簿管理四家工厂和四个仓库:按班次的生产记录、采购跟踪表、库存盘点和标准成本表。每个部门都保留自己的一套数字,所以每周例会一开始总是在核对数字,而不是据此采取行动。
我们没有要求任何人放弃自己的文件。SAS 按原样读入这些文件,项目分为五个阶段,每个阶段是一个程序文件夹,每个程序旁边都有一个流程。
- 决策
- 按原样读入文件,所有修正都在 SAS 中完成,用人人都能读懂的代码。
- 原因
- 大家继续使用自己信任的工具,每一处修正都看得见、可重复,而不是藏在某个人的副本里。
- 构建工具
- SAS StudioSAS Content

只清洗一次,用可审计的规则。
19 个文件变成了 23 张原始表、12 张清洗后的表和 23 张可直接用于决策的 gold 表。40 条清洗规则修正了 28,098 行:以文本录入的金额、三种格式的日期、多种写法的班次代码。每条规则都会在数据质量日志中写入一行。
每个程序都有流程,因此 SAS Lineage 可以从任意一张表画出路径:向上追溯到生成它的程序,向下延伸到读取它的报表。
- 决策
- 一条规则,一行日志,每个程序都有流程。
- 原因
- 当经理问某个数字从哪里来,答案是在 SAS Lineage 里点一下,而不是开一次会。
- 构建工具
- SAS Studio 流程DATA step 与 PROC SQLSAS Lineage

预测缺货,让模型相互竞争。
计划员的问题很简单:未来四周内,哪个仓库的哪种产品会跌破再订货点?Model Studio 用同一组特征(库存相对于再订货点的水平、在途库存、近期出货量、供应商延迟和季节)训练了七个候选模型,较晚的几周留作测试,不参与训练。
Forest 在预留的几周数据上排序表现最好,作为冠军模型注册到 Model Manager。梯度提升作为挑战者,每周用代码重新训练,一旦冠军模型表现下滑,数字上就会显现出来。
- 决策
- Forest 是冠军模型;梯度提升保留为挑战者。
- 原因
- Forest 在从未见过的数据上排序最好;保留一个挑战者,可以看出冠军模型是否开始下滑。
- 构建工具
- Model StudioModel Manager



用业务负责人读得懂的规则做决策。
分数还不是行动。决策 Meridian_next_best_action 先运行冠军模型,再经过两个规则集。“选择行动”(6 条规则)判断某个库存位置是否需要补货、某张采购订单是否需要催货、某种产品是否需要毛利复核,或某条产线是否需要检查。“优先级、负责人和复核”(14 条规则)按涉及金额设定优先级,选定负责人,设定截止日期,并决定何时由第二个人复核。
该决策发布到 SAS Micro Analytic Service,任何能发出 Web 请求的系统都可以问它该做什么。
- 决策
- 把阈值放在规则集中,而不是程序代码里。
- 原因
- 供应链负责人无需开发人员,就能读懂并修改“供应商在近期 60% 的订单上延迟时催货”,而且 Intelligent Decisioning 会为每次修改保留版本。
- 构建工具
- Intelligent DecisioningMicro Analytic Service



每周一运行,逻辑始终如一。
定时作业每周一 06:00 运行。它读回大家在 Lantern 中做出的决策和处理结果,生成本周的候选行动,把每一项送入已发布的决策,起草消息,衡量上周的结果,并把结果推送到 Lantern。
批处理作业调用的是与其他所有地方相同的已发布决策,因此报表中的行动和界面上的行动不会互相矛盾。如果无法连接决策服务,作业会停止,并保留上周的行动,而不是发布一份空清单。
- 1从 Lantern 读回决策和处理结果
- 2生成候选行动
- 3将每个候选送入 Meridian_next_best_action
- 4起草消息并检查
- 5衡量先前行动之后发生了什么
- 6将行动、结果和缺货风险推送到 Lantern
- 决策
- 由批处理作业调用已发布的决策,而不是把它的规则复制进代码。
- 原因
- 只有一个地方做决定。改一条规则,所有渠道同时生效,不会出现偏差。
- 构建工具
- SAS Job ExecutionPROC HTTPMicro Analytic Service
proc http url="&base./microanalyticScore/modules/meridian_next_best_action/steps/execute"
method="POST" in=_nq out=_na ct="application/json" oauth_bearer=sas_services;
headers "Accept"="application/json";
run;NOTE: Lantern decisions read into APP_ACTION_DECISIONS.
NOTE: Lantern resolutions read into APP_ACTION_RESOLUTIONS.
NOTE: Decision service answered all 306 rows (meridian_next_best_action).
ACT REORDER High 55 55 1,994,641,000
ACT EXPEDITE_PO High 47 47 181,319,000
ACT INVESTIGATE_LINE High 12 12 790,203,000
NOTE: Lantern gold_actions: {"rows": 306, "table": "gold_actions", "skipped": []}
NOTE: Lantern gold_stockout_risk: {"rows": 16800, "table": "gold_stockout_risk", "skipped": []}
NOTE: Lantern gold_model_metrics: {"rows": 11, "table": "gold_model_metrics", "skipped": []}每项行动只有一位负责人,并说明理由。
Lantern 为每项行动指定一位负责人,并说明 SAS 为什么提出它:触发的规则、冠军模型对库存位置给出的概率,以及选定优先级、负责人和截止日期的规则集。负责人去完成工作(致电供应商、检查产线、下订单),记录做了什么,然后关闭行动。
每个人看到的内容取决于角色。采购员看到采购订单,班组长看到自己的产线,并由数据库逐行强制执行。
- 决策
- 构建和治理的人使用 Viya 席位;所有执行的人使用 Lantern。
- 原因
- 数百名一线人员无需 Viya 许可证就能根据 SAS 的决策采取行动,他们做出的每个决定都会在下周一流回 SAS。
- 构建工具
- LanternPostgreSQL 行级安全


衡量实际结果,让模型保持诚实。
作业每周把已处理的行动与之后发生的情况进行对照:库存是否用尽,采购订单是否按时到货,缺陷率是否回落。结果会推送到 Lantern,显示在行动旁边。
模型也以同样的方式评判。冠军模型、挑战者和一种单纯按库存水平排序的方法,都在同样的 1,100 行预留数据上评分,其中 138 行在四周内缺货。
- 决策
- 在同样的数据行上评判每个模型,并与简单的基线对比。
- 原因
- 模型只有胜过单纯按库存水平排序,才值得使用。在风险最高的 300 行中,冠军模型比基线多捕获 13 次缺货。
- 构建工具
- SAS 程序Visual AnalyticsLantern
同一批预留数据上的缺货模型
| 模型 | AUC | 风险最高的 300 行中捕获的缺货 |
|---|---|---|
| Forest,冠军模型 | 0.939 | 133 / 138 |
| 梯度提升,挑战者 | 0.927 | 129 / 138 |
| 仅看库存水平,基线 | 0.918 | 120 / 138 |
AUC:0.5 相当于抛硬币,1.0 为完美。由 ins_02 于 2026 年 10 月 20 日计算。


决策记录
- 起点
按原样读入文件,所有修正都在 SAS 中完成,用人人都能读懂的代码。
SAS Studio, SAS Content
- 清洗与追溯
一条规则,一行日志,每个程序都有流程。
SAS Studio 流程, DATA step 与 PROC SQL, SAS Lineage
- 预测
Forest 是冠军模型;梯度提升保留为挑战者。
Model Studio, Model Manager
- 决策
把阈值放在规则集中,而不是程序代码里。
Intelligent Decisioning, Micro Analytic Service
- 每周运行
由批处理作业调用已发布的决策,而不是把它的规则复制进代码。
SAS Job Execution, PROC HTTP, Micro Analytic Service
- 在 Lantern 中行动
构建和治理的人使用 Viya 席位;所有执行的人使用 Lantern。
Lantern, PostgreSQL 行级安全
- 衡量
在同样的数据行上评判每个模型,并与简单的基线对比。
SAS 程序, Visual Analytics, Lantern
如何运行
Lantern 读取 Viya 每周作业发布的表,因此工作空间中的每个数字都是真实的 SAS 输出。上面的各部分展示了每个环节是在哪里构建的。