Is transformers 5.12.1 requires tokenizers =0.22.0 really right?

这个报错通常出现在安装或升级 Transformers 5.12.1 时,依赖解析器因 tokenizers 版本范围冲突而失败。核心问题是 tokenizers 0.23.0 实际上只是 rc0、并未正式发布,但约束里仍写了 >=0.22.0,<=0.23.0 ,优先排查 tokenizers 版

快速结论:这个报错通常出现在安装或升级 Transformers 5.12.1 时,依赖解析器因 tokenizers 版本范围冲突而失败。核心问题是 tokenizers 0.23.0 实际上只是 rc0、并未正式发布,但约束里仍写了 >=0.22.0,<=0.23.0,优先排查 tokenizers 版本范围与 PyPI 上真实可用版本是否匹配。

适用环境:Issue 中确认涉及 Transformers 5.12.1、tokenizers 0.23.1,以及 tokenizers 0.23.0 未正式发布的发布状态;未确认操作系统、Python、CUDA、显卡等环境信息。

最快修复方案:Issue 评论指出修复已落在提交 242f5df996ded281cc328c5b9bcc1bee0ec48118,但没有说明该提交对应哪个正式发版。因此“暂无确认的一步修复方案”,可优先尝试升级到包含该提交的 Transformers 版本。

注意事项:该 Issue 被多次标记为 stale,相关上游问题 #45736 也处于暂停状态;提交只表明仓库中已修改,不代表已发布到 PyPI,也不保证 tokenizers 0.23.1 与当前测试套件完全兼容。

问题场景

用户在安装或升级 Transformers 5.12.1 时触发依赖解析问题,或在 CI/依赖机器人(如 GitHub Dependabot)尝试把 tokenizers 升级到 0.23.1 时出现版本冲突。相关场景还涉及 tokenizers 0.23.0 从未正式发布、只有 0.23.1 正式发布这一发布事实。

报错原文

Is transformers 5.12.1 requires tokenizers<=0.23.0,>=0.22.0 really right?

tokenizers 0.23.1 is the first proper stable release in the 0.23 line — 0.23.0 only ever shipped as rc0 because the release pipeline itself was broken.
There is no functional 0.23.0 published — we tag 0.23.1 directly so users don't accidentally pull a never-shipped version.

原因分析

最可能的原因是 Transformers 5.12.1 声明的 tokenizers 依赖上界 <=0.23.0 与 tokenizers 实际发布状态不一致。tokenizers 0.23 系列里,0.23.0 只发布过 rc0,正式可用的是 0.23.1。因此 0.23.1 属于 0.23 系列,却不满足 <=0.23.0 这个上界,导致依赖升级或安装解析失败。Issue 中提出的疑问正是应把上界调整为 <0.23 还是 <0.24,但这部分并未形成明确结论。另一个可能原因是该约束涉及的上游修复(#45736)尚未落地,因此相关依赖更新被推迟。

环境排查

  • 确认当前安装的 Transformers 版本是否为 5.12.1。
  • 确认 tokenizers 版本是 0.22.x、0.23.0 rc0 还是 0.23.1。
  • 确认安装来源是 PyPI 还是本地/镜像源,检查是否存在从未正式发布的 0.23.0。
  • 确认依赖解析器(pip、uv、Dependabot 等)报告的冲突具体指向哪个版本范围。
  • Issue 未提供 Python、CUDA、PyTorch、操作系统、显卡信息,这些项无需在本问题中优先排查。

解决步骤

  1. 先查看 issue 中提到的修复提交 242f5df996ded281cc328c5b9bcc1bee0ec48118,确认它是否修改了 tokenizers 的版本约束。
  2. 确认该提交是否已包含在你当前使用的 Transformers 版本中;若未包含,考虑升级到已合入该提交的版本。
  3. 若暂时无法升级 Transformers,可优先尝试固定一个满足现有约束的 tokenizers 版本,例如 0.22.x 系列(Issue 未验证 tokenizers 0.23.1 与当前测试套件的兼容性,此步仅供临时绕过)。
  4. 关注上游 tokenizers 更新问题 #45736,该问题在讨论时仍处于暂停状态,之后再按最终确定的版本范围调整。
  5. 如果由 Dependabot 等工具自动升级触发,先暂停该依赖的自动升级,等 Transformers 正式放宽上界后再恢复。

验证方法

升级或固定版本后,重新执行安装/依赖解析命令,确认不再出现 tokenizers 版本范围冲突;再运行 python -c "import transformers, tokenizers; print(transformers.__version__, tokenizers.__version__)" 类的最小导入检查,确认两者可同时加载。若你正在使用 Transformers 的相关功能,建议再跑一次对应的小测试或推理流程,确认 tokenizers 0.23.1 未引入行为变化。

参考来源

huggingface/transformers #46785

huggingface/transformers #45736

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 25796

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注