2024-11-26
DL论文
00

目录

1. 多模态离散化(Multimodal Discretization)
图像离散化
语音离散化
音乐离散化
2. 扩展语言模型的词汇表
3. 基于序列预测的统一训练
4. 高质量多模态生成
5. 统一的数据预处理与增强

https://arxiv.org/abs/2402.12226

https://github.com/OpenMOSS/AnyGPT

我没实际测试,但我估计效果不好,这做下来工作量可是非常大的。

论文中对于统一多模态语言模型的实现,特别是如何提取和编码多模态数据,采用了如下方法来完成跨模态的统一处理:


1. 多模态离散化(Multimodal Discretization)

核心在于将多模态的连续输入(如图像、语音和音乐)离散化为统一的标记序列,具体方法如下:

图像离散化

  • 使用 SEED Tokenizer
    • 编码器:ViT(视觉Transformer)将输入的224×224 RGB图像分割为16×16的补丁。
    • 特征转换:因果 Q-Former 将图像补丁特征转换为32个因果嵌入。
    • 量化处理:通过一个包含8192个条目的VQ代码本将嵌入离散化为离散标记。
    • 与语言模型对齐:通过MLP将视觉标记对齐到预训练的unCLIP稳定扩散(unCLIP-SD)的潜在空间。
    • 恢复阶段:使用UNet解码器将生成嵌入恢复为原始图像。

语音离散化

  • 使用 SpeechTokenizer(基于RVQ-VAE结构):
    • 编码器-解码器架构:将语音数据压缩为离散的矩阵,帧率为50 Hz。
    • 多层量化:使用8层分层量化器,每层包含1024个条目。
    • 语义和副语言信息分离
      • 第一层捕获语义信息。
      • 后续层补充声学和副语言细节。
    • 语音标记表示:10秒的语音被编码为一个500×8的矩阵,转换为语义标记和声学标记。
    • 在语言模型中使用:LLM仅处理语义标记,副语言信息由专门的语音克隆模型处理。

音乐离散化

  • 使用 Encodec
    • 卷积自编码器:将32kHz的单声道音频数据量化。
    • 残差量化:采用4层RVQ量化器,每层有2048个条目。
    • 音乐标记表示:5秒钟的音乐被编码为250个帧,生成250×4的代码矩阵。
    • 因果序列展开:将四层音乐标记逐帧展平为因果序列,供语言模型按帧逐步预测。

2. 扩展语言模型的词汇表

为了使语言模型处理离散化的多模态标记,论文对预训练语言模型(如LLaMA-2)进行了词汇表扩展:

  • 新增模态标记:将每个模态的特定标记加入语言模型的词汇表。
  • 嵌入对齐:对新加入的模态标记嵌入和预测层进行扩展,使其与语言模型的共享表示空间对齐。
  • 统一标记序列:将不同模态的标记组合成一个统一的多模态交错序列,用于语言模型训练。

3. 基于序列预测的统一训练

  • 使用 下一个标记预测(Next Token Prediction) 任务,训练语言模型以统一处理多模态标记序列。
  • 多模态表示融合
    • 通过统一的标记序列,模型在感知、理解、推理和生成任务中实现跨模态对齐。
    • 各模态的语义信息在语言模型中共享和对齐。

4. 高质量多模态生成

论文提出通过两阶段生成框架解决多模态高保真生成的挑战:

  • 第一阶段:语义建模
    • 使用语言模型生成语义级标记,这些标记包含经过模态间对齐的语义信息。
  • 第二阶段:感知建模
    • 使用非自回归模型(如扩散模型和SoundStorm)将语义标记还原为高保真模态内容。

具体方法:

  • 图像生成:将语义级的SEED标记通过扩散模型解码为高质量图像。
  • 语音生成:使用SoundStorm将语义标记转换为声学标记,并通过SpeechTokenizer解码为原始语音。
  • 音乐生成:Encodec标记被重建为高保真音乐。

5. 统一的数据预处理与增强

论文还提到通过标准化数据集和统一处理机制,确保多模态数据在语言模型中以离散化标记的形式表现,从而实现跨模态对齐与处理。

这套方法以离散化为核心,将多模态数据转化为语言模型能直接处理的离散标记序列,并通过统一训练目标实现了跨模态的语义对齐和生成能力。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!