都江堰:AI算力调度为什么这样设计
在《伯阳谋》里,我们想把工程过程公开一些。最近我们把AI任务的算力调度系统命名为“都江堰”。它解决的是同一类问题:资源有限、渠道不稳定、任务不能靠硬堆机器或人工救火。我们需要一套能自动分水、控量、排沙的调度逻辑。
一、为什么用都江堰做比喻
都江堰的核心不是硬造一座坝,而是顺着水势分水治水:总闸控量,决定能放多少水;渠道分流,决定水往哪里走;堰口排沙,把不该进入主干道的泥沙提前排走。放到AI分析服务里,这三件事对应调度系统的几层控制:先判断当前可用算力与成本水位,再在允许范围内选择具体服务渠道,最后过滤重复调用、失败循环和异常消耗。它像水利设施一样自动运行、异常泄洪、长期防淤。
二、四层调度:从场景绑定到飞沙堰
第0层:场景绑定,像专线供电
有些任务对结果一致性要求很高,可以走“专线”:固定任务固定使用某个模型档位,不经过总闸临时分流。这层的目的不是省事,而是减少不确定性。只要场景绑定明确,调度系统就不必每次重新选择渠道。
第1层:宝瓶口总闸,先看水量再决定能用什么
第1层调度先问:现在“水量”够不够?这里的“水量”是算力额度、成本池水位和当前可用资源。系统把状态分成三档:丰水、节水、保灌。丰水时调度宽松,允许使用更高质量或更高成本的服务渠道;节水时主动降档,优先选择更经济的渠道;保灌时只允许使用免费或最低成本资源,保证核心任务不断流。
这很像电网调度:先看当前可用出力和负荷需求,再决定开机方式。AI分析服务也一样,先确定本次任务允许使用什么级别的模型档位,再谈具体选择。没有总闸,后面的性价比优化就可能失控。
第2层:渠道层性价比选择,像电力市场出清
总闸放行后,第2层才进入具体渠道选择。调度系统在允许范围内按“效用/成本”排序,选择当前最合适的AI分析服务渠道。
这里的成本不能只看单次调用价格,还要计入隐性成本:某个渠道最近失败率高就扣分,延迟抖动大就扣分,输出质量不稳定也扣分。否则系统会反复选择表面便宜、实际总成本更高的渠道。这类似电力市场按报价与可靠性排序出清,在总闸约束下找综合性价比。
第3层:飞沙堰过滤,把泥沙排出去
飞沙堰把多余泥沙排走,避免渠道淤积。第3层负责拦截重复调用、死循环和异常消耗。
如果同一任务短时间内反复请求同一类结果,系统识别为重复调用;如果某个渠道连续失败达到按运行数据校准的条件,系统自动熔断,不再把新任务送进去。目的是防止失败像泥沙一样越积越多,拖慢整个调度系统。
三、关键设计原则:下层不能越权
- 下层不能越权:性价比再高,也不能突破总闸限制。第2层只能在第1层允许的范围内选择渠道,否则局部优化会变成全局失控。
- 调度决策在系统内部自动完成:人工可以观察、复盘、调整策略,但日常任务不应依赖工程师临时判断。
- 每次调用都要留痕:总闸状态、候选排序、选择原因、过滤或熔断都要能事后回放。我们借鉴电力系统的“事后校核”,让调度结果不仅当时合理,也能事后解释。
四、为什么必须是状态驱动,而不是写死规则
AI调用成本波动大,渠道稳定性也不一。今天合适的渠道,明天可能延迟升高;这个月宽松的额度,下个月可能收紧。它像水电一样“看天吃饭”,所以调度不能写死,必须状态驱动:先读取算力额度、成本池水位、渠道健康度、任务优先级和历史失败情况,再决定允许档位、候选渠道、是否降档、是否熔断。好的调度系统不应该总是“最聪明”,而应该总是“知道边界”。都江堰给我们的启发就在这里:不硬堵,不蛮干,先分水,再控量,再排沙。