Я хочу використовувати Llava для автоматичного позначення свого набору даних зображень. Результат маркування має бути JSON з певною інформацією, напр. {'animal_list': ['dog', 'cat'], 'image_quality': 'blurred', ...}
. Я вручну позначив кілька сотень зображень за допомогою потрібної схеми та створив набір даних за допомогою описаного формату тут. Зокрема, людське повідомлення завжди те саме:
Опишіть наступне зображення, взяте з […], зосереджуючись на […]. Використовуйте таку схему: GT_SCHEMA
, де GT_SCHEMA
— бажана схема JSON, а повідомлення gpt — вихід JSON. Я навчив Llava 1.6 за допомогою LoRA (скрипт навчання в кінці).
Модель навчилася надавати відповідь у потрібному форматі JSON. Однак вихідні дані часто є неточними (наприклад, animal_list
не містить тварин на зображенні). Я перевірив, чи здатна базова модель ідентифікувати всі елементи, які мені потрібні, коли я надсилаю запит із безкоштовним описом, тому проблема полягає в точному налаштуванні цього формату. Як я можу підвищити точність структурованого маркування?
#!/bin/bash
export DATA_PATH=/home/ubuntu/data/structured
export IMG_PATH=/home/ubuntu/data/structured
export OUTPUT_DIR=/home/ubuntu/models/llava-v1.6-vicuna-13b-lora
deepspeed llava/train/train_mem.py
--lora_enable Правда --lora_r 16 --lora_alpha 16 --mm_projector_lr 1e-5
--deepspeed ./scripts/zero3_offload.json
--model_name_or_path liuhaotian/llava-v1.6-vicuna-13b
--версія v1
--data_path $DATA_PATH/набір даних
--image_folder $IMG_PATH
--vision_tower openai/clip-vit-large-patch14-336
--mm_projector_type mlp2x_gelu
--mm_vision_select_layer -2
--mm_use_im_start_end False
--mm_use_im_patch_token False
--image_aspect_ratio панель
--group_by_modality_length True
--bf16 Правда
--output_dir $OUTPUT_DIR
--num_train_epochs 3
--per_device_train_batch_size 4
--per_device_eval_batch_size 4
--gradient_accumulation_steps 1
--evaluation_strategy "ні"
--save_strategy "кроки"
--save_steps 80
--save_total_limit 3
--learning_rate 2e-4
--weight_decay 0.
--warmup_ratio 0,03
--lr_scheduler_type "косинус"
--logging_steps 1
--tf32 Правда
--model_max_length 2048
--gradient_checkpointing Правда
--dataloader_num_workers 4
--lazy_preprocess Правда
--report_to wandb