v03_request_states
本版本引入什么
本版本为请求加入明确的生命周期状态:等待、运行和完成。
它还引入调度结构,使请求移动不再隐藏在单个生成循环里。
为什么引入
当请求已经支持批处理和缓存后,引擎必须知道哪些请求尚未开始、哪些正在解码、哪些应该返回给调用者。这个生命周期是连续批处理的基础。
核心原则
模型前向路径不应决定请求生命周期。调度器拥有请求状态,为当前步骤构建模型输入,并在生成后处理输出词元。
这会分离两个关注点:
- 模型计算 logits。
- 调度器决定接下来运行谁、谁已经完成。
建议对比的文件
request.py:显式请求状态。scheduler.py:请求移动。llm.py:公开生成接口。layer/gqa.py:确认注意力仍采用同一种缓存思路。
保留的权衡
引擎仍然很小,整体上仍接近同步执行。这里的价值不是生产级调度策略,而是在请求开始动态进出批次前,让请求状态清晰可见。