VARGPT:将视觉理解与生成统一在一个模型中,北大推出支持混合模态输入与输出的多模态统一模型

本文涉及的产品
图像搜索,任选一个服务类型 1个月
简介: VARGPT是北京大学推出的多模态大语言模型,专注于视觉理解和生成任务,支持混合模态输入和高质量图像生成。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 模型简介:VARGPT是北京大学推出的多模态大语言模型,专注于视觉理解和生成任务。
  2. 主要功能:支持混合模态输入输出、高效视觉生成和广泛的多模态任务。
  3. 技术原理:基于自回归框架,采用三阶段训练策略,包含专门的视觉解码器。

正文(附运行示例)

VARGPT是什么

VARGPT

VARGPT是北京大学推出的一款创新的多模态大语言模型,专注于视觉理解和生成任务。该模型基于自回归框架,将视觉生成与理解统一在一个模型中,避免了任务切换的复杂性。

VARGPT在LLaVA架构基础上进行扩展,通过next-token预测实现视觉理解,通过next-scale预测实现视觉生成,能够高效处理混合模态输入和输出。

VARGPT采用三阶段训练策略:预训练阶段学习语言和视觉特征,混合视觉指令微调阶段进一步对齐视觉和文本特征并增强指令遵循能力。这使得模型在视觉问答、推理等任务上表现出色,同时在视觉生成任务中展现出强大的能力,能够自然地生成高质量图像。

VARGPT的主要功能

  • 视觉理解与生成的统一:VARGPT在单一的自回归框架内实现视觉理解和视觉生成。通过next-token预测范式完成视觉理解任务,如视觉问答和推理,基于next-scale预测范式实现视觉生成。
  • 混合模态输入与输出:VARGPT支持文本和图像的混合模态输入,能同时输出文本和图像。在处理复杂的视觉-语言任务时更加灵活和高效。
  • 高效视觉生成:VARGPT配备了专门的视觉解码器,包含20亿参数,用于高质量的视觉生成。能根据文本指令生成图像,在自回归过程中逐步构建图像内容。
  • 多模态任务的广泛适用性:VARGPT在多个视觉中心的基准测试中表现优于其他模型,能自然地支持指令到图像的合成,适用于多种视觉-语言任务。

VARGPT的技术原理

  • 统一的自回归框架:VARGPT将视觉理解和生成任务统一在一个自回归框架内。对于视觉理解,模型采用next-token预测范式,即通过预测下一个文本标记来完成视觉问答和推理任务;对于视觉生成,采用next-scale预测范式,逐步预测图像的下一个尺度信息。使模型能在单一框架内高效处理视觉和语言任务。
  • 视觉解码器与特征映射:VARGPT包含一个专门的视觉解码器,拥有20亿参数,用于高质量的视觉生成。解码器由30个Transformer块组成,每个块包含30个注意力头,宽度为1920,采用自适应归一化(AdaLN)。
  • 多尺度标记化:为了支持视觉生成,VARGPT使用了多尺度变分自编码器(VAE)架构,类似于VAR模型。架构通过多尺度量化方案将图像分解为不同尺度的标记,词汇表大小为4090,训练数据为OpenImages数据集。
  • 混合模态输入与输出:VARGPT支持文本和图像的混合模态输入,能同时输出文本和图像。模型通过特殊的标记和提示格式,灵活地在文本和视觉模态之间切换,实现混合模态生成。
  • 三阶段训练策略
    • 预训练阶段:学习文本和视觉特征之间的映射关系。
    • 混合视觉指令微调阶段:通过构造视觉生成指令数据集,结合多轮对话指令数据集进行混合训练,增强模型在视觉问答和指令到图像合成任务中的能力。

如何运行 VARGPT

1. 环境配置

首先,设置环境:

pip3 install -r requirements.txt

2. 多模态理解

执行以下命令进行多模态理解的推理演示:

python3 inference/understanding_vargpt.py

或者执行以下代码:

import requests
from PIL import Image
import torch
from transformers import AutoProcessor, AutoTokenizer
from vargpt_llava.modeling_vargpt_llava import VARGPTLlavaForConditionalGeneration
from vargpt_llava.prepare_vargpt_llava import prepare_vargpt_llava 
from vargpt_llava.processing_vargpt_llava import VARGPTLlavaProcessor
from patching_utils.patching import patching

model_id = "VARGPT-family/VARGPT_LLaVA-v1"
prepare_vargpt_llava(model_id)

model = VARGPTLlavaForConditionalGeneration.from_pretrained(
    model_id, 
    torch_dtype=torch.float32, 
    low_cpu_mem_usage=True, 
).to(0)
patching(model)

tokenizer = AutoTokenizer.from_pretrained(model_id)
processor = VARGPTLlavaProcessor.from_pretrained(model_id)

conversation = [
    {
   
      "role": "user",
      "content": [
          {
   "type": "text", "text": "Please explain the meme in detail."},
          {
   "type": "image"},
        ],
    },
]
prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)
image_file = "./assets/llava_bench_demo.png"
print(prompt)

raw_image = Image.open(image_file)
inputs = processor(images=raw_image, text=prompt, return_tensors='pt').to(0, torch.float32)

output = model.generate(
    **inputs, 
    max_new_tokens=2048, 
    do_sample=False)

print(processor.decode(output[0], skip_special_tokens=True))

3. 文本到图像生成

执行以下命令进行文本到图像生成的推理演示:

python3 inference/generation_vargpt.py

或者执行以下代码:

import requests
from PIL import Image
import torch
from transformers import AutoProcessor, AutoTokenizer
from vargpt_llava.modeling_vargpt_llava import VARGPTLlavaForConditionalGeneration
from vargpt_llava.prepare_vargpt_llava import prepare_vargpt_llava 
from vargpt_llava.processing_vargpt_llava import VARGPTLlavaProcessor
from patching_utils.patching import patching

model_id = "VARGPT-family/VARGPT_LLaVA-v1"

prepare_vargpt_llava(model_id)

model = VARGPTLlavaForConditionalGeneration.from_pretrained(
    model_id, 
    torch_dtype=torch.float32, 
    low_cpu_mem_usage=True, 
).to(0)

patching(model)
tokenizer = AutoTokenizer.from_pretrained(model_id)
processor = VARGPTLlavaProcessor.from_pretrained(model_id)

conversation = [
    {
   
      "role": "user",
      "content": [
          {
   "type": "text", "text": "Please design a drawing of a butterfly on a flower."},
        ],
    },
]
prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)
print(prompt)

inputs = processor(text=prompt, return_tensors='pt').to(0, torch.float32)
model._IMAGE_GEN_PATH = "output.png"
output = model.generate(
    **inputs, 
    max_new_tokens=2048, 
    do_sample=False)

print(processor.decode(output[0], skip_special_tokens=True))

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
2月前
|
机器学习/深度学习 人工智能 测试技术
ParGo:字节与中山大学联合推出的多模态大模型连接器,高效对齐视觉与语言模态
ParGo 是字节与中山大学联合推出的多模态大模型连接器,通过全局与局部视角联合,提升视觉与语言模态的对齐效果,支持高效连接、细节感知与自监督学习。
86 6
ParGo:字节与中山大学联合推出的多模态大模型连接器,高效对齐视觉与语言模态
|
3月前
|
人工智能 自然语言处理
DynamicControl:腾讯推出动态地条件控制图像生成框架,结合了多模态大语言模型的推理能力和文生图模型的生成能力
DynamicControl 是腾讯优图联合南洋理工等机构推出的动态条件控制图像生成新框架,通过自适应选择不同条件,显著增强了图像生成的可控性。
89 11
DynamicControl:腾讯推出动态地条件控制图像生成框架,结合了多模态大语言模型的推理能力和文生图模型的生成能力
统一多模态模型来了!智源发布多模态世界模型Emu3!
2024年10月21日,智源研究院正式发布原生多模态世界模型Emu3。
|
1月前
|
存储 人工智能 缓存
DiffSplat:输入文本或图像,2秒内生成3D建模!北大联合字节开源3D建模生成框架
DiffSplat 是由北京大学和字节跳动联合推出的一个高效 3D 生成框架,能够在 1-2 秒内从文本提示或单视图图像生成高质量的 3D 高斯点阵,并确保多视图下的一致性。
152 19
DiffSplat:输入文本或图像,2秒内生成3D建模!北大联合字节开源3D建模生成框架
|
人工智能 自然语言处理 数据可视化
多模态可控图片生成统一模型来了,模型参数、推理代码全部开源
多模态可控图片生成统一模型来了,模型参数、推理代码全部开源
539 0
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
VideoWorld:字节开源自回归视频生成模型,支持输入视频指导AI生成视频!弥补文本生成视频的短板
VideoWorld 是由字节跳动、北京交通大学和中国科学技术大学联合推出的自回归视频生成模型,能够从未标注的视频数据中学习复杂知识,支持长期推理和规划任务。
459 8
VideoWorld:字节开源自回归视频生成模型,支持输入视频指导AI生成视频!弥补文本生成视频的短板
|
机器学习/深度学习 人工智能 自然语言处理
USB:首个将视觉、语言和音频分类任务进行统一的半监督分类学习基准
USB:首个将视觉、语言和音频分类任务进行统一的半监督分类学习基准
147 0
USB:首个将视觉、语言和音频分类任务进行统一的半监督分类学习基准
|
7月前
|
数据采集 人工智能 监控
赌你一定想要!OpenDataLab首款大模型多模态标注平台Label-LLM正式开源
Label-LLM 是一款专为大模型训练设计的多模态文本对话标注工具,支持团队协作,让标注工作变得简单高效。它不仅涵盖丰富的任务类型,如回答采集、偏好收集和内容评估等,还支持多模态数据标注,包括图像、视频和音频。Label-LLM具备预标注载入功能,能大幅提升工作效率,并提供全方位的任务管理与可视化分析,确保标注质量。快来体验这款强大的标注平台吧![部署文档](https://github.com/opendatalab/LabelLLM)
1491 0
赌你一定想要!OpenDataLab首款大模型多模态标注平台Label-LLM正式开源
|
13天前
|
编解码 人工智能 测试技术
CogView4开源发布!智谱AI文生图模型支持任意长度双语输入,汉字生成能力突出,可商用!
今天智谱AI正式发布并开源了最新的图像生成模型——CogView4。
114 10
CogView4开源发布!智谱AI文生图模型支持任意长度双语输入,汉字生成能力突出,可商用!
|
3月前
|
人工智能 缓存 自然语言处理
基于 Qwen Max 底座打造的图谱增强文本生成式任务系统
基于Qwen Max打造的图谱增强文本生成系统,结合知识图谱与生成式AI,具备精准高效的文字生成能力。系统支持文档解析、知识图谱构建、社区检测、复杂关系建模、语义检索、Prompt调优、分布式任务管理等核心功能,广泛适用于多轮对话、摘要生成、文档翻译等任务,满足大规模、高并发的生产需求。
159 1

热门文章

最新文章