LLaVA是一种新颖的端到端训练的大型多模态模型,它结合了视觉编码器和Vicuna,用于通用的视觉和语言理解,实现了令人印象深刻的聊天能力,在科学问答(Science QA)上达到了新的高度。
本仓已经支持以下模型任务类型
| 模型 | 任务列表 | 是否支持 |
|---|---|---|
| LLaVA 1.5 7B | 训练 | ✔ |
| LLaVA 1.5 7B | 推理 | ✔ |
| LLaVA 1.5 7B | 评估 | ✔ |
参考实现:
url=https://github.com/haotian-liu/LLaVA.git
commit_id=3e337ad269da3245643a2724a1d694b5839c37f9适配昇腾AI处理器的实现:
url=https://modelers.cn/models/PyTorch-NPU/LLaVAgit clone 远程仓
git clone https://modelers.cn/PyTorch-NPU/LLaVA.git
cd LLaVA创建python环境并且安装python三方包
conda create -n llava python=3.10 -y
conda activate llava
pip install --upgrade pip # enable PEP 660 support
pip install -e .
pip install -e ".[train]"
pip3 install torch==2.1.0+cpu --index-url https://download.pytorch.org/whl/cpu #For X86
pip3 install torch==2.1.0 #For Aarch64
pip3 install accelerate==0.28.0 decorator==5.1.1 scipy==1.13.0 attrs==23.2.0 openpyxl如果不使用wandb需要卸载wandb,否则程序会报错
pip uninstall wandb环境准备指导
请参考《Pytorch框架训练环境准备》。
表 1 昇腾软件版本支持表
| 软件类型 | 支持版本 |
|---|---|
| FrameworkPTAdapter | 在研版本 |
| CANN | 在研版本 |
| 昇腾NPU固件 | 在研版本 |
| 昇腾NPU驱动 | 在研版本 |
├── coco
│ └── train2017
├── gqa
│ └── images
├── ocr_vqa
│ └── images
├── textvqa
│ └── train_images
└── vg
├── VG_100K
└── VG_100K_2联网情况下,预训练模型会自动下载。
无网络时,用户可访问huggingface官网自行下载,文件namespace如下:
lmsys/vicuna-7b-v1.5
openai/clip-vit-large-patch14-336
liuhaotian/llava-v1.5-mlp2x-336px-pretrain-vicuna-7b-v1.5训练脚本位置位于scripts/v1_5/finetune_npu.sh,需要手动将数据集,权重的路径传入到相应参数上。
--model_name_or_path lmsys/vicuna-7b-v1.5 # vicuna权重路径
--data_path ./playground/data/llava_v1_5_mix665k.json # 指令微调数据的路径
--image_folder ./playground/data # 图片数据集的路径,路径下包含五个数据集
--vision_tower openai/clip-vit-large-patch14-336 # clip模型路径
--pretrain_mm_mlp_adapter ./checkpoints/llava-v1.5-7b-pretrain/mm_projector.bin # mlp adapter路径运行训练脚本,该模型支持单机8卡训练。
bash scripts/v1_5/finetune_npu.sh # 8卡精度及性能 bf16训练完成后,权重文件保存在参数--output_dir路径下。
| 芯片 | 卡数 | samples per second | batch_size | AMP_Type | Torch_Version |
|---|---|---|---|---|---|
| GPU | 8p | 18.62 | 16 | bf16 | 2.1 |
| Atlas A2 | 8p | 20.13 | 16 | bf16 | 2.1 |
--question-file ./playground/data/eval/textvqa/llava_textvqa_val_v051_ocr.jsonl \
--image-folder ./playground/data/eval/textvqa/train_images \python -m llava.serve.cli \
--model-path liuhaotian/llava-v1.5-7b \
--image-file "https://llava-vl.github.io/static/images/view.jpg" \代码涉及公网地址参考 public_address_statement.md
2024.05.09: 首次发布 2024.05.20: 添加NPU适配代码
无