近期,由南京大学和腾讯优图推出的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
它包含了一系列的进步:
交互时延大幅降低。端到端语音交互时延由约4秒降低至1.5秒,实现近乎即时的交互,大幅提升用户体验。
增强多模式性能。MME 、MMBench和MathVista等多模式基准测试的平均性能已从59.8 显著提升至70.8。
语音处理能力的提升。语音处理能力提升到了一个新的水平,ASR WER(词错率,测试其他)从18.4降低到了7.5。此外,我们用端到端TTS 模块取代了 VITA-1.0 的独立 TTS 模块,该模块接受 LLM 的嵌入作为输入。
渐进式训练策略。通过这种方式,语音的加入对其他多模态性能(视觉-语言)影响不大。平均图像理解性能仅从71.3下降到70.8。
对图像和视频理解基准的评估
VITA-1.5 在 ASR 基准测试中的表现优于专业语音模型
添加音频模态对图像和视频理解能力影响不大。
本文推荐使用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.5
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.json
cd ./web_demo/vllm_tools
cp -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/
更新pip并安装项目依赖:
pip install --upgrade pip
pip install -r requirements.txt
pip 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路径:
#### NaturalCap
ShareGPT4V = {"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:True
OUTPUT_DIR=/mnt/cfs/lhj/videomllm_ckpt/outputs/vita_video_audio
bash script/train/finetuneTaskNeg_qwen_nodes.sh ${OUTPUT_DIR}
点击阅读原文,即可跳转模型链接~