多模态本地部署和ollama部署Llama-Vision实现视觉问答

文章目录

  • 一、模型介绍
  • 二、预期用途
    • 1. 视觉问答(VQA)与视觉推理
    • 2. 文档视觉问答(DocVQA)
    • 3. 图像字幕
    • 4. 图像-文本检索
    • 5. 视觉接地
  • 三、本地部署
    • 1. 下载模型
    • 2. 模型大小
    • 3. 运行代码
  • 四、ollama部署
    • 1. 安装ollama
    • 2. 安装 Llama 3.2 Vision 模型
    • 3. 运行 Llama 3.2-Vision
  • 五、效果展示

一、模型介绍

Llama 3.2-Vision 是一系列多模态大语言模型(LLM),包括预训练和指令调优的图像推理生成模型大小分别为11B和90B(输入为文本+图像/输出为文本)。Lama 3.2-Vision 指令调优模型针对视觉识别、图像推理、字幕生成以及回答关于图像的一般问题进行了优化。这些模型在常见的行业基准测试中表现优于许多可用的开源和闭源多模态模型,
模型开发者: Meta
模型架构: Llama 3.2-Vision 基于 Lama 3.1 文本模型构建,后者是一个使用优化的Transformer架构的自回归语言模型。调优版本使用有监督的微调(SFT)和基于人类反馈的强化学习(RLHF)来与人类对有用性和安全性的偏好保持一致。为了支持图像识别任务,Llama 3.2-Vision 模型使用了单独训练的视觉适配器,该适配器与预训练的 Llama 3.1 语言模型集成。适配器由一系列交叉注意力层组成,将图像编码器表示传递给核心LLM。
支持的语言:对于纯文本任务,官方支持英语、德语、法语、意大利语、葡萄牙语、印地语、西班牙语和泰语。Llama3.2的训练数据集包含了比这八种语言更广泛的语言。注意,对于图像+文本应用,仅支持英语。
开发者可以在遵守 Llama 3.2 社区许可证和可接受使用政策的前提下,对 Lama 3.2 模型进行其他语言的微调。开发者始终应确保其部署,包括涉及额外语言的部署,是安全且负责任的。
模型发布日期:2024年9月25日
在这里插入图片描述

二、预期用途

预期用途案例: Llama 3.2-Vision旨在用于商业和研究用途。经过指令调优的模型适用于视觉识别、图像推理、字幕添加以及带有图像的助手式聊天,而预训练模型可以适应多种图像推理任务。此外,由于Llama 3.2-Vision能够接受图像和文本作为输入,因此还可能包括以下用途:

1. 视觉问答(VQA)与视觉推理

想象一台机器能够査看图片并理解您对其提出的问题。

2. 文档视觉问答(DocVQA)

想象计算机能够理解文档(如地图或合同)中的文本和布局,并直接从图像中回答问题。

3. 图像字幕

图像字幕架起了视觉与语言之间的桥梁,提取细节,理解场景,然后构造一两句讲述故事的话。

4. 图像-文本检索

图像-文本检索就像是为图像及其描述做媒人。类似于搜索引擎,但这种引擎既理解图片也理解文字。

5. 视觉接地

视觉接地就像将我们所见与所说连接起来。它关乎于理解语言如何引用图像中的特定部分,允许AI模型基于自然语言描述来精确定位对象或区域。

三、本地部署

1. 下载模型

#模型下载 
from modelscope import snapshot_download model_dir = snapshot_download('AI-ModelScope/Llama-3.2-11B-Vision-Instruct-GGUF')

2. 模型大小

在这里插入图片描述

3. 运行代码

在运行代码前先确保安装了transformers包
pip install --upgrade transformers

import requests
import torch
from PIL import Image
from transformers import MllamaForConditionalGeneration, AutoProcessor
from modelscope import snapshot_download
model_id = "LLM-Research/Llama-3.2-11B-Vision-Instruct"
model_dir = snapshot_download(model_id, ignore_file_pattern=['*.pth'])model = MllamaForConditionalGeneration.from_pretrained(model_dir,torch_dtype=torch.bfloat16,device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_dir)url = "https://www.modelscope.cn/models/LLM-Research/Llama-3.2-11B-Vision/resolve/master/rabbit.jpg"
image = Image.open(requests.get(url, stream=True).raw)messages = [{"role": "user", "content": [{"type": "image"},{"type": "text", "text": "If I had to write a haiku for this one, it would be: "}]}
]
input_text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(image, input_text, return_tensors="pt").to(model.device)output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))

四、ollama部署

ollama部署模型最为方便,不需要写运行代码,也不需要安装各种库,ollama安装好后,run相应模型,它会自动下载,然后直接可以进行提问,不需要运行什么代码。

1. 安装ollama

#o11ama版本需大于等于0.4.0
curl -fsSL https://ollama.com/install.sh | sh
#查看o1lama版本
ollama --version

2. 安装 Llama 3.2 Vision 模型

o1lama run 1lama3.2-vision:1lb

3. 运行 Llama 3.2-Vision

将 images.png替换为自己的图像路径。模型将分析图像并根据其理解提供响应。

ollama run x/llama3.2-vision:latest "which era does this piece belong to? Give details about the era: images.png

五、效果展示

在这里插入图片描述
给大模型一张图片,然后附带问题是:这件作品属于哪个时代?详细介绍那个时代。下面是模型输出

The piece is a painting of a woman in a red dress, surrounded by gold and white ornate details.The woman is depicted in mid-air, with her arms outstretched and her legs bent at the knees. Sheis holding a bouquet of flowers in her right hand and a fruit in her left hand.
The background of the painting is a light blue sky with pink clouds, and there are also some pinkflowers and green leaves surrounding the woman. The overall atmosphere of the painting is oneof joy and celebration, as if the woman is dancing or celebrating something.
This piece belongs to the Rococo era, which was a style of art and architecture that emerged inEurope in the 18th century. The Rococo style is characterized by its use of pastel colors, curvedlines, and ornate details. lt was popularized during the reign of King Louis XV of France, who ruledfrom 1715 to 1774.

为更直观翻译下,可以看到基本把图片细节都描述很清楚,同事也给出了大致时代。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/69867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪吒闹海!SCI算法+分解组合+四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测

哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测 目录 哪吒闹海!SCI算法分解组合四模型原创对比首发!SGMD-FATA-Transformer-LSTM多变量时序预测效果一览基本介绍程序设计参考资料 效果一览…

MySQL调用存储过程和存储函数

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

TCP粘包/拆包

一、什么是 TCP 粘包/拆包?发生的原因?怎么解决? TCP粘包:指在进行TCP数据传输时,多个小的数据包被合并成一个大的数据包进行传输的现象。 TCP拆包:指一个大的数据包被拆分成多个小的数据包进行传输的现象…

网络防御高级-第8章及之前综合作业

标准版 接口ip配置 r2 [r2]interface GigabitEthernet 0/0/0 [r2-GigabitEthernet0/0/0]ip address 13.0.0.3 24 [r2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1 [r2-GigabitEthernet0/0/1]ip address 100.1.1.254 24 [r2-GigabitEthernet0/0/1]interface Gigab…

常见的排序算法:插入排序、选择排序、冒泡排序、快速排序

1、插入排序 步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取下一个元素tem,从已排序的元素序列从后往前扫描 3.如果该元素大于tem,则将该元素移到下一位 4.重复步骤3,直到找到已排序元素中小于等于tem的元素…

【数据结构】寻找规律:算对角线长度||杨辉三角||魔方问题(C语言实现)

目录标题 三个算法1. 求矩阵对角线元素之和(C语言)2. 杨辉三角3. 幻方问题 总结:都是通过寻找规律来找出构造逻辑然后用循环来实现 三个算法 1. 求矩阵对角线元素之和(C语言) 1.初始化行循环变量i和列循环遍历j&…

Vue的学习(5)

1.路由进阶 1.路由模块封装 路由的封装抽离 问题:所有的路由配置都堆在main.js中合适么? 目标:将路由模块抽离出来。 好处:拆分模块,利于维护 小结: 路由模块的封装抽离的好处是什么? 拆分模…

设备智能化无线通信,ESP32-C2物联网方案,小尺寸芯片实现大功能

在科技飞速发展的当下,我们的生活正被各类智能设备悄然改变,它们如同一位位无声的助手,渗透到我们生活的每一个角落,让生活变得更加便捷和丰富多彩。 智能插座、智能照明和简单家电设备在家居领域的应用,为我们的生活…

python利用jenkins模块操作jenkins

安装python-jenkins 可以使用pip命令来安装python-jenkins模块: pip install python-jenkins操作jenkins 接下来就是连接和操作jenkins,写了个class,直接上代码 class Jenkins():def __init__(self, url, username, password):# jenkins服…

Excel大数据量导入导出

github源码 地址(更详细) : https://github.com/alibaba/easyexcel 文档:读Excel(文档已经迁移) B 站视频 : https://www.bilibili.com/video/BV1Ff4y1U7Qc 一、JAVA解析EXCEL工具EasyExcel Java解析、生成Excel比较…

Java基础知识总结(四十八)--TCP传输、TCP客户端、TCP服务端

**TCP传输:**两个端点的建立连接后会有一个传输数据的通道,这通道称为流,而且是建立在网络基础上的流,称之为socket流。该流中既有读取,也有写入。 **tcp的两个端点:**一个是客户端,一个是服务…

HCIA项目实践--RIP相关原理知识面试问题总结回答

9.4 RIP 9.4.1 补充概念 什么是邻居? 邻居指的是在网络拓扑结构中与某一节点(如路由器)直接相连的其他节点。它们之间可以直接进行通信和数据交互,能互相交换路由信息等,以实现网络中的数据转发和路径选择等功能。&am…

【CXX-Qt】0 Rust与Qt集成实践指南(CXX-Qt)

CXX-Qt 是一个用于在 Rust 和 Qt 之间实现安全互操作的库。与通常的 Rust Qt 绑定不同,它提供了一种不同的方式来桥接 Qt 代码和 Rust 代码。CXX-Qt 认识到 Qt 和 Rust 代码具有不同的习惯,因此不能直接从一个语言包装到另一个语言。相反,它使…

计算机毕业设计SpringBoot校园二手交易小程序 校园二手交易平台(websocket消息推送+云存储+双端+数据统计)(源码+文档+运行视频+讲解视频)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

1.2 JSON数据类型与Java类型对应关系

以下是 JSON数据类型与Java类型对照表 的详细说明,涵盖基础类型和常见复杂场景的映射关系: 一、基础类型映射 JSON 数据类型Java 类型示例说明字符串String"name":"John" → String name布尔值boolean/Boolean"active":t…

Django开发入门 – 4.创建Django app

Django开发入门 – 4.创建Django app Create A Django App Under An Existing Project By JacksonML 1. 什么是Django app? Django项目面向Web应用程序,它会由一个或多个子模块组成,这些子模块称为apps。 Django apps负责执行完整Web应用程序中涉及…

深度剖析工厂模式:Java中的对象创建艺术与实践优化

在软件工程中,对象创建是系统设计的核心问题之一。如何优雅地解耦对象的创建与使用,如何应对复杂对象的构造过程,如何提升代码的可维护性和扩展性?工厂模式(Factory Pattern) 正是解决这些问题的经典设计模…

八、OSG学习笔记-

前一章节: 七、OSG学习笔记-碰撞检测-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/145558132?spm1001.2014.3001.5501 一、了解OSG图元加载显示流程 本章节代码: OsgStudy/wids CuiQingCheng/OsgStudy - 码云 - 开源中国https:…

shell脚本自动安装MySQL8

环境:centos7版本:8.0.28安装包:mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz 二进制包要求:安装包和shell脚本在同一目录下执行方式:sudo ./install_mysql8.sh #!/bin/bash# 定义MySQL安装目录和压缩包名称MYSQL_DIR…

pdsh 2.29 源码编译安装教程

pdsh 2.29 源码编译安装教程 简介 pdsh (Parallel Distributed Shell) 是一个高效的多服务器并行shell命令执行工具。本文将详细介绍如何从源码编译安装pdsh 2.29版本。 环境要求 Linux操作系统gcc编译器make工具足够的磁盘空间(建议至少1GB可用空间&#xff09…