首页 > 编程问答 >如何使用 Llava-hf 来推理纯文本内容?

如何使用 Llava-hf 来推理纯文本内容?

时间:2024-08-07 14:57:59浏览次数:12  
标签:python deep-learning huggingface-transformers

我有一个项目需要使用 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)

这段代码将:

  1. 加载 预训练的 llava-7b-hf 模型和分词器。
  2. 编码 你的文本输入。
  3. 使用模型 生成 文本。
  4. 解码 生成的文本并打印出来。

请注意:

  • 确保你的环境中安装了 transformers 库。你可以使用 pip install transformers 安装它。
  • 'mps' 替换为你正在使用的实际设备。
  • 这只是一个简单的示例。你可能需要根据你的具体需求调整代码。

希望这可以帮助你进行纯文本推理!

标签:python,deep-learning,huggingface-transformers
From: 78842203

相关文章

  • 将普通 python 文件导入另一个文件时出现 AttributeError
    我是新手。我正在尝试将简单的python文件导入到我的主文件中。相同的代码在我的mac上工作,但在我的电脑上不起作用。我不断收到此错误消息。“AttributeError:模块‘logo’没有属性‘hammer_logo’”第一个文件拍卖.py代码importlogoprint(logo.hammer_logo)第......
  • 使用python读取mysql数据,并记录到本地的文件中
    上次写过一次读取sqlserver数据,写入本地文件。今天分享一下mysql的。原理相似,希望对大家有小小的帮忙PS,我是3.6.13版本python,上一版本用包mysql-connector,一直不成功,查询官方文档,发现这个版本的PYTHON简直是奇葩的存在了。基本所有版本都支持,就是几个小版本排除在外了。......
  • python合并音视频-通过moviepy模块合并音视频
    ......
  • esp32安装circuitpython
    安装Thonnyhttps://thonny.org/在Thonny中安装circuitpython在配置解释器中选择circuitython然后点击右下角“安装或更新...“variant这里我选择了DOITesp32DevelopmentBoard(试过其他的一些个,不知道为什么安装完之后会无限重启,所以最后选择了这个)烧录完之后,重新连接,Th......
  • 利用Python进行金融数据分析的全面指南【文末送书】
    文章目录Python金融数据分析技术文章Python金融数据分析【文末送书】Python金融数据分析技术文章金融数据分析在现代金融行业中扮演着至关重要的角色。通过使用Python编程语言,我们可以对大量金融数据进行处理、分析和可视化,从而获得有价值的洞察。本篇文章将介绍如何......
  • python和sliver交互
    开源第三方库:https://sliverpy.readthedocs.io/en/latest/getting-started.html#connect-example代码示例:importosimportasynciofromsliverimportSliverClientConfig,SliverClientCONFIG_PATH=os.path.join('../sliver/','moloch_127.0.0.1.cfg')......
  • 不写代码,这样使用Python seaborn、matplotlib
    今天分享一个PyQt5GUI工具,动动鼠标拖拽就使用Python的Matplotlib、Seaborn进行绘图,并导出高清PDF。sviewgui安装pip install sviewguisviewgui使用使用很简单,因为,他只有一个方法啊:buildGUI();下面以tips.csv数据和boxplot为例介绍sviewgui的使用。以下三种方法均可......
  • 零基础学习人工智能—Python—Pytorch学习(一)
    前言其实学习人工智能不难,就跟学习软件开发一样,只是会的人相对少,而一些会的人写文章,做视频又不好好讲。比如,上来就跟你说要学习张量,或者告诉你张量是向量的多维度等等模式的讲解;目的都是让别人知道他会这个技术,但又不想让你学。对于学习,多年的学习经验,和无数次的回顾学习过程,都......
  • 【Python】网络编程
    计算机网络的介绍计算机的发展经历了以下几个阶段:阶段时间物理器件第一阶段1946年到20世纪50年代后期电子管第二阶段20世纪50年代后期到20世纪60年代中期晶体管第三阶段20世纪60年代中期到20世纪70年代初期中小规模集成电路第四阶段20世纪70年代初期至今大规模集成电路1.通......
  • 猫头虎分享 Python 知识点:pandas--info()函数用法
    ......