已实现

v04_continuous_batching

本版本引入什么

本版本加入一个小型连续批处理引擎。已有请求继续解码时可以接纳新请求,完成的请求也可以离开,而无需停止整个批次。

为什么引入

静态批次很简单,但服务流量不是静态的。如果引擎必须等批次中所有请求结束后才接纳新工作,快速请求会被慢请求阻塞,GPU 利用率也会下降。

核心原则

每个步骤从等待池和运行池中选择工作:

  • 预填充工作启动新请求。
  • 解码工作让运行中的请求前进一个词元。
  • 已完成请求被取出并返回结果。

重要变化在于,批次现在是一串请求状态转换,而不是固定列表。

建议对比的文件

  • engine.py:步骤循环。
  • scheduler.py:接纳和移除请求。
  • request.py:生命周期字段。
  • kvcache.py:请求在引擎中移动时的缓存所有权。

保留的权衡

策略有意保持简单,在引入固定槽位和静态缓冲区前,把连续批处理机制直接呈现出来。