多模态大模型文生图和图生文的主要技术

news/2025/1/7 22:06:05/

1 图生文

CLIP

该模型架构由图像编码器和文本编码器组成。图像编码器将图像转换为嵌入(数字列表),文本编码器将文本转换为嵌入。
这两个编码器在成批的图像-文本对上进行训练,其中文本描述图像。编码器的训练方式如下:
对于每个图像-文本对,图像和文本嵌入彼此“接近”。
对于所有不匹配的图像-文本对,图像和文本嵌入彼此相距甚远。

注意,有很多种方法可以测量两个嵌入之间的距离。一些常用的方法是欧几里得距离和余弦相似度。CLIP 使用后者。
在这里插入图片描述

此图中有 N 个图像-文本对。I N和 T N是第 N 个图像-文本对的图像和文本嵌入。突出显示的蓝色方块表示我们希望靠近的嵌入对。
在这里插入图片描述

从高层次来看,CLIP 学习的是联合图像-文本嵌入空间,这基本上意味着可以直接计算图像和文本之间的相似度。事实证明,以此为目标训练模型通常非常有用,包括在多模态 LLM 环境中

LLaVA

LLaVA是一门多模态 LLM,于 2023 年发布。其架构非常简单:

视觉编码器使用 CLIP 进行预训练。
LLM 是经过预先训练的Vicuna模型。
视觉编码器通过单个投影层连接到 LLM。
请注意,与 BLIP-2 中的 Q-Former 以及 Flamingo 中的感知器重采样器和交叉注意层相比,视觉编码器和 LLM 之间的组件非常简单。

在这里插入图片描述

训练分为两个阶段:

在第 1 阶段,训练目标是图像字幕。视觉编码器和 LLM 被冻结,因此只训练投影层。
在第 2 阶段,LLM 和投影层在部分合成的指令跟踪数据集上进行微调。它是部分合成的,因为它是在 GPT-4 的帮助下生成的。

2 文生图

扩散模型(Diffusion Model)详细解析

扩散模型(Diffusion Model)是一种基于概率生成的深度学习模型,广泛应用于图像生成去噪超分辨率等任务。目前最流行的**文本生成图像(Text-to-Image)**模型,如 Stable DiffusionDALL·E 2Imagen,都使用了扩散模型作为核心技术。
在这里插入图片描述

📌 扩散模型的基本思想

扩散模型的核心思想是:

  1. 前向扩散过程(Forward Diffusion):给真实数据(如图片)逐步添加噪声,使其最终接近高斯噪声(即随机分布的像素)。
  2. 反向去噪过程(Reverse Denoising):使用一个神经网络模型学习如何从噪声中逐步恢复出原始数据,最终生成高质量的图像。

这类似于:

  • 训练时:往一杯清水里不断滴墨水,使其逐渐变成黑色的液体。
  • 生成时:从黑色液体中一点点去除墨水,直到恢复出清水。

1️⃣ 训练阶段(Forward Process)—— 向图像逐步加噪

📌 训练流程

在训练阶段,我们希望教会模型如何去除噪声,因此我们首先需要创建一组“噪声数据”。

  1. 给真实图像 X_0 逐步加噪

    • X_0 是原始图像(干净的图像)。
    • 依次给 X_0 添加噪声,生成一系列噪声图像 X_1, X_2, ..., X_T(最终成为完全随机的高斯噪声)。
    • 这个噪声是高斯噪声(Gaussian Noise),是随机的像素扰动。
  2. 训练模型学习噪声分布

    • 我们训练一个 噪声预测器(Noise Predictor),让它学会预测某个时间步 t 的噪声
    • 训练时,我们希望模型能够学习:
      • 给定一个带噪声的图像 X_t,预测 X_t 中的噪声 ε
      • 这样,在反向推理时,我们就能一步步去掉噪声,最终还原图像
  3. 数学公式

    • 前向扩散公式:
      [
      X_t = \sqrt{\alpha_t} X_{t-1} + \sqrt{1 - \alpha_t} \epsilon_t
      ]
      其中:
      • X_t 是当前步的噪声图像
      • α_t 是一个超参数,控制噪声添加的强度
      • ε_t 是高斯噪声

📌 目标:让模型学习如何去噪,即 预测 ε_t


2️⃣ 生成阶段(Reverse Process)—— 逐步去噪

📌 生成流程

在生成图像时,我们从纯噪声开始,逐步去除噪声,恢复清晰的图像。

  1. 初始化一个随机噪声图像 X_T

    • 这个噪声是完全随机的,没有任何信息。
  2. 用训练好的模型预测噪声

    • t=T(最大时间步),输入 X_T 进入去噪网络(Denoise Model),模型会预测出 X_T 中的噪声 ε_T
    • X_T - ε_T 得到 X_{T-1}(噪声稍微减少的图像)。
  3. 重复去噪过程

    • 依次计算 X_{T-1}, X_{T-2}, ..., X_1,逐步减少噪声。
    • 最终,我们得到 X_0(清晰的合成图像)。
  4. 数学公式

    • 反向去噪公式:
      [
      X_{t-1} = \frac{X_t - \sqrt{1 - \alpha_t} \hat{\epsilon_t}}{\sqrt{\alpha_t}}
      ]
      其中:
      • X_t 是当前噪声图像
      • \hat{\epsilon_t} 是模型预测出的噪声
      • α_t 控制去噪的强度

📌 目标:从 X_T(完全噪声)一步步恢复到 X_0(清晰图像)。


3️⃣ 为什么扩散模型适用于图像生成?

📌 1. 能生成高质量图像

  • 由于扩散模型的去噪过程是渐进的,它能够生成高质量、细节丰富的图像
  • 例如 Stable Diffusion、DALL·E 2 能够生成清晰、逼真的图像

📌 2. 适用于多模态任务

  • 扩散模型不仅能用于图像生成,还能用于:
    • 文本生成图像(Text-to-Image)
    • 图像修复(Image Inpainting)
    • 超分辨率(Super-Resolution)
    • 视频生成(Video Generation)
  • 方法:在输入噪声 X_T 时,附加一个 文本条件 text,让模型学习图像与文本的关系

📌 3. 适用于条件生成

  • 例如,我们可以在 X_T 输入文本:
    X_T = TextPrompt("A cat sitting on the beach") + Noise
    
    • 这样,扩散模型在去噪时会受到文本的约束,生成符合文本描述的图像。

4️⃣ 经典的扩散模型架构

📌 1. DDPM(Denoising Diffusion Probabilistic Models)

  • 最早的扩散模型,逐步降噪,但计算开销较大。

📌 2. DDIM(Denoising Diffusion Implicit Models)

  • 改进的版本,减少去噪步骤,提高生成速度。

📌 3. Stable Diffusion

  • 由 Stability AI 开发的 Text-to-Image 模型,基于扩散模型,支持高质量文本图像生成。

📌 4. Imagen(Google)

  • 由 Google 研究团队开发,融合文本和图像生成技术,效果接近 DALL·E 2。

http://www.ppmy.cn/news/1560982.html

相关文章

SpringBoot中实现拦截器和过滤器

【SpringBoot中实现过滤器和拦截器】 1.过滤器和拦截器简述 过滤器Filter和拦截器Interceptor,在功能方面很类似,但在具体实现方面差距还是比较大的。 2.过滤器的配置 2.1 自定义过滤器,实现Filter接口(SpringBoot 3.0 开始,jak…

每天学一点强化学习(二)

《动手学强化学习》模仿学习代码的修改 由于版本的不同,模仿学习中的代码需要有一些做出修改, def test_agent(agent, env, n_episode):return_list []for episode in range(n_episode):episode_return 0state env.reset()[0] # 修改位置done False…

向量的导数

向量的导数 向量的导数取决于你对向量的上下文和所涉及的变量维度。常见情况下,我们主要讨论以下两种情况: 1. 标量函数对向量的导数 如果一个标量函数 f ( x ) f(\mathbf{x}) f(x) 是关于向量 x [ x 1 , x 2 , … , x n ] ⊤ \mathbf{x} [x_1, x…

自动驾驶3D目标检测综述(六)

停更了好久终于回来了(其实是因为博主去备考期末了hh) 这一篇接着(五)的第七章开始讲述第八章的内容。第八章主要介绍的是三维目标检测的高效标签。 目录 第八章 三维目标检测高效标签 一、域适应 (一)…

【HeadFirst系列之HeadFirst设计模式】第1天之HeadFirst设计模式开胃菜

HeadFirst设计模式开胃菜 前言 从今日起,陆续分享《HeadFirst设计模式》的读书笔记,希望能够帮助大家更好的理解设计模式,提高自己的编程能力。 今天要分享的是【HeadFirst设计模式开胃菜】,主要介绍了设计模式的基本概念、设计模…

qemu-kvm使用简介

qemu-kvm-note qemu-kvm使用简介 kvm和qemu关系 kvm是linux的一个模块,是工作在cpu硬件支持基础之上的虚拟化技术。加载该模块后,才能进一步通过其他工具创建虚拟机。仅有kvm模块,用户无法直接控制内核模块,必须有一个用户空间…

计算机网络——数据链路层-介质访问控制

一、介质访问控制方法 在局域网中, 介质访问控制(medium access control)简称MAC,也就是信道访问控制方法,可以 简单的把它理解为如何控制网络节点何时发送数据、如何传输数据以及怎样在介质上接收数据, 是解决当局域网中共用信道的使用产生竞…

论文研读:Text2Video-Zero 无需微调,仅改动<文生图模型>推理函数实现文生视频(Arxiv 2023-03-23)

论文名:Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Generators 1. 摘要 1.1 方法总结 通过潜空间插值, 实现动作连续帧。 以第一帧为锚定,替换原模型的self-attention,改为cross-attention 实现 保证图片整体场…