VITA-1.5: 迈向GPT-4o级实时视频-语音交互

文摘   2025-01-20 17:53   浙江  

近期,由南京大学和腾讯优图推出的VITA-1.5在魔搭开源。VITA-1.5支持视频,音频,文本输入,以及音频输出。



模型链接:

https://modelscope.cn/models/modelscope/NJU_VITA-1.5


代码链接:

https://github.com/VITA-MLLM/VITA


论文链接:

https://arxiv.org/pdf/2501.01957


01

VITA-1.5 有什么新功能?



它包含了一系列的进步:


  1. 交互时延大幅降低。端到端语音交互时延由约4秒降低至1.5秒,实现近乎即时的交互,大幅提升用户体验。

  2. 增强多模式性能。MME 、MMBench和MathVista等多模式基准测试的平均性能已从59.8 显著提升至70.8。

  3. 语音处理能力的提升。语音处理能力提升到了一个新的水平,ASR WER(词错率,测试其他)从18.4降低到了7.5。此外,我们用端到端TTS 模块取代了 VITA-1.0 的独立 TTS 模块,该模块接受 LLM 的嵌入作为输入。

  4. 渐进式训练策略。通过这种方式,语音的加入对其他多模态性能(视觉-语言)影响不大。平均图像理解性能仅从71.3下降到70.8。

  • 对图像和视频理解基准的评估


  • VITA-1.5 在 ASR 基准测试中的表现优于专业语音模型


  • 添加音频模态对图像和视频理解能力影响不大。


02

模型推理



本文推荐使用WebUI完成模型体验和推理

第一步:下载开源项目

git clone https://github.com/VITA-MLLM/VITA.git


第二步:安装依赖

pip install -r web_demo/web_demo_requirements.txt


第三步:下载模型

modelscope download --model=modelscope/NJU_VITA-1.5 --local_dir ./demo_VITA_ckpt/VITA-1.5modelscope download --model=OpenGVLab/InternViT-300M-448px --local_dir ./demo_VITA_ckpt/InternViT-300M-448px

第四步:配置并修改config文件

# mm_audio_encoder和mm_vision_tower可改为本地的文件夹路径,如"demo_VITA_ckpt/InternViT-300M-448px"mv demo_VITA_ckpt/config.json demo_VITA_ckpt/origin_config.jsoncd ./web_demo/vllm_toolscp -rf qwen2p5_model_weight_file/*  ../../demo_VITA_ckpt/cp -rf vllm_file/*  your_envs/vita_demo/lib/python3.10/site-packages/vllm/model_executor/models/

第五步:运行代码

python -m web_demo.web_ability_demo  demo_VITA_ckpt/


03

模型微调



更新pip并安装项目依赖:

pip install --upgrade pippip install -r requirements.txtpip install flash-attn --no-build-isolation


数据准备

下面是一个训练数据的示例JSON文件:

[    ...    {        "set": "sharegpt4",        "id": "000000000164",        "conversations": [            {                "from": "human",                "value": "<image>\n<audio>\n"            },            {                "from": "gpt",                "value": "This is a well-organized kitchen with a clean, modern aesthetic. The kitchen features a white countertop against a white wall, creating a bright and airy atmosphere."            }        ],        "image": "coco/images/train2017/000000000164.jpg",        "audio": [            "new_value_dict_0717/output_wavs/f61cf238b7872b4903e1fc15dcb5a50c.wav"        ]    },    ...]


set 字段用于获取数据加载时的图像或视频文件夹。你需要将它的键值对添加到 ./vita/config/dataset_config.py 中的 FolderDict:

AudioFolder = ""FolderDict = {    #### NaturalCap    "sharegpt4": "",}


设置对应字典中 chat_path 的JSON路径:

#### NaturalCapShareGPT4V = {"chat_path": ""}


在 ./vita/config/dataset_config.py 中设置音频文件夹路径为 AudioFolder。

在 ./vita/config/init.py 中添加数据类:

from .dataset_config import *
NaturalCap = [ShareGPT4V]
DataConfig = { "Pretrain_video": NaturalCap,}


模型准备

下载所需的权重:

(1)VITA-1.5 https://modelscope.cn/models/VITA-MLLM/VITA-1.5

(2)InternViT-300M-448px  https://modelscope.cn/models/OpenGVLab/InternViT-300M-448px

(3)音频语言对齐中预训练的音频编码器 https://modelscope.cn/models/VITA-MLLM/VITA-1.5

替换 ./script/train/finetuneTaskNeg_qwen_nodes.sh 中的路径:

...--model_name_or_path VITA1.5_ckpt \...--vision_tower InternViT-300M-448px \...--audio_encoder audio-encoder-Qwen2-7B-1107-weight-base-11wh-tunning \...


执行以下命令以启动训练过程:

export PYTHONPATH=./export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:TrueOUTPUT_DIR=/mnt/cfs/lhj/videomllm_ckpt/outputs/vita_video_audiobash script/train/finetuneTaskNeg_qwen_nodes.sh ${OUTPUT_DIR}


点击阅读原文,即可跳转模型链接~




👇点击关注ModelScope公众号获取
更多技术信息~

魔搭ModelScope社区
模型开源社区魔搭社区ModelScope官方账号
 最新文章