← 返回供应链评论 物流科技

青岛港星港大模型把排泊计划从小时级压到90秒

来源: 腾讯新闻 · 2026-10-11 · 约 16 分钟
English

核心要点

先看结论——该做什么、什么时候做:

  1. 这个月就把过去 12 个月的预报 ETA 与实际靠泊时间拉成一张表,按 72/48/24/12 小时分档,每档算平均绝对误差和标准差——没有这条基线,任何优化预算都先别批。
  2. 本季度内把数据口径写死:谁填 ETA、谁更新、多久更新、卸率估值归谁、两者冲突时以谁为准,四方(船代、码头计划室、引航站、收货方)签字确认唯一真值来源。
  3. 把输入阈值钉住:48 小时外 ETA 平均绝对误差不超过 3 小时,12 小时内不超过 1 小时,卸率估值与实际偏差控制在 10% 以内,动态字段 15 分钟刷新一次。
  4. 两个季度内换掉采纳率这个指标:从「采纳率 90% 以上」改成「零修改采纳率达到 70%」,修改日志这个月开始埋点。
  5. 现在就给重算加护栏:重算把某条船挪动超过一个潮汐窗口、或相对执行版换掉两个以上泊位时,必须人工确认。
  6. 向船代要到达分布而不是日期,把实测 σ 代进安全库存公式,下次合同续签把 P95 待泊时间(不是均值)写进装卸时间条款。
跳到详细拆解 ↓
摘要

山东港口青岛港的星港大模型是国内首个港口行业大模型,2025年10月31日发布,现已铺开26个示范场景、19个智能体。干散货全要素调度智能体把132个计划要素、180多条业务规则一起算进去,90秒出最优靠离泊方案——过去老师傅要两三个小时,培养一个成熟计划员要八到十年,推优方案采纳率稳定在90%以上。青岛港称码头通过能力提升10%、堆场搬倒率降5%、能耗成本降8%。

详细拆解

凡是标题里带秒表的港口新闻,我都建议多看一眼。这条的秒表尤其响。山东港口青岛港的星港大模型 2025 年 10 月 31 日发布,是国内第一个港口行业大模型,现在已经铺开 26 个示范场景、19 个智能体。被引用最多的是干散货全要素调度智能体:132 个计划要素、180 多条业务规则一起算进去,90 秒出最优靠离泊方案;过去老师傅要两三个小时,培养一个成熟计划员要八到十年;推优方案采纳率稳定在 90% 以上。青岛港同时给出码头通过能力 +10%、堆场搬倒率 -5%、能耗成本 -8%。

我读到这儿的第一反应不是"快"。我的第一反应是:这是个队列。

先把问题建模,再吵别的,因为有料的地方不在那 90 秒。一次排泊,本质是一个排队系统上面架了一层调度:船舶按随机过程到港,泊位和岸桥是服务台,服务时间是吨/小时的卸率,潮汐加航道窗口像个分批开门的闸门。在散货码头外锚地熬过夜的人,都切身感受过这套系统。真正的问题不是谁算得快,是碰哪一个参数,整条队列会跟着动。

先把事实摆干:这条发布里有两个数是硬的,一个是软的。硬的是:132 个计划要素、180 多条业务规则现在能一起算,90 秒出结果。另一个硬的是:推优方案采纳率稳定在 90% 以上。软的是那句"过去要两三个小时"。我说它软,是因为这个数是把好日子和坏日子、把喝过咖啡的计划员和凌晨两点还没合眼的计划员一起平均出来的,而且从来没有人公布过它背后的方差。脑子里装着队列模型的人听到"两三个小时",第一反应是要分布,不是要均值。

我建的这个模型是这样的。到达:船舶在引航锚地带着一个有误差的 ETA 出现,看得越远,误差越大。服务台:泊位,泊位后面是岸桥,岸桥后面是堆场,堆场后面是铁路计划和闸口。服务时间:卸率,它不是一个常数,是舱口数、抓斗状态、天气、以及五个港口之前那份积载图画得有多糟的函数。约束:潮汐和航道窗口,它事实上把到达切成了波。你要解的排泊方案,本质是一个分配问题——哪条船在哪个窗口占哪个泊位,而动一条船,后面排队的全跟着动。

那么 90 秒到底买到了什么?不是通过能力本身。90 秒解决的是一个从来就不是瓶颈的问题。排泊方案一天做不了几次,出状况才改。一件一天跑六次的事,花两个小时去算,钱不是花在这儿的。如果这个港买的只是速度,那诚实的回报就是每天省下几个计划工时,整笔投资根本讲不通。我把这个数算出来,因为没人印它。假设 4 个计划员、每人每天 6 个方案、每个方案从大约 2.5 小时压到接近 0,省下 2.5 小时:一天约 57.6 个工时,一年算 21,000 小时。按全负荷 30 美元/小时——这是我的假设,不是他们给的数——一年大约 63 万美元。是真钱,也是小钱。这点钱撑不起一个大模型。

价值真正落在两个没人拿来做标题的地方。一条是一致性。模型凌晨三点出的方案,跟下午三点出的一样稳;人做不到。你要是看过夜班计划员同时应付六条船的到港、一个航道封航和一台抓斗趴窝,就知道那种状态下方案质量的下滑是真的,而且没人去量它。另一条是那八到十年。这个数才该让码头管理者坐直。排泊能力一直是一条长达十年的人才管道,人一退休,能力就跟着走出门。把这份工作里规则占大头的一大块压缩成可以部署的东西,是用供应链的办法解一个劳动力的问题;26 个场景、19 个智能体就是证据——它在被铺开、铺薄、铺广,而不是停在一个泊位组上。

接下来是我真觉得有意思的部分:10% 的通过能力,在这里从一个新闻数字变成了一个队列数字。队列里,待泊时间不是按加了多少能力等比例下降的。系统本来就忙的时候,它降得比能力涨得快;系统本来就闲的时候,它降得慢得多。大致形状是:等待时间与 ρ/(1-ρ) 成正比,ρ 是利用率。取一个 ρ=0.85 的泊位组,队列因子是 5.67。有效能力加 10%,ρ 掉到约 0.773,队列因子 3.40——10% 的能力换来了等待项 40% 的下降。再取一个 ρ=0.50 的泊位组,因子是 1.00,同样加 10% 得到 0.455、因子 0.83,只降 17%。同一个模型、同样 10%,回报差一大截,全看这个泊位组原来有多挤。

这一条曲线回答"谁会感觉到",比列一张干系人清单有用得多。只有大进口港上那种已经很挤的干散货泊位组,这件事才真正划算。能力本来就富余、或者真瓶颈在堆场而不在泊位的码头,拿到的很少——注意青岛港自己那个堆场数,搬倒率降 5%,比泊位数小,这跟"堆场才是更紧的约束"是一致的。落到船东身上,收益是锚地上的船舶小时。落到货主那一侧——通过青岛港接铁矿、煤炭、水泥熟料的钢厂、电厂、水泥厂——收益是到港时间分布的变化,而这个变化有多大,才是整件事的全部问题。对于在别人的船上订舱的中小型货代,这现在是四舍五入里的零头,在数据往外流之前一直都是。

时点上我要给这股热度泼点水。码头这一侧,智能体上线当天就拿收益,青岛港的数已经报出来了。货主这一侧,要等改进后的方案出现在船代发给你的 ETA 里,才有感觉;这是数据管道问题,不是模型问题。我的判断:同一个港内,6 到 12 个月收货方才看得到到港可预测性的可测量变化;18 到 36 个月这件事才会在国内主要进口港变成常态,因为每个港都得把自己的规则集重搭一遍、把自己的数据清一遍。钱这一侧,散货大多走租船合同或年度供货合同,滞期与装卸时间条款一年谈一次,所以这笔账真正落到你的损益表上,是下一个合同年,不是这个季度。

下面这一点,我在任何一版报道里都没看到,也是我坐下来写这篇的原因:瓶颈搬家了。过去方案要两三个小时才做得出来,所以计划慢,瓶颈是算力加上人的注意力。一旦方案只要 90 秒,瓶颈就往上游挪到了输入。而干散货排泊的输入只有两个数:这条船到底什么时候到,它到底卸得多快。

我把它算实一点,因为"数据质量差"这种抱怨,大家都是点点头然后继续不管。假设——我的假设,不是公布的数——干散货船 72 小时外的 ETA 平均绝对误差是 9 小时。这对不定期散货是正常的量级,班轮好一些,散货不行。现在队列里排 5 条船。第 5 条船在你方案里的位置,取决于它前面所有船的到达误差,而这类误差是按步数的平方根叠加的:9 小时乘根号 5,约 20 小时。也就是说,90 秒算出来的第 5 个泊位安排,是在一个可能偏了将近一天的到港时间上做优化。一个漂亮的错答案,而且出得飞快。

只有速度、输入却不新鲜,还会造出一种慢计划时代没有的失效模式。既然 90 秒能重算一次,你就会一直重算,而每一次被陈旧或带噪的输入触发的重算,都会产出一份不一样的方案。堆场刚为 A 船把抓斗调过去,方案一翻,变成 B 船。我在堆场系统和运输管理系统的上线现场都见过这个套路,行内有个名字叫计划抖动。现场的人不再信方案,开始绕着它干活,真实的采纳悄悄往下掉,而报上去的那个采纳率还挺好看。这就说到指标了。

"采纳率 90% 以上"是这个故事里被引用最多、信息量最小的一个数。采纳不等于最优。它只说明方案能用,这比听起来弱得多。我想看的不是这个,是零修改采纳率:方案发出去、一个字段都没人动过的比例有多高。我还想看修改日志——哪几个字段是被手工改掉的,改了多少。如果计划员接受了排序,却把每条船的卸率估值重写一遍,那模型做的是容易的那一半,输入数据仍然是瓶颈。目标就定在这儿:把头条指标从"采纳率 90% 以上"换成"两个季度内零修改采纳率达到 70%",修改日志这个月开始埋点。

现在算钱,我自己拍的假设都会写明。假设一个干散货泊位组一天 4 条船靠泊,一年 1,460 条,平均每条 8 万吨,也就是一年约 1.17 亿吨。假设平均待泊时间从 20 小时降到 15 小时。我得跟你讲清楚这是我的读法,不是他们给的数:青岛港公布的是通过能力 +10%,我是借上面那条 ρ 曲线把它折算成待泊时间的下降,而且取得偏乐观。假设船舶时间价值 1,800 美元/小时,这是巴拿马型散货船的期租等价值加锚地燃油,也是我的假设。节省是 1,460 条 × 5 小时 × 1,800,一年约 1,310 万美元。摊到 1.17 亿吨上,大约是 0.11 美元/吨。

收货方那一侧再算一笔,这笔更有用。假设一家钢厂每月从青岛港接 12 万吨矿,也就是日均消耗约 4,000 吨。假设船舶到港时间的标准差目前是 3.2 天,降到 2.0 天。针对到达波动的安全库存大致是 z 乘 σ,95% 服务水平下 z 取 1.65。现在是 5.3 天的覆盖,之后是 3.3 天。差 1.98 天 × 4,000 吨,约释放出 7,900 吨。按假设的 100 美元/吨算,是约 79 万美元的流动资金被放出来;按假设的 8% 年持有成本(资金加堆存)算,一年约 6.3 万美元。

注意这笔账奖的是什么。它奖的是 σ 变小,不是均值变小。均值少 5 小时等于 0.21 天,对安全库存几乎没有影响,因为安全库存是拿来扛波动的,不是拿来扛晚到的。所以我想问青岛港、或者问任何一个上了这类系统的港口的问题,不是"方案快了多少",而是:到港时间的方差降下来了吗,还是只降了均值?这两个数在收货方那头是完全不同的两张报表,而且只有其中一个能让钢厂真的把库存砍下去。

我可能在两个地方判断错,两处都能验。一条是:老师傅的价值也许不在计算,而在例外。天气、输送机趴窝、引航员不够、承租人施压要插队、以及一个电话把事情摆平——这些全不在那 180 条规则里,而一旦你把八到十年的培养管道掐断,丢掉的正是这一块。如果钱在例外里,那么一个把规则占大头的大部分做得漂漂亮亮的模型,仍然可能让码头在坏日子里更难受,而坏日子才是贵日子。另一处是约束本身。青岛港堆场的数比泊位的数小,就是一个提示。如果真正的队列是在堆场或者铁路闸口形成的,那排泊优化是在打磨一个根本不是瓶颈的环节,10% 这个数在一个形状不同的港口上复现不出来。

能定案的检验很便宜。在同一个泊位组上,按月同时跟踪待泊时间均值和 P95。如果两个一起降,说明系统是真的把负载从队列上卸下来了。如果均值降了、P95 不动,那发生的事情是模型在挑软柿子:表现规矩、卸率估值干净的那些船排得很漂亮,乱的那一截还是乱。这个结果在优化项目里极其常见,而且除非有人坚持要看分位数,否则根本看不出来。

那么坐在货主这一侧,我会拿这条新闻怎么办。先建基线,因为后面所有事都压在它上面。把自己过去 12 个月的记录翻出来,做一张表:预报 ETA 对实际靠泊时间,按 72、48、24、12 小时分档,每档算平均绝对误差和标准差。在你知道自己的到港数据原来有多糟之前,你没法判断一个 90 秒的方案到底帮没帮上你。我见过公司在 20 小时的 ETA 误差上面再加一层优化,然后奇怪为什么什么都没动。先量化,再谈优化。

然后把数据口径写下来,这是整件事里最不体面也最值钱的一步。谁来填 ETA,谁来更新,多久更新一次,卸率估值归谁,两者打架的时候听谁的。一份排泊方案里至少有四方伸手——船代、码头计划室、引航站、收货方——而我的经验是,从来没有人写清楚过这四方里谁才是唯一的真值来源。刷新频率也要跟着新的求解速度走:模型 90 秒重算一次,一天更新一次就是笑话。我会把阈值定在:48 小时外 ETA 平均绝对误差不超过 3 小时,12 小时内不超过 1 小时;卸率估值与实际偏差在 10% 以内;动态字段 15 分钟刷新一次。

再给重算加一道护栏。一个每 90 秒就能变的方案,不加约束一定会抖。我的要求是:只要重算把某条船挪动超过一个潮汐窗口,或者相对堆场正在执行的那一版换了两个以上泊位,就必须人工确认。这一条几乎不损失方案质量,却保住了这类项目最缺的东西——现场对方案的信任。顺手把指标也换掉:待泊时间均值加 P95、卸率方差、零修改采纳率、每周计划抖动次数。四个数,一页纸,每月过一次。

商务这一侧,别再向船代要一个日期,要一个分布。"14 号到"是一个没有误差棒的数,而你是拿它在设安全库存。要到达窗口,如果他们给得出,还要这条航线实际的标准差。然后把那个 σ 代进你自己的库存公式,算算你的安全库存应该是多少——我合作过的大多数钢厂,扛的都是一個好些年没人量过的 σ。合同要续的时候,把 P95 待泊时间放进装卸时间的谈判里,别放均值。滞期是尾巴吃出来的,而尾巴恰恰是这类系统唯一可能真的压下去的东西。

Leo 会说这是经验让位给了机器,我同意一半:机器赢在一致性,输在例外。我不认同的是那个标题。90 秒对 2 小时是个错的对比,因为那 2 小时从来就不是钱所在的地方。钱一直在队列里,而现在喂这条队列的,是谁手里握着数据。先量化,再谈优化。

↑ 返回核心要点

— 作者 拉维

port-ailarge-language-modelberth-planningqingdao-port