腾讯最近的多模态进展有点子“一路高歌”,先是腾讯元宝升级了一波多模态能力,就差把GPT-4o从榜一拉下来了。
最近,又搞了一个和GPT-4o对标的交互式多模态模型——VITA,而且率先开源了。
每次使用Siri时,都得先说个唤醒词,比如“Hi! Siri”,或者按个按钮才能开始说话。而且,当机器在回答用户提问的时候,用户就不能继续提问了,因为它只能按顺序处理输入。
这次,腾讯提出了VITA,打破了这一限制!
“VITA”看这名字就知道,其能够同时处理和分析 Video(视频)、Image(图像)、Text(文本) 和 Audio(音频)。VITA不仅具备强大的多语言、视觉和音频理解基础能力,在各种单模态和多模态基准测试中表现强劲。更重要的是,VITA带来了两个超棒的改进:
-
无需唤醒的交互:VITA很聪明,能自动忽略周围环境中的无关声音,如他人的谈话。所以你不用再说唤醒词,也不用按按钮,就能自然而然地与VITA展开对话。
-
音频中断的交互:当VITA正在回答时,如果用户突然想到另一个问题,只需直接说出,VITA便能立即暂停当前回答,迅速转向并解答新问题。这种即时响应的能力,让交流变得更加灵活与高效。
看视频中的VITA演示,就如同与一位挚友自然交谈,无需每次发言前都呼唤其名以确认身份。它聪明地分辨出用户何时是在与它对话,何时又是与他人轻松闲聊。这种交互方式也太酷了!
VITA也是首个能够同时处理四种模态并与交互无缝集成的开源大模型。
论文标题:
VITA: Towards Open-Source Interactive Omni Multimodal LLM
论文链接:
https://arxiv.org/pdf/2408.05211
GitHub链接:
https://github.com/VITA-MLLM/VITA
VITA构建过程
VITA是如何实现“无需唤醒的交互”与“音频中断的交互”的呢?主要包括三个步骤:LLM的双语指令微调、多模态对齐和指令微调、联合pipeline开发。如下图所示:
LLM的双语指令微调
VITA以Mixtral 8x7B为基础。为了增强其在中文表达和理解方面的熟练度。作者扩展了基础模型的词汇量,从32, 000增加到51, 747。并继续利用收集的高质量双语文本语料库进一步的指令微调。这使得LLM精通双语。
多模态对齐
为了将文本特征空间与视频、图像和音频对齐,收集了大量高质量的多模态数据,以将各个编码器和连接器对齐到LLM,它们分别处理不同的模态。
1. 视频模态
-
视觉编码器:本文采用InternViT-300M-448px作为视觉编码器,该编码器接受448×448像素的图像作为输入,并通过一个简单的两层MLP作为视觉连接器后,生成256个视觉tokens。对于高分辨率的图像输入,实现了动态打片策略,以捕捉局部细节。视频被视为图像的特殊情况处理。若视频长度小于4秒,均匀采样4帧;若视频长度在4到16秒之间,每秒采样1帧;若视频长度超过16秒,则均匀采样16帧。为防止引入过多的tokens,对视频的单独帧不进行动态打片处理。
-
视觉对齐:在这个阶段,仅训练视觉连接器。下表总结了所使用的训练数据纯文本部分除外,包括图像描述、图像问答、OCR与图表、视频描述与问答等。此外,在此阶段不使用音频问题。
-
数据拼接策略:针对纯文本与图像数据,拼接至6K token长度如下图所示,增强输入灵活性与上下文扩展性,同时优化计算效率,保持训练批次中Tokens数量平衡。视频数据则保持原样不拼接。实践表明,拼接数据训练的模型性能与原始数据相当。
2. 音频模态
-
音频编码器:音频首先通过梅尔滤波器组分解成梅尔频率尺度的频带,模拟人类听觉的非线性感知,再经4层CNN下采样和24层Transformer处理。使用两层MLP连接音频与文本模态,将每2秒音频编码为25个Token。
-
音频对齐:选用自动语音识别和音频字幕生成作为对齐任务。数据集包括Wenetspeech(10,000+小时中文语音)和Gigaspeech(10,000+小时英文语音),以及Wavcaps的AudioSet SL子集(40万音频片段及字幕)。训练时,同时优化音频编码器和连接器。
多模态指令微调
然后对模型执行指令调优,以增强其文本或音频指令遵循能力。
1. 训练数据
-
数据构建:指令调优阶段的数据来源与对齐阶段相同。为了增强模型对音频查询的理解和指令跟随能力,作者采用TTS技术(如GPT-SoVITS6)生成随机(约一半)将问题替换为其音频版本。并设置不同的系统提示以避免不同类型数据之间的冲突,如下表所示:
-
噪声音频构建:在人机交互中,那些不需要响应的音频噪声音频。噪声音频样本的构建使模型能够识别无需响应的音频输入,有助于实现非唤醒交互。作者分别采用负样本抽取从现有的多模态和单模态问答数据中随机抽取474K个句子作为负样本文本。这些文本聚焦于非查询相关内容,无需用户响应,其长度分布与正问题长度分布一致。然后使用TTS工具将这些句子转换为音频。
2. 训练过程
根据上节构建的QA对,模型需要区分三种查询类型:
-
音频查询:问题以音频形式发起。
-
噪声音频:输入为音频,但不包含问题。
-
文本查询:问题以文本形式发起。
基于这些查询类型,作者设计了三个状态Token<1>、<2>和<3>。在训练阶段在答案开头插入相应的状态Token,使模型能够灵活处理不同的交互行为。具体说明如下:
-
状态token<1>表示问题输入为音频查询。此时,模型的输出需要呈现给用户,可以是文本形式,也可以是通过TTS工具转换成的语音。
-
状态token<2>指示问题输入为噪声音频。理论上,模型应输出一个EOS作为终止符。然而在训练过程中突然终止输出会显著影响性能。因此将噪声音频对应的文本发送到LLM,并使用其输出文本作为训练目标。在推理阶段,<2>作为另一个特殊的EOS使用。
-
状态token<3>表示纯文本问题,用于在训练集中区分上述两种查询。
训练时,视觉和音频编码器保持冻结,连接器与Mixtral 8×7B模型联合训练。
联合pipeline开发
接下来讨论如何具体实现非唤醒交互和音频中断交互。
非唤醒交互
非唤醒交互使模型能在无唤醒词或按钮的情况下,自动激活并响应用户的音频提问。部署时需确保:
-
实时声音追踪:准确判断音频是否包含人类语音。本文采用先进的语音活动检测(VAD)技术SileroVAD,它基于多语言语料库训练,能有效区分语音与背景噪音。
-
噪音过滤:模型仅响应有效的人类查询音频。本文利用特定状态token<2>,模型能自动识别有效查询,忽略非查询音频,确保响应的精准性。
音频中断交互
音频中断交互功能允许用户随时插入新问题。系统需:
-
实时追踪与过滤外部查询:在生成回复时,同步监测并筛选新查询。
-
即时响应新问题:一旦检测到新查询,立即暂停当前生成,结合历史上下文,迅速给出回答。
为实现此功能,作者设计了联合pipeline部署框架,如下图所示。两个VITA模型并行工作:生成模型负责日常回答,监控模型则负责检测环境声音,并在识别到查询时接管,整合信息后给出新回答,随后两模型角色互换。
评估
语言性能
为了验证语言模型训练过程的有效性,在四个涵盖多种场景的数据集上对训练模型“Mixtral 8x7B Ours”与官方版本“Mixtral 8x7B Instruct”进行了对比评估。
结果显示,训练后的模型在中文评估集(C-EVAL和AGIEVAL)上的能力显著提升,同时保持了英文相关基准(MMLU)上的原始性能水平,并在数学推理任务(GSM8K)上取得了显著进步。
音频性能评估
为了验证模型学习到的语音表征的鲁棒性,在Wenetspeech7和Librispeech8数据集上进行了测试。Wenetspeech包含两个评估集:test_net和test_meeting。前者的数据源与训练数据更为接近,因此较为简单,而后者则更具挑战性。Librispeech则评估了模型在未见数据集上的泛化能力。
从结果来看,VITA在自动语音识别(ASR)基准测试中取得了不错的成绩。
多模态性能评估
-
在图像理解方面,VITA的表现优于专业的开源图像模型LLaVA-Next,并接近闭源模型Gemini 1.5 Pro 。
-
在视频理解方面,VITA超越了专业的开源视频模型Video-CCAM9。尽管VITA与专业的视频模型LLaVA-Next-Video之间仍存在一定差距,但考虑到VITA支持更广泛的多模态并优先处理交互,这一差距是可以接受的。
-
在视频理解能力方面,当前开源模型与专有模型之间仍存在较大差距。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。