Реализация серии Llava-Next серии Llava-Next для облегчения большого многомодального модельного сообщества.
Ресурсы: [? Huggingface]
Смотрите более подробную информацию в Modelzoo.md.
| Имя | Vit | LLM | Вес | Май | СЕМЯ | Кв | Ммб | MMB-CN | Textvqa | GQA |
|---|---|---|---|---|---|---|---|---|---|---|
| Llava-next-Vicuna-7b | Клип-L-336 | Vicuna-7b | Суп | 1519 | 70.2 | 70.1 | 67.4 | 60.6 | 64,9 | 64.2 |
| Open-Llava-Next-Vicuna-7b | Клип-L-336 | Vicuna-7b | Pt, Sft | 1540 | 71.1 | 70.7 | 68.5 | 60.7 | 67.2 | 64.3 |
| Llava-next-llama3-8b | Клип-L-336 | Llama3-8b | Суп | 1591 | 72,7 | 73,4 | 72,6 | 69,0 | 65,0 | 65,5 |
| Open-Llava-Next-Llama3-8b | Клип-L-336 | Llama3-8b | Pt, Sft | 1552 | 74.4 | 77.3 | 74.4 | 70.4 | 69,8 | 65,9 |
git clone https://github.com/xiaoachen98/Open-LLaVA-NeXT.git
cd Open-LLaVA-NeXTconda create -n llava-next python=3.10 -y
conda activate llava-next
pip install --upgrade pip # enable PEP 660 support
pip install -e . pip install -e ".[train]"
pip install flash-attn --no-build-isolation
Вы должны следовать этой инструкции Data.md для управления наборами данных обучения.
Обучение Open-hlava-next состоит из двух этапов: (1) Стадия выравнивания функций: используйте подмножество 558K набора данных LAION-CC-SBU для подключения замороженного предварительного кодера зрения с замороженным LLM ; (2) Стадия настройки визуальных инструкций: Finetune Вся модель с 1M полностью открытыми исходными данными. Подробная статика данных приведена в настройке визуальных инструкций. Мы принимаем вариант Vicuna-V1.5-7B в качестве примера, чтобы представить детали обучения и оценки.
Серия Open-Llava-Next обучается на графических процессорах A100 с 80 ГБ памяти. Чтобы тренироваться на меньше графических процессоров, вы можете уменьшить per_device_train_batch_size и соответственно увеличить gradient_accumulation_steps . И использование DeepSpeed Zero-3 может еще больше уменьшить требования к памяти. Всегда сохраняйте глобальный размер партии одинаковым: per_device_train_batch_size x gradient_accumulation_steps x num_gpus .
Мы используем тот же набор гиперпараметров, что и Llava в области создания. Оба гиперпараметра, используемые при предварительной подготовке и создании, приведены ниже.
| Гиперпараметр | Глобальный размер партии | Проектор LR | Эпохи | Максимальная длина | Распад веса |
|---|---|---|---|---|---|
| Open-Llava-Next-7b | 256 | 1E-3 | 1 | 4096 | 0 |
| Гиперпараметр | Глобальный размер партии | LLM LR | Проектор LR | Vision Tower Lr | Эпохи | Максимальная длина | Распад веса |
|---|---|---|---|---|---|---|---|
| Open-Llava-Next-7b | 128 | 2E-5 | 2E-5 | 2E-6 | 1 | 4096 | 0 |
Пожалуйста, загрузите подмножество 558K набора данных LAION-CC-SBU с подпитками BLIP здесь.
Предварительный предварительный пробел занимает около 5 часов для Open-Llava-Next-7B на 16 x A100 (80G).
Обучение сценария с Deepspeed Zero-2: pretrain.sh .
--mm_projector_type mlp2x_gelu : двухслойный разъем MLP-языка.--vision_tower openai/clip-vit-large-patch14-336 : clip vit-l/14 336px. Обучение сценария с Deepspeed Zero-2: finetune.sh .
Новые варианты отметить:
--unfreeze_mm_vision_tower True : Finetune Vision Tower.--mm_vision_tower_lr 2e-6 : скорость обучения башни зрения.--image_aspect_ratio anyres : обработать изображение с разрешением переменной.--mm_patch_merge_type spatial_unpad : это не является тензором Pytorch мягкого и измененного изображения, и, вставляя обучаемые новые векторы в токены изображения, модель узнает о двумерной пространственной информации. Это используется для обработки токена изображения. См. Оценка.md.
Если вы найдете этот проект полезным в своем исследовании, пожалуйста, рассмотрите цит: CITE:
@misc { chen2024open ,
title = { Open-LLaVA-NeXT: An open-source implementation of LLaVA-NeXT series for facilitating the large multi-modal model community. } ,
author = { Chen, Lin and Xing, Long } ,
howpublished = { url{https://github.com/xiaoachen98/Open-LLaVA-NeXT} } ,
year = { 2024 } ,
doi = { 10.5281/zenodo.13935471 }
}