← 返回概念解读

Concept Fable精修版

动态批处理

Dynamic Batching / In-flight Batching · Inference

先读故事。这里不急着给定义,先让问题自己长出来。

寓言故事

渡船学会在航行中接上下一批货

江口码头用大船运货。旧规矩是一船装满就封舱,等所有货到终点再开下一船。若船里有一箱远路重货,旁边几箱近路轻货也得陪着等。

旺季一到,码头排起长队。轻货商抱怨,一箱急信要等整船茶砖;重货商也不满意,船舱常因等齐同路货而空着半边。

船长先把船分得更细,小船跑短途,大船跑长途。可潮水和货量每天变,小船有时空跑,大船仍会被慢货拖住。

老调度改了装船法。船行到中途小港,已到站的货立刻卸下;空出的格子若大小合适,就接上同方向的新货。每次换货都要记在舱位牌上,谁从哪格下,谁补进哪格,下一站谁负责交接。

一开始水手乱补,差点把易碎瓷器压在铁器下。调度便加了规矩:货类、目的地、重量和优先级必须匹配,换舱只能由舱牌官登记。流动可以提高周转,失去记录就会变成混乱。

第一周也出过错。水手只顾接新货,差点把一箱急信塞到绕远的舱格。老调度于是规定,换货前必须看目的地、剩余路程和舱格大小;能接才接,不能为了满舱乱接。

新装船法让码头更忙,也更需要规矩。水手要在船行中看格子、看去向、看剩余路程,不能只等整船结束。轻货不再被慢货绑死,船舱也不再因为僵硬批次空着。 后来船长每到中途小港都像下一盘棋:哪些货已到,哪些格子可用,哪些新货能顺路接上。船没有停成死批次,航行本身也成了调度的一部分。

几趟之后,船不必等整批同生共死。近路货按时下船,长路货继续前行,空舱也少了。船长明白,批次不一定是一关到底的死队伍;在行进中有纪律地卸下、补位和重排,才能让吞吐和秩序同时存在。

揭示

这个故事讲的是:动态批处理

Dynamic Batching, also called In-flight Batching, adds new requests into an actively running inference batch as other requests finish. It is closely related to continuous batching and is used by LLM serving systems to improve GPU utilization under variable request lengths. The scheduler must balance throughput gains against fairness, priority, memory pressure, and tail latency.

它重要的地方在于:它不只是一个术语,而是在真实 AI / Agent 系统里会反复出现的结构性问题。理解它,才能判断什么时候该加模型,什么时候该改流程,什么时候该补治理。

隐喻映射

  • 渡船:模型 serving 资源
  • 整船一批:传统固定 batch
  • 中途卸货和空舱:序列完成后释放 batch slot
  • 航行中接新货:in-flight batching
  • 货物标签:请求长度、priority、tenant、memory footprint
  • 船身平衡:显存和调度约束
  • 最后洞察:Dynamic Batching 的重点是在运行中的批次里补位,让 GPU 少等,但不能牺牲延迟和公平性

Soloharness 判断

这个概念的实战价值,是帮你把“看起来聪明的 AI 功能”拆成可交付、可验收、可治理的工作单元。

continuous batchingvLLMTGIserving throughput

相关辨析

这个概念容易和相邻概念混用,建议继续看对比页。