已实现

v03_request_states

本版本引入什么

本版本为请求加入明确的生命周期状态:等待、运行和完成。

它还引入调度结构,使请求移动不再隐藏在单个生成循环里。

为什么引入

当请求已经支持批处理和缓存后,引擎必须知道哪些请求尚未开始、哪些正在解码、哪些应该返回给调用者。这个生命周期是连续批处理的基础。

核心原则

模型前向路径不应决定请求生命周期。调度器拥有请求状态,为当前步骤构建模型输入,并在生成后处理输出词元。

这会分离两个关注点:

  • 模型计算 logits。
  • 调度器决定接下来运行谁、谁已经完成。

建议对比的文件

  • request.py:显式请求状态。
  • scheduler.py:请求移动。
  • llm.py:公开生成接口。
  • layer/gqa.py:确认注意力仍采用同一种缓存思路。

保留的权衡

引擎仍然很小,整体上仍接近同步执行。这里的价值不是生产级调度策略,而是在请求开始动态进出批次前,让请求状态清晰可见。