You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Synapse Notebook导入transformers报tokenizers版本不匹配问题

问题原因
  • Azure Synapse Spark集群的Python包路径存在优先级差异:集群预安装的系统级包路径优先级高于用户手动安装的用户级包路径。你之前升级的transformers和tokenizers实际安装在了用户路径下,内核import时优先读取到了系统预安装的旧版本tokenizers 0.9.2,因此触发版本校验报错。
  • pkg_resources.working_set的输出优先展示用户安装的包版本,没有体现路径优先级带来的实际import版本差异,导致校验结果和实际运行情况不符。
解决方案

方案1:调整包导入优先级(临时生效,适合快速测试)

在所有导入代码的最开头添加路径调整代码,将用户包路径调整为最高优先级:

import sys
# 将用户级包路径调整到系统路径之前,优先读取用户安装的版本
sys.path.insert(0, '/home/trusted-service-user/.local/lib/python3.6/site-packages')

调整完成后可运行以下代码验证实际导入的包版本和路径:

import tokenizers
import transformers
print(tokenizers.__version__)
print(tokenizers.__file__)
print(transformers.__version__)
print(transformers.__file__)

确认版本符合要求后再加载BERT模型即可。

方案2:集群预装指定版本包(永久生效,适合生产环境)

通过Synapse Spark池的配置统一安装依赖,避免路径优先级冲突:

  1. 进入对应Synapse工作区的Spark池配置页面
  2. 切换到「包」选项卡,上传包含以下内容的requirements.txt文件:
transformers==4.10.3
tokenizers==0.10.3
  1. 保存配置并重启Spark池,集群所有节点都会统一安装指定版本的依赖,后续运行无需再调整路径。

方案3:强制重装依赖

如果需要临时修复,可在notebook中执行强制重装命令,覆盖现有版本:

!pip install --force-reinstall transformers==4.10.3 tokenizers==0.10.3

重装完成后重启notebook内核,重新运行代码即可生效。

内容的提问来源于stack exchange,提问作者blacksmith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:57:00