别等GPT-4o啦,国产「开源版」GPT-4o 来了!支持全模态、无障碍交流

news2024/9/25 1:15:42

图片

 夕小瑶科技说 原创
 作者 | 谢年年

腾讯最近的多模态进展有点子“一路高歌”,先是腾讯元宝升级了一波多模态能力,就差把GPT-4o从榜一拉下来了。

最近,又搞了一个和GPT-4o对标的交互式多模态模型——VITA,而且率先开源了

每次使用Siri时,都得先说个唤醒词,比如“Hi! Siri”,或者按个按钮才能开始说话。而且,当机器在回答用户提问的时候,用户就不能继续提问了,因为它只能按顺序处理输入。

图片

这次,腾讯提出了VITA,打破了这一限制!

图片

“VITA”看这名字就知道,其能够同时处理和分析 Video(视频)、Image(图像)、Text(文本) 和 Audio(音频)。VITA不仅具备强大的多语言、视觉和音频理解基础能力,在各种单模态和多模态基准测试中表现强劲。更重要的是,VITA带来了两个超棒的改进:

  1. 无需唤醒的交互:VITA很聪明,能自动忽略周围环境中的无关声音,如他人的谈话。所以你不用再说唤醒词,也不用按按钮,就能自然而然地与VITA展开对话。

  2. 音频中断的交互:当VITA正在回答时,如果用户突然想到另一个问题,只需直接说出,VITA便能立即暂停当前回答,迅速转向并解答新问题。这种即时响应的能力,让交流变得更加灵活与高效。

,时长02:13

看视频中的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. 视频模态

  1. 视觉编码器:本文采用InternViT-300M-448px作为视觉编码器,该编码器接受448×448像素的图像作为输入,并通过一个简单的两层MLP作为视觉连接器后,生成256个视觉tokens。对于高分辨率的图像输入,实现了动态打片策略,以捕捉局部细节。视频被视为图像的特殊情况处理。若视频长度小于4秒,均匀采样4帧;若视频长度在4到16秒之间,每秒采样1帧;若视频长度超过16秒,则均匀采样16帧。为防止引入过多的tokens,对视频的单独帧不进行动态打片处理。

  2. 视觉对齐:在这个阶段,仅训练视觉连接器。下表总结了所使用的训练数据纯文本部分除外,包括图像描述、图像问答、OCR与图表、视频描述与问答等。此外,在此阶段不使用音频问题。

    图片

  3. 数据拼接策略:针对纯文本与图像数据,拼接至6K token长度如下图所示,增强输入灵活性与上下文扩展性,同时优化计算效率,保持训练批次中Tokens数量平衡。视频数据则保持原样不拼接。实践表明,拼接数据训练的模型性能与原始数据相当。

    图片

2. 音频模态

  1. 音频编码器:音频首先通过梅尔滤波器组分解成梅尔频率尺度的频带,模拟人类听觉的非线性感知,再经4层CNN下采样和24层Transformer处理。使用两层MLP连接音频与文本模态,将每2秒音频编码为25个Token。

  2. 音频对齐:选用自动语音识别和音频字幕生成作为对齐任务。数据集包括Wenetspeech(10,000+小时中文语音)和Gigaspeech(10,000+小时英文语音),以及Wavcaps的AudioSet SL子集(40万音频片段及字幕)。训练时,同时优化音频编码器和连接器。

多模态指令微调

然后对模型执行指令调优,以增强其文本或音频指令遵循能力。

1. 训练数据

  1. 数据构建:指令调优阶段的数据来源与对齐阶段相同。为了增强模型对音频查询的理解和指令跟随能力,作者采用TTS技术(如GPT-SoVITS6)生成随机(约一半)将问题替换为其音频版本。并设置不同的系统提示以避免不同类型数据之间的冲突,如下表所示:

    图片

  2. 噪声音频构建:在人机交互中,那些不需要响应的音频噪声音频。噪声音频样本的构建使模型能够识别无需响应的音频输入,有助于实现非唤醒交互。作者分别采用负样本抽取从现有的多模态和单模态问答数据中随机抽取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支持更广泛的多模态并优先处理交互,这一差距是可以接受的。

  • 在视频理解能力方面,当前开源模型与专有模型之间仍存在较大差距。

总结

本文介绍了VITA,通过优化开源模型将视频、图像、文本和音频理解整合到一个统一的框架中,并提供了先进的交互体验。VITA通过非唤醒交互和音频中断交互为开源社区开创了新颖的多模态交互方式。

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法-IMM

trajectory-prediction程序的imm.cc中的以下代码的对应的算法原理在后面 void IMM_UKF::InputInteract() {if (std::isnan(model_pro_(0)) || std::isnan(model_pro_(1)) || std::isnan(model_pro_(2)))std::abort();if (model_pro_.sum() ! 0)model_pro_ / model_pro_.sum();…

模组卡死?五步排查法助你快速定位并解决问题!

直线模组是许多机械设备中不可或缺的组件&#xff0c;在使用过程中可能会遇到各种故障&#xff0c;卡死是模组运行过程中最常出现的现象。以下是一些常见的直线模组卡死解决方法&#xff1a; 1、模组内部可能积聚了灰尘、杂质等&#xff0c;这些物质在模组运行过程中可能进入关…

Windows系统下两个不同版本的java切换

前言&#xff1a;在电脑中&#xff0c;已经安装好了两个不同版本的java&#xff0c;为了使用CMD随意切换两个不同版本的java&#xff0c;我们通过创建批处理文件来达到目的。 假设目前电脑中存在的两个java版本分别是java8和java21。 首先&#xff0c;创建java8的批处理文件“j…

minio下载镜像地址及启动脚本

MinIO下载 | 中国镜像下载加速站https://dl.minio.org.cn/server/minio/release/linux-amd64/archive/ MinIO下载 | 中国镜像下载加速站https://dl.minio.org.cn/client/mc/release/linux-amd64/ 文档: 单节点单硬盘部署MinIO — MinIO中文文档 | MinIO Linux中文文档 启动脚…

leetcode刷题-动态规划part01

代码随想录动态规划part01|动态规划理论基础、 509. 斐波那契数、 70. 爬楼梯 、746. 使用最小花费爬楼梯 动态规划基础509. 斐波那契数70.爬楼梯746. 使用最小花费爬楼梯 动态规划基础 动规五部曲&#xff1a; dp数组以及下标的含义&#xff1a;dp[i][j] dp[i]递推公式dp数组…

大模型格局变天:Llama3.1诞生

一、Llama3.1的背景 北美时间7月23日&#xff0c;Meta公司&#xff08;原Facebook&#xff09;宣布了一项重大突破&#xff1a;开源模型Llama 3.1的正式发布。这一举措预示着AI技术的又一次飞跃&#xff0c;Llama 3.1有望成为迄今为止最强大的开源大型语言模型&#xff08;LLM&…

Startup-SBOM:一款针对RPM和APT数据库的逆向安全工具

关于Startup-SBOM Startup-SBOM是一款针对RPM和APT数据库的逆向分析与安全检测工具&#xff0c;该工具本质上是一个简单的 SBOM 实用程序&#xff0c;旨在提供正在执行的包的内部视图&#xff0c;可以帮助广大研究人员枚举所有软件包以及可执行文件、服务和版本。 该工具的流程…

Docker 部署loki日志 用于微服务

因为每次去查看日志都去登录服务器去查询相关日志文件&#xff0c;还有不同的微服务&#xff0c;不同日期的文件夹&#xff0c;超级麻烦&#xff0c;因为之前用过ELK&#xff0c;原本打算用ELK&#xff0c;在做技术调研的时候发现了一个轻量级的日志系统Loki&#xff0c;果断采…

【大模型从入门到精通29】开源库框架LangChain 语义搜索:高级检索策略3

这里写目录标题 实现上下文压缩与 MMR 的文档检索设置基于压缩的检索器与 MMR探索替代文档检索方法加载和准备文档实现 TF-IDF 和 SVM 检索器最佳实践结论理论问题实践问题 实现上下文压缩与 MMR 的文档检索 设置基于压缩的检索器与 MMR 上下文压缩的目标是通过关注与查询最相…

tomcat的初实现与memcache

文章目录 1. tomcat实现多虚拟机2. tomcat定制访问日志格式3. tomcat实现MSM集群4. JVM垃圾回收算法和分代5. memcache使用&#xff0c;安装和MSM原理 1. tomcat实现多虚拟机 一键安装tomcat并启动&#xff0c;使用openjdk #!/bin/bash version10.1.28 usertomcat grouptomcat…

【C++初阶】:C++入门篇(一)

文章目录 前言一、C命名空间1.1 命名空间的定义1.2 命名空间的使用 二、C的输入和输出2.1 cin和cout的使用 三、缺省参数3.1 缺省参数的分类 四、函数重载4.1 函数重载概念及其条件4.2 C支持函数重载原理 -- 名字修饰 前言 C是在C语言的基础之上&#xff0c;增加了一些面向对象…

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——6.vector

1.杨辉三角 . - 力扣&#xff08;LeetCode&#xff09; 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 class Solution { public:vector<vector<int>> generate(int numRows) {vector<vector<int>> arr;int i 0;int j 0;for (i…

Git入门 -- 区域详解

Git入门 – 区域详解 1.Git 1.1 Git与SVN的区别 Git不仅仅是版本控制系统&#xff0c;同时也是内容管理系统。以下是Git与SVN的区别&#xff1a; 分布式&#xff1a;Git是分布式但SVN不是&#xff0c;这是Git与其他系统的核心区别。存储方式为元数据&#xff1a;Git在存储数…

Python 如何使用正则表达式进行复杂文本处理

正则表达式&#xff08;Regular Expressions&#xff0c;简称 regex 或 RE&#xff09;是一种强大的工具&#xff0c;用于在文本中执行模式匹配和搜索操作。通过正则表达式&#xff0c;你可以轻松地查找、替换和提取文本中的特定模式。Python 提供了一个内置的 re 模块&#xf…

数据结构--树(笔记)

文章目录 1. 含义及术语2. 应用3. 常见二叉树种类① 二叉树(Binary tree)一般树和二叉树的区别 ② 完美二叉树(Perfect Binary tree)③ 完全二叉树(Complete Binary tree)④ 满二叉树(Full Binary tree)完美二叉树、完全二叉树和满二叉树 ⑤ 平衡二叉树(Balanced Binary tree)二…

基于STM32开发的智能门锁系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化密码输入与验证门锁控制与状态指示Wi-Fi通信与远程监控应用场景 家庭智能门锁办公室智能门禁系统常见问题及解决方案 常见问题解决方案结论 1. 引言 智能门锁系统通过集成键盘模块…

自学编程从哪个语言入手比较好?

自学编程时选择哪个语言作为起点&#xff0c;仍然取决于你的个人兴趣、学习目标和职业规划。希望以下建议可以帮到你。 Python&#xff1a; 如果你对数据分析、机器学习、人工智能、Web 开发或自动化脚本编写等领域感兴趣&#xff0c;Python 是一个非常好的起点。它的语法简洁…

java如何通过jdbc操作数据库

1. 安装JDBC 官网地址&#xff1a;官网地址选择 下载后&#xff0c;解压缩&#xff0c;然后将mysql-connector-j-9.0.0.jar文件放到项目目录下 编写操作数据库代码 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql…

20240819 每日AI必读资讯

&#x1f4da;AI爆料人遭全网封禁&#xff01;OpenAI等25个机构祭大招&#xff0c;一眼辨别AI机器人 - 最近半个月&#xff0c;全网被OpenAI的「AI爆料人」「草莓哥」iruletheworldmo愚弄。所有人没有等他预测的GPT-4o large模型&#xff0c;反被AI初创MultiOn创始人揭穿身份—…

Squid:概念、代理案例

目录 Squid 缓存代理 Web代理的工作机制 代理类型 传统代理 透明代理 使用代理的好处 示例和案例 Squid安装示例 使用源码包安装Squid 一些其他的安装参数&#xff08;安装用时较长&#xff09; 为什么异步io要指定线程数&#xff1f; 配置和初始化Squid 运行测试…