Type something to search...
Qwen2-VL:本地运行的视觉语言模型

Qwen2-VL:本地运行的视觉语言模型

这是对「Qwen2-VL」的介绍,这是一种可以与 ailia SDK 一起使用的机器学习模型。您可以轻松使用此模型创建 AI 应用程序,利用 ailia SDK 以及许多其他现成的 ailia MODELS.

概述

Qwen2-VLAlibaba 于 2024 年 10 月发布的 [视觉语言模型](http://Vision Language Models)。它提供三种模型大小:2B、7B 和 72B,允许用户通过文本对图像提问,类似于 GPT-4 视觉 API。

应用包括多语言图像文本理解、代码/数学推理、视频分析、实时聊天和代理。

之前,LLAVA 通常被用作此类任务的开源解决方案。然而,它存在一些局限性,例如其最小模型相对较大,达到 7B,并且不支持某些语言,如日语。Qwen2-VL 通过提供 2B 模型大小和对日语的支持来解决这些问题。

架构

Qwen2-VL 中,输入图像被标记化并与提示文本结合,然后通过视觉编码器转换为潜在表示,最后输入到 QwenLM 解码器中。它还支持视频,可以将多达 30 帧一起标记化。

视觉语言模型(VLMs)通常面临以下挑战:

  • 以固定分辨率编码输入图像
  • 使用 CLIP 作为视觉编码器

Qwen2-VL 通过以下方式解决这些问题:

  • 处理输入分辨率,嵌入位置信息与 RoPE
  • 使用 视觉变换器(ViT)作为视觉编码器,并使其可训练

这些改进提高了模型的准确性。

Qwen2-VL 的训练过程如下:

  1. 第一阶段涉及训练 ViT
  2. 第二阶段训练所有参数,包括 LLM 的参数
  3. 在最后阶段,ViT 参数被冻结,并使用指令数据集进行指令调优

在预训练期间,使用了 6000 亿个标记。LLM 以 Qwen2 参数初始化。在第二阶段,处理了额外的 8000 亿个与图像相关的标记,使总数达到 1.4 万亿个标记。

性能

Qwen2-VL-72B 在性能方面优于 GPT-4o

下图是2B、7B和72B模型的性能比较。虽然72B模型提供了最高的准确率,但2B模型也展现了稳健的性能。

Qwen2-VL-2B 是最有效的模型,为大多数场景提供了足够的性能。7B模型显著增强了文本识别和视频理解能力。72B模型进一步提升了指令遵循、决策和代理相关能力。

视觉编码器的参数数量固定为675M,确保无论模型大小如何,图像识别性能都很高。因此,即使是2B模型,OCR等任务也能达到高性能。

提示模板

Qwen2-VL 利用特殊标记,如 <|vision_start|><|vision_end|>,用于与视觉相关的输入。在对话中,使用 <!im_start|>。对于编码边界框,使用 <|box_start|><|box_end|>。为了将边界框与说明文字链接,使用 <|object_ref_start|><|object_ref_end|>

这是运行示例时使用的提示。<|image_pad|> 被图像的标记值替换,并提供给视觉编码器。

<!im_start|>system
You are a helpful assistant.<!im_end|>
<!im_start|>user
<|vision_start|><|image_pad|><|vision_end|>Describe this image.<!im_end|>
<!im_start|>assistant

当输入标记的大小为 (1, 913) 时,视觉编码器的输出将为 (1, 913, 1536)。该输出随后被输入到 QwenLM 解码器中以生成文本。

Tokenizer

Qwen2-VL 使用 Qwen2Tokenizer 作为其分词器。Qwen2Tokenizer 兼容并采用与 GPT2Tokenizer 相同的基于 BPE 的方法。

使用方法

要使用 ailia SDK 运行 Qwen2-VL(版本 1.5 或更高),请使用以下命令。2B 模型的大小为 10GB (FP32),并且可以在提示中使用日语。

$ python3 qwen2_vl.py --input demo.jpeg --prompt "Describe this image."

在 M2 Mac CPU 上运行推理时,图像嵌入(1024x683 分辨率)大约需要 23 秒,文本生成大约需要 42 秒。图像嵌入的处理时间取决于图像分辨率,而文本生成时间受分辨率的影响较小。

还提供了 ONNX 模型的减少版 FP16。要使用 FP16 版本,请包含 -fp16 选项。

$ python3 qwen2_vl.py --input demo.jpeg --prompt "Describe this image." --fp16

Qwen2-VL 目前不支持 llama.cpp,但支持问题正在处理 Issue #9426

输出示例

这是使用 Qwen2-VL 查询图像的示例。

描述这张图片。

这张图片描绘了一个宁静的海滩场景,画面中有一位女性和一只狗。女性坐在沙滩上,穿着格子衬衫和黑色裤子,似乎在微笑。她正与坐在她旁边的狗击掌。狗穿着一个五彩斑斓的背带,似乎在摇尾巴。背景显示出海洋,波浪轻柔,天空清澈,散发着柔和的光芒,暗示着日出或日落。整体氛围宁静而愉悦。

查询可以用日语进行,并且支持日语 OCR。

应用

一个名为 ColQwen2 的应用被提议,它利用 Qwen2-VL 视觉编码器输出的投影特征来执行基于 PDF 的检索增强生成 (RAG)。用户可以使用 Qwen2-VL 提示询问相关页面上的图像问题以获取答案。

传统的 RAG 处理一切都是基于文本的,这使得处理图表和图形变得困难。然而,通过使用 ColPali,它利用 Qwen2-VL 处理一切图像,这个问题可以有效解决。

ax Inc. 开发了 ailia SDK,它支持跨平台、基于 GPU 的快速推理。

ax Inc. 提供从咨询和模型创建到基于 AI 的应用程序和 SDK 开发的广泛服务。如有任何咨询,请随时 联系我们

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多