上一章把瓶颈自己收拾干净了。这一章处理全书最反直觉的一步:迁就——让其他所有环节主动服从瓶颈的节奏,哪怕这意味着让它们闲着。
「迁就」到底在迁就什么
先说清楚迁就的对象。瓶颈的节奏是:每晚一到两份审核,一周大约三到七份成品。迁就的意思就是——整条流水线的其他环节,按这个节拍器走:
- 生成端:一周只生成三到七份(加一点点余量),不是能跑多少跑多少;
- 选题端:一周只想三到七个值得做的主题,想到第十个先记在停车场清单里;
- 素材和 prompt:围着「今晚要审哪一份」准备,不围着「万一以后用得上」囤积。
听起来容易,做起来违反人性。因为每个非瓶颈环节都有自己的「上进心」:生成端觉得「反正 token 不要钱」;选题端觉得「点子不记下来就忘了」;它们都在用局部的勤奋,给系统制造第四章算过账的那种库存。迁就的本质,是要求非瓶颈环节克制。
鼓、缓冲、绳子:一套现成的节奏装置
工厂里这套迁就不是靠自觉,是靠一套装置,高德拉特叫它 鼓-缓冲-绳子(Drum-Buffer-Rope):
鼓(Drum)是瓶颈的节奏。瓶颈每小时加工两件,全厂的生产节拍就是每小时两件——鼓点由最慢的人敲。在我的书桌上,鼓点就是那张审核日程:周一晚审 A 稿,周三晚审 B 稿。它是全系统的「官方时间」。
缓冲(Buffer)是摆在瓶颈面前的一小摞待办,保证它永远不挨饿。注意是「一小摞」——缓冲的作用是吸收波动(比如某份稿子临时被打回重生成了,审核不至于空转),不是囤积。工厂里缓冲按时间算:保证瓶颈面前始终有「大约两个鼓点」的工作量。我的版本:待审队列永远保持 2~3 份,不多不少。少于 2,瓶颈有挨饿风险;多于 3,多出来的不是安全垫,是第四章里收租金的库存。
绳子(Rope)是把「投放新任务」这个动作拴在鼓点上的一根虚拟绳子:瓶颈每消化一份,才向上游放行一份新的生成任务。绳子是这套装置的精髓——开工的许可不取决于上游有多少能力,而取决于瓶颈刚完成了多少。
大白话:不是「有 token 就生成」,是「审完一份才准生成一份」。生成端的油门线,直接接到审核端的里程表上。
绳子怎么拽:一个具体的周日晚上
回到那个周六。如果当时有这根绳子,剧本会是这样:
晚上九点抢到 3 亿 token。我第一件事不是开任务,是算鼓点:接下来一周,每晚能审一份,共七份。于是本周生成配额 = 7 份 + 2 份缓冲 = 9 份。我在任务清单里只排 9 个生成任务——每个都认真写 prompt(反正 token 多得是,单份可以用到几百万 token 做精修迭代,额度根本不是约束,约束在下游)。
周日晚上,9 份跑完,2 份进缓冲,7 份按日程进审核队列。剩下的 token?随它过期。周一晚上审完第一份,绳子放一格——如果对新主题又有了想法,此刻才允许补一个新的生成任务。
对比一下两个版本的结局:没绳子的版本,37 份库存、两周焦虑、大部分稿子变质报废;有绳子的版本,9 份稿子全部获得认真的审核,成品率反而是高的。生成得少,交付得多。这就是迁就的回报。
对付「闲着难受」
迁就最难的不是机制,是心理:看着生成端闲置,人会难受,总觉得「亏了」。两个心法:
第一,闲的是环节,不是系统。系统的产出由瓶颈决定,非瓶颈闲着一秒,系统什么都没损失。机器利用率那个旧执念,换个名字(token 利用率、时间利用率)照样是错的。
第二,上游省下来的精力,不是扔了,是投了。生成端少跑任务,省下的注意力可以去给瓶颈打下手——备料、写清单、做预标注,也就是第六章那些「挖尽」动作。迁就环节省下的每一分力气,都可以变成挖尽环节的投入。这两个动作是同一枚硬币的两面:从瓶颈之外撤出的所有资源,都堆到瓶颈上去。
节奏立起来了,队列稳定在两三份。但这引出一个新问题:为什么「队列长一点」的直觉如此顽固?第八章来拆「库存」这个东西的全部伪装。