我有一个项目需要使用
llava-1.5-7b-hf
来推断带有文本和纯文本数据的图像。我知道如何处理带有文本的图像,但我无法找到一种方法来推断仅文本的情况。我尝试了
inputs = processor(text=conversation, images=None, return_tensors="pt").to('mps')
和系统输出
TypeError: is_floating_point(): argument 'input' (position 1) must be Tensor, not NoneType
我也尝试使用虚拟张量,但没有成功:
inputs = processor(text=conversation, images=torch.zeros((1, 1, 1)), return_tensors="pt").to('mps')
...
ValueError: mean must have 1 elements if it is an iterable, got 3
请指导我如何做。非常感谢!
你遇到的错误是因为
llava-1.5-7b-hf
模型是专门为处理图像和文本的多模态输入而设计的。它
不能
单独用于推理纯文本内容。
如果你想使用 Llava 进行纯文本推理,你需要使用 仅解码器 的 Llava 变体,比如 llava-7b-hf 。
以下是如何使用
transformers
库和
llava-7b-hf
模型进行纯文本推理的示例:
from transformers import AutoTokenizer, AutoModelForCausalLM
# 加载模型和分词器
model_name = "llava-7b-hf"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name).to('mps') # 假设你使用的是 MPS 设备
# 准备你的文本输入
conversation = "你好!你今天过得怎么样?"
# 使用分词器编码文本
inputs = tokenizer(conversation, return_tensors="pt").to('mps')
# 生成文本
with torch.no_grad():
outputs = model.generate(**inputs)
# 解码生成的文本
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
# 打印生成的文本
print(generated_text)
这段代码将:
-
加载
预训练的
llava-7b-hf
模型和分词器。 - 编码 你的文本输入。
- 使用模型 生成 文本。
- 解码 生成的文本并打印出来。
请注意:
-
确保你的环境中安装了
transformers
库。你可以使用pip install transformers
安装它。 -
将
'mps'
替换为你正在使用的实际设备。 - 这只是一个简单的示例。你可能需要根据你的具体需求调整代码。
希望这可以帮助你进行纯文本推理!
标签:python,deep-learning,huggingface-transformers From: 78842203