【中文视觉语言模型+本地部署 】23.08 阿里Qwen-VL:能对图片理解、定位物体、读取文字的视觉语言模型 (推理最低12G显存+)

本文主要是介绍【中文视觉语言模型+本地部署 】23.08 阿里Qwen-VL:能对图片理解、定位物体、读取文字的视觉语言模型 (推理最低12G显存+),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目主页:https://github.com/QwenLM/Qwen-VL
通义前问网页在线使用——(文本问答,图片理解,文档解析):https://tongyi.aliyun.com/qianwen/
论文v3. : 一个全能的视觉语言模型
23.10 Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond

Qwen-VL-Chat 部分示例:支持多个图像输入、多轮对话、文本阅读、定位、细粒度识别和理解能力
在这里插入图片描述

一、Qwen-VL简介

Qwen-VL 是阿里基于语言模型Qwen-7B(LLMs),研发的大规模视觉语言模型(Large Vision Language Model, LVLM

Qwen-VL = 大语言模型(Qwen-7B) + 视觉图片特征编码器(Openclip’s ViT-bigG) + 位置感知视觉语言适配器(可训练Adapter)+约15亿训练数据+多轮训练

功能上:

  1. 支持多语言,特别是中英文对话
  2. 支持多个图像输入
  3. 中英双语的长文本识别
  4. 对图片中物体定位 :能够确定与给定描述相对应的具体区域(也称 grounding)
  5. 相对其他视觉模型,进行对图片更多细节识别和理解

在这里插入图片描述

二、本地部署

下载项目到本地,也可手动下载

git clone https://github.com/QwenLM/Qwen-VL.git

2.1 基础环境安装

根据自己显卡驱动,在pytorch官方选择对应的版本: https://pytorch.org/get-started/previous-versions/

conda create -n  qwen-vl  python=3.10  -yconda activate qwen-vl
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=11.8 -c pytorch -c nvidia

2.1.1 其他依赖


conda activate qwen-vl
cd Qwen-VL
pip install -r  requirements.txt

2.1.2 使用modelscope模型

https://modelscope.cn/models/qwen/Qwen-VL-Chat/summary

pip install modelscope -U

2.2 实际测试 (运行后自动下载模型)

启动命令 --server-name 0.0.0.0 表示可局域网访问,输入ip

python web_demo_mm.py --server-name 0.0.0.0

2.2.1 下载模型界面 (约20G)

在这里插入图片描述

2.2.2 启动测试界面

在这里插入图片描述

2.2.3 实测,对图表理解并求和

求和上传图中某一列。
在这里插入图片描述

三、如何训练

阶段一:普通预训练 (pretraining)
14亿大规模、弱标记、网络爬取的图像-文本对(其中3.18亿**中文**文本)

阶段二: 多任务任务微调 (得到Qwen-VL)
约1亿数据,7大任务,图片题词,视觉问答,位置标注、OCR等任务

阶段三: 指令微调(增强对话能力) (训练后得到Qwen-VL-Chat)
将简单的文本图像对,通过手动注释、模型生成和策略串联构建**35W**对话数据
训练过程中混合了多模态和纯文本对话数据,以确保模型在对话能力方面的通用性
在这里插入图片描述

预训练阶段(Pre-training)

数据集从50亿数据中清洗得到14亿数据,其中中文约22.7%,3亿左右

数据集清理标注

  1. 删除纵横比过大的对
  2. 删除图像太小的对
  3. 删除剪辑分数过苛刻的对(特定于数据集)
  4. 删除包含非英语或非汉字的文本对
  5. 删除包含表情符号字符的文本对
  6. 删除文本长度过短或太长的对
  7. 清理文本的 HTML 标记部分
  8. 用某些不规则模式清理文本

在这里插入图片描述

多任务预训练 (Multi-task Pre-training)

约1亿数据,7大任务,图片题词,视觉问答,位置标注、OCR等任务
在这里插入图片描述

训练数据格式 (Data Format of Multi-Task Pre-training)

训练时,黑色文本作为前缀序列,没有损失,蓝色文本作为带有损失的地面真实标签。
在这里插入图片描述

指令微调

训练数据格式

为了更好地适应多图像对话和多个图像输入,我们在不同的图像之前添加了字符串“Picture id:”,其中 id 对应于图像输入对话的顺序。在对话格式方面,我们使用 ChatML (Openai) 格式构建我们的指令调优数据集,其中每个交互的语句都标有两个特殊标记(<im_start> 和<im_end>)以促进对话终止。
在这里插入图片描述

附录

有哪些版本?(商业版本)

模型名模型简介
Qwen-VL-Plus通义千问大规模视觉语言模型增强版。大幅提升细节识别能力和文字识别能力,支持超百万像素分辨率和任意长宽比规格的图像。在广泛的视觉任务上提供卓越的性能。
Qwen-VL-Max通义千问超大规模视觉语言模型。相比增强版,再次提升视觉推理能力和指令遵循能力,提供更高的视觉感知和认知水平。在更多复杂任务上提供最佳的性能。

这篇关于【中文视觉语言模型+本地部署 】23.08 阿里Qwen-VL:能对图片理解、定位物体、读取文字的视觉语言模型 (推理最低12G显存+)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/849916

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4