PaliGemma是由Google开发的一种多模态视觉模型架构,它提供了多种预训练模型,这些模型在特定任务上进行了微调,以实现出色的性能。与传统的模型如GPT-4带视觉功能和Claude-3相比,PaliGemma能够在自己的硬件上运行,这为用户提供了更多的灵活性和控制权。
RoboflowInference是一个高性能的视觉推理服务器,可以使用它来运行像PaliGemma或YOLOv10这样的先进计算机视觉模型。可以通过Python包或使用Docker部署的微服务来运行Roboflow Inference。本指南将展示如何使用Python包部署Inference。
要安装Inference Python包,请运行以下命令:
pip install git+https://github.com/roboflow/inference --upgrade -q
还需要安装一些PaliGemma模型将使用的附加依赖项:
pip install transformers>=4.41.1 accelerate onnx peft timm flash_attn einops -q
安装完Inference后,可以开始构建使用PaliGemma进行文档理解的逻辑。
现在已经准备好构建一个使用PaliGemma的文档理解系统了。创建一个新的Python文件,并添加以下代码:
import os
from inference import get_model
from PIL import Image
import json
lora_model = get_model("paligemma-3b-ft-docvqa-448", api_key="Roboflow API密钥")
在此文件中,导入了Inference并加载了paligemma-3b-ft-docvqa-448模型权重。这些模型权重在文档理解数据上进行了微调,这应该允许在文档理解任务上相比于更通用的模型有更好的性能。
上述代码中的“RoboflowAPI密钥”需要替换为Roboflow API密钥。
要运行模型,请使用以下代码:
image = Image.open("invoice.png")
response = lora_model.infer(image, prompt="谁发送了这张发票?")
print(response)
这个模型很大,下载可能需要几分钟时间。让用提示“谁发送了这张发票?”和下面的打印发票图像来运行上面的脚本:
模型返回了正确的答案。
PaliGemma在被问及文档的特定部分时,如果分别提出问题,表现最佳。让问几个问题。
问题:地址是什么?答案:10 York Road
问题:发票城市是哪里?答案:伦敦
问题:发票的邮政编码是什么?答案:SE1 9JR(注意:模型将这个问题的最后三个字符弄错了。)
问题:发票日期是什么时候?答案:2024年6月26日
现在,让询问关于发票总额的问题:
当被问及“税后发票费用是多少?”时,模型返回“54”。当被问及“税前发票费用是多少?”时,模型返回“45.00”。在这两种情况下,模型都是正确的。
鼓励在不同类型的文档上测试PaliGemma,以评估模型在自己的数据上的性能。这种测试对于了解模型是否能在数据上表现良好至关重要。
PaliGemma是由Google开发的多模态视觉架构。PaliGemma发布时附带了几种预训练模型,这些模型在特定任务上进行了微调。
在本指南中,展示了如何使用PaliGemma文档理解模型来询问图像内容的问题。下载并安装了推理引擎,然后使用推理引擎来询问文档内容的问题。
要了解更多关于如何使用PaliGemma模型与推理引擎的信息,请参考。要了解更多关于PaliGemma模型架构以及该系列模型能做什么,请参考。