ai-infra-interview-305

第 142 题:推理批处理的timeout处理?部分结果返回?

题目

推理批处理的timeout处理?部分结果返回?


完整讲解

一、Batch 与 Timeout 问题

推理批处理为凑满 batch 会等待一段时间;若某请求等待过久推理执行过久,需要 timeout 控制:超时则不再等待该请求、或中止其推理,并给客户端明确反馈(超时错误或部分结果),避免长时间挂住连接与资源。

二、Timeout 处理策略

(1)排队超时:从请求进队到开始执行的上限时间;超时则直接返回 408/503 或「排队超时」错误,不进入推理。(2)推理超时:从开始推理到返回的上限;超时可选:中止当前 batch 中该请求(若后端支持 per-request 取消)、或等整批完成但对该请求标记超时并返回错误。(3)部分结果返回:对生成类任务,可设「最大等待时间」,到点则返回已生成部分(如已生成的 token)+ 超时标记,让客户端决定是否继续轮询或放弃。这样既不白算、又给用户部分可用结果。

三、实现要点

在队列与执行层设 timeout 参数;超时后释放该请求占用的 slot 或 KV;响应中区分「排队超时」与「推理超时」;流式场景可每 chunk 检查 deadline、超时则停止生成并返回已生成部分。


面试要点


记忆要点

  1. Timeout = 排队超时 + 推理超时;超时必返回明确状态并释放资源。
  2. 生成类可支持「部分结果」:已生成 token + 超时标记。
  3. 实现:队列与执行层设 deadline;区分排队/推理超时;流式可按 chunk 检查。
返回模块 返回总览