NVILA:英伟达开源视觉语言大模型,高效处理高分辨率图像和长视频

145 阅读3分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 高效处理:NVILA能高效处理高分辨率图像和长视频,保持高准确性。
  2. 技术优化:模型在整个生命周期中进行了系统化的效率优化。
  3. 多领域应用:NVILA在机器人导航、医疗成像等多个领域展现出广泛的应用潜力。

正文(附运行示例)

NVILA 是什么

公众号: 蚝油菜花 - VILA

NVILA是英伟达推出的视觉语言模型,旨在平衡效率和准确性。该模型采用“先扩展后压缩”的策略,有效处理高分辨率图像和长视频。NVILA在训练和微调阶段进行系统优化,减少资源消耗,在多项图像和视频基准测试中达到或超越当前领先模型的准确性。

NVILA不仅在处理效率上有所突破,还引入了时间定位、机器人导航和医学成像等新功能,拓宽了其在多个领域的应用潜力。

NVILA 的主要功能

  • 高分辨率图像和长视频处理:NVILA能高效处理高分辨率图像和长视频,保持高准确性。
  • 效率优化:在整个生命周期中,从训练到部署,NVILA进行了系统化的效率优化。
  • 时间定位:支持视频中的时间定位功能。
  • 机器人导航:作为机器人导航的基础,实现实时部署。
  • 医疗多模态应用:在医疗领域整合多个专家模型,提高诊断和决策的准确性。

NVILA 的技术原理

  • “扩展-压缩”方法:先提升空间和时间分辨率,再压缩视觉令牌平衡准确性和效率。
  • 动态S2:适应不同长宽比的图像,提取多尺度高分辨率特征。
  • FP8混合精度训练:加速模型训练,且保持准确性。
  • 数据集修剪:用DeltaLoss方法筛选训练数据,去除过于简单或困难的样本。
  • 量化技术:用W8A8和W4A16量化技术,提高模型部署的效率。
  • 参数高效微调:针对不同下游任务,选择性地微调模型的不同部分,减少内存需求。

如何运行 NVILA

NVILA的运行需要一定的环境配置和代码执行。以下是一个简单的运行示例:

环境配置

./environment_setup.sh vila

训练步骤

NVILA的训练包含三个步骤,具体参数请参考scripts/v1_5文件夹。

步骤1:对齐
bash scripts/v1_5/paper/1_mm_align.sh [BASE_MODEL_PATH] [OUTPUT_NAME]
步骤2:预训练
bash scripts/v1_5/paper/2_pretrain_mmc4_coyo.sh [CODE_PATH] [BASE_MODEL_PATH] [STAGE1_PATH] [OUTPUT_NAME]
步骤3:监督微调
bash scripts/v1_5/paper/3_sft.sh [STAGE2_PATH] [OUTPUT_NAME]

推理示例

以下是一个简单的推理示例,使用Llama-3-VILA1.5-8B模型:

python -W ignore llava/eval/run_vila.py \
    --model-path Efficient-Large-Model/Llama-3-VILA1.5-8b-Fix \
    --conv-mode llama_3 \
    --query "<image>\n Please describe the traffic condition." \
    --image-file "av.png"

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦