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

使用Bloom模型推理时遇AttributeError:'BloomForCausalLM'无encode属性

问题原因及修正方案

核心问题原因

  • 你错误地将模型类(AutoModelForCausalLM)实例赋值给了tokenizer变量,AutoModelForCausalLM是用于加载大语言模型的类,本身没有encode方法——encode是分词器(Tokenizer)类专属的方法,这是报错的直接原因。
  • 代码还存在另外两处错误:
    • 加载生成模型时误用了AutoModel,这是基础模型类,不具备文本生成所需的generate方法,应该使用AutoModelForCausalLM
    • 最终解码结果时调用tokenizer.result是错误的,Tokenizer类没有该方法,正确的解码方法是tokenizer.decode

修正后的完整代码

from transformers import AutoModelForCausalLM, AutoTokenizer

# checkpoint = "bigscience/bloomz-7b1-mt"
checkpoint = "bigscience/bloom-1b7"

# 用AutoTokenizer加载对应模型的分词器
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
# 用AutoModelForCausalLM加载具备生成能力的模型
model = AutoModelForCausalLM.from_pretrained(checkpoint, torch_dtype="auto", device_map="auto")

# 待处理的提示文本
prompt = "Translate to English: Je t’aime."
# 注意:bloom-1b7的最大上下文长度为2048,设置过大的max_length会报错,此处设为合理值
max_length = 50

# 分词并将张量转移到CUDA设备
inputs = tokenizer.encode(prompt, return_tensors="pt").to("cuda")

# 执行文本生成
outputs = model.generate(inputs, max_length=max_length)

# 解码生成结果,跳过特殊标记让输出更整洁
result = tokenizer.decode(outputs[0], skip_special_tokens=True)

# 打印最终结果
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:01:23