已关闭
Tokenizer 冷启动 Initialize 被短超时重试打穿,sidecar 叠线程触发 transformers ImportError #49
lileqi创建于  8月27日关闭于  8月28日
lileqi成员
8月27日 创建

问题描述 / Description

kserve 路径上 tokenizer sidecar 冷启动时,EPP 日志出现连续 DeadlineExceeded / Tokenizer initialization failed; retrying,sidecar 侧出现:

ImportError: cannot import name 'AutoTokenizer' from 'transformers'

并伴随多路交错的 HuggingFace / vLLM import。请求路径 fail-open,但初始化被重试风暴拖长,极端情况下 worker 线程叠在首次 transformers lazy import 上。

!73 把无限重试改成了有界指数退避(1s→30s,总窗口 1 分钟),没有改变「短超时打断 gRPC、worker 仍继续跑」这一层。

根因 / Root cause

  1. transformers 5.x 用 _LazyModule 替换 sys.modules[__name__],模块替换完成前 from transformers import AutoTokenizer 会 ImportError。
  2. sidecar Initialize 走 asyncio.to_thread;客户端超时取消的是 RPC,不会停掉 worker 线程。
  3. EPP !73 对未完成的 Initialize 做短超时指数退避,下一枪叠在上一枪的 import 上。
  4. sidecar initialize() 无单飞,并发调用会重复走 resolution / lazy import。

期望行为 / Expected

  • Sidecar 对同一 (model, tokenizer_name) 单飞:并发 RPC 共享一次 in-flight 结果;失败不缓存。
  • EPP 先等 UDS 就绪,再一枪覆盖冷启动的长 initTimeout(默认 2m)。
  • 只在已经完成的失败之后按固定间隔重试;永久错误(InvalidArgument / Unimplemented / model mismatch)立即停止。
  • 冷启动日志:1 次 attempt started 后 succeeded,sidecar 不叠多路 vLLM import。

修复 PR:https://gitcode.com/openFuyao/hermes-router/merge_requests/83

likedislike
openFuyao-botopenFuyao-bot成员
8月27日 添加了label:sig/sig-ai-inference
openFuyao-bot
openFuyao-bot成员
8月27日 评论:

欢迎来到 openFuyao 社区

Hey @lileqi , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。您可以自助配置此仓库的 PR 合并规则,更多详情,请参阅此处。

联系指引

有疑问可以联系 SIG: sig-ai-inference ,
维护者是: @foxbit, @regandy ,
审核者是: @ShiroChen, @piamposer-li, @qinwenzh .

likedislike
Llileqi成员
8月27日 关联了pull request:feat(tokenizer): 用 socket wait + 长 Initialize 替换指数退避,sidecar 单飞初始化
zhengqinwenZZZzhengqinwenZZZ成员
8月28日 添加了label:bug
zhengqinwenZZZzhengqinwenZZZ成员
8月28日 issue状态由 开启 改变为 待测试
zhengqinwenZZZzhengqinwenZZZ成员
8月28日 issue状态由 待测试 改变为 已完成
zhengqinwenZZZzhengqinwenZZZ成员
8月28日 关闭了 issue
zhengqinwenZZZzhengqinwenZZZ成员
8月28日 关联了看板:openFuyao - v26.09问题单