Qwen-1.8B-Chat 推理实践:transformers 版本冲突问题排查与解决

0 阅读1分钟

背景

在魔塔社区"七天入门大模型"课程实践中,使用 Qwen-1.8B-Chat 模型进行推理时遇到版本兼容问题。本文记录问题排查过程和解决方案。


问题复现

初始代码

from modelscope import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(
    "Qwen/Qwen-1_8B-Chat", 
    trust_remote_code=True
)

model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen-1_8B-Chat",
    device_map="auto",
    trust_remote_code=True
).eval()

错误信息

ImportError: cannot import name 'is_torch_tpu_available' from 'transformers.utils'

问题分析

依赖链路

Qwen-1.8B-Chat
    └── transformers_stream_generator
            └── transformers.utils.is_torch_tpu_available (已移除)

根本原因

transformers >= 4.38.0 移除了 is_torch_tpu_available 函数,但 transformers_stream_generator 仍在尝试导入它。


解决方案

版本锁定

版本
transformers4.32.0
transformers_stream_generator0.0.4
accelerate最新
tiktoken最新
einops最新
modelscope最新

安装命令

pip uninstall -y transformers transformers_stream_generator
pip install transformers==4.32.0
pip install transformers_stream_generator==0.0.4
pip install accelerate tiktoken einops modelscope

# 重启 Kernel

完整测试代码

from modelscope import AutoModelForCausalLM, AutoTokenizer

# 加载模型
tokenizer = AutoTokenizer.from_pretrained(
    "Qwen/Qwen-1_8B-Chat", 
    trust_remote_code=True
)

model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen-1_8B-Chat",
    device_map="auto",
    trust_remote_code=True
).eval()

# 多轮对话测试
response, history = model.chat(tokenizer, "你好", history=None)
print(f"助手:{response}")

response, history = model.chat(
    tokenizer, 
    "给我讲一个创业故事", 
    history=history
)
print(f"助手:{response}")

运行结果

Pasted image 20260224174610.png

模型成功加载并完成多轮对话测试!


总结

问题解决方案
transformers 版本过高降级到 4.32.0
缺少 stream_generator安装 0.0.4 版本
安装后仍报错重启 Jupyter Kernel

关键点:开源大模型的依赖版本有严格要求,遇到 ImportError 优先检查版本兼容性。


参考


📌 本文首发于掘金,作者:AI探索者 🔗 转载请注明出处

💡 如果觉得有帮助,欢迎点赞、收藏、关注!