VILA是一种视觉语言模型(Visual Language Model,简称VLM),它通过大规模交错的图像-文本数据进行预训练,从而能够实现视频理解和多图像理解的能力。它特别适合于视频内容的分析、多图像间关系的推理,以及图像和文本信息的融合处理。,关于它的特性,请前往源repo查看:https://huggingface.co/Efficient-Large-Model/VILA1.5-3b。 本例程对VILA1.5-3b进行移植,使之能在SOPHON BM1684X上进行推理测试。
对于BM1684X,该例程支持在V24.04.01(libsophon_0.5.1)及以上的SDK上运行,支持在插有1684X加速卡(SC7系列)的x86/arm主机上运行,也可以在1684X SoC设备(如SE7、SM7、Airbox等)上运行。
对于BM1688,支持在1.7.0及以上的SDK运行。
- 支持BM1684X(x86/arm PCIe、SoC), BM1688
- 支持INT8、INT4模型编译和推理
- 支持基于SAIL推理的Python例程
已提供编译好的bmodel。
本例程在scripts
目录下提供了下载脚本download.sh
chmod +x ./scripts/download.sh
./scripts/download.sh
执行下载脚本后,当前目录下的文件如下:
├── docs
│ └── Qwen_Export_Guide.md #Vila bmodel编译指南
├── datasets
│ └── test_car_person_1080P.mp4 #测试视频
├── models
│ └── BM1684X #download.sh下载的bmodel
│ ├── vision_embedding_6batch.bmodel
│ └── llama_int4_seq2560.bmodel
├── python
│ ├── vila.py #Vila python推理脚本
│ ├── README.md #python例程执行指南
│ ├── requirements.txt #python例程的依赖模块
│ └── config #配置文件
├── README.md #Vila例程指南
├── scripts
│ ├── download.sh #下载模型和数据集脚本
│ ├── download_onnx.sh #下载onnx模型脚本
│ ├── gen_bmodel.sh #编译bmodel脚本
此部分请参考Vila模型导出与编译
图片embedding性能
测试平台 | 输入 | 精度 | 性能 (s) |
---|---|---|---|
SE7-32 | (1, 3, 384, 384) | FP16 | 0.08 |
LLM性能
测试平台 | 测试程序 | 测试模型 | first token latency(s) | token per second(tokens/s) |
---|---|---|---|---|
SE7-32 | vila.py | llama_int4_seq512.bmodel | 0.377 | 24.2 |
SE7-32 | vila.py | llama_int4_seq2560.bmodel | 1.8 | 17.79 |
SE7-32 | vila.py | llama_int4_seq4096.bmodel | 3.4 | 14.98 |
测试说明:
- 性能测试结果具有一定的波动性,建议多次测试取平均值;
- SE7-32的主控处理器为8核 ARM A53 42320 DMIPS @2.3GHz,PCIe上的性能由于处理器的不同可能存在较大差异;
- 这里使用的SDK版本是BM1684X V24.04.01;