自学内容网 自学内容网

BAAI 的 Aquila-VL-2B-llava-qwen: 促进视觉语言理解

在这里插入图片描述

简介

在人工智能领域,北京人工智能学会(BAAI)做出了重要贡献: 在人工智能领域,北京人工智能研究所(BAAI)开发的 Aquila-VL-2B-llava-qwen 模型做出了重大贡献。这一创新模型建立在 LLava-one-vision 框架之上,展示了视觉语言模型(VLM)在理解和处理视觉和文本数据方面的潜力。

模型架构

Aquila-VL-2B-llava-qwen 是一款功能强大的视觉语言模型,采用 Qwen2.5-1.5B-instruct 模型作为其大语言模型(LLM)组件。该 LLM 负责理解和生成文本,使模型能够处理复杂的语言结构。视觉塔(siglip-so400m-patch14-384)在图像理解方面起着至关重要的作用,使模型能够有效地分析和解释视觉信息。

训练数据

该模型的优势在于其训练数据集 Infinity-MM,这是一个包含约 4000 万对图像和文本的庞大数据集。该数据集融合了从互联网上收集的开源数据和使用开源 VLM 模型生成的合成指令数据。通过在如此多样化和广泛的数据集上进行训练,Aquila-VL-2B-llava-qwen 获得了对视觉和语言概念的全面理解。

开源和评估: BAAI 慷慨地开源了 Infinity-MM 数据集,使研究人员和开发人员能够探索和利用这一宝贵资源。使用不同 GPU 训练的 Aquila-VL-2B-CG 模型也将很快公布。使用 VLMEvalKit 工具对模型的性能进行了评估,以确保对其能力进行全面评估。

BenchmarkMiniCPM-V-2InternVL2-2BXinYuan-VL-2BQwen2-VL-2B-InstructAquila-VL-2B
MMBench-ENtest69.473.478.974.978.8
MMBench-CNtest65.970.976.173.976.4
MMBench_V1.1test65.269.775.472.775.2
MMT-Benchtest54.553.357.254.858.2
RealWorldQA55.457.363.962.663.9
HallusionBench36.838.136.041.543.0
SEEDBench2plus51.860.063.062.463.0
LLaVABench66.164.842.452.568.4
MMStar41.650.251.947.854.9
POPE86.685.389.488.083.6
MMVet44.041.142.750.744.3
MMMUval39.634.943.641.747.4
ScienceQAtest80.494.186.678.195.2
AI2Dtest64.874.474.274.675.0
MathVistatestmini39.045.047.147.959.0
MathVersetestmini19.824.722.221.026.2
MathVision15.412.616.317.518.4
DocVQAtest71.086.987.689.985.0
InfoVQAtest40.059.559.165.458.3
ChartQAtest59.671.457.173.576.5
TextVQAval74.373.577.679.976.4
OCRVQAtestcore54.440.267.668.764.0
VCRen easy27.651.667.768.370.0
OCRBench613784782810772
Average53.558.860.962.164.1

对于比较模型,评估是在本地环境中进行的,因此得分可能与论文或 VLMEvalKit 官方排行榜上的报告略有不同。

代码

# pip install git+https://github.com/LLaVA-VL/LLaVA-NeXT.git
from llava.model.builder import load_pretrained_model
from llava.mm_utils import process_images, tokenizer_image_token
from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN
from llava.conversation import conv_templates
from PIL import Image
import requests
import copy
import torch
import warnings

warnings.filterwarnings("ignore")

pretrained = "BAAI/Aquila-VL-2B-llava-qwen"

model_name = "llava_qwen"
device = "cuda"
device_map = "auto"
tokenizer, model, image_processor, max_length = load_pretrained_model(pretrained, None, model_name, device_map=device_map)  # Add any other thing you want to pass in llava_model_args

model.eval()

# load image from url
url = "https://github.com/haotian-liu/LLaVA/blob/1a91fc274d7c35a9b50b3cb29c4247ae5837ce39/images/llava_v1_5_radar.jpg?raw=true"
image = Image.open(requests.get(url, stream=True).raw)

# load image from local environment
# url = "./local_image.jpg"
# image = Image.open(url)

image_tensor = process_images([image], image_processor, model.config)
image_tensor = [_image.to(dtype=torch.float16, device=device) for _image in image_tensor]

conv_template = "qwen_1_5"  # Make sure you use correct chat template for different models
question = DEFAULT_IMAGE_TOKEN + "\nWhat is shown in this image?"
conv = copy.deepcopy(conv_templates[conv_template])
conv.append_message(conv.roles[0], question)
conv.append_message(conv.roles[1], None)
prompt_question = conv.get_prompt()

input_ids = tokenizer_image_token(prompt_question, tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(device)
image_sizes = [image.size]

cont = model.generate(
    input_ids,
    images=image_tensor,
    image_sizes=image_sizes,
    do_sample=False,
    temperature=0,
    max_new_tokens=4096,
)

text_outputs = tokenizer.batch_decode(cont, skip_special_tokens=True)

print(text_outputs)

结论

BAAI 的 Aquila-VL-2B-llava-qwen 代表着视觉语言理解领域的重大进步。通过将功能强大的 LLM 和视觉塔组件与丰富多样的训练数据集相结合,该模型展示了在图像识别、自然语言处理等各种应用中改进人工智能系统的潜力。Infinity-MM 数据集的开源进一步鼓励了人工智能界的合作与创新。


原文地址:https://blog.csdn.net/weixin_41446370/article/details/143590372

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!