Qwen2.5-VL GQA-ru LoRA v2
qwen2.5-vl-gqa-ru-lora-v2 — русскоязычная visual question answering (VQA) модель на базе Qwen2.5-VL-3B-Instruct. Модель дообучена методом LoRA на 20 000 примерах train_balanced из GQA-ru для генерации коротких ответов на вопросы по изображениям.
Это полная модель: LoRA-адаптер уже объединён с базовыми весами. Отдельно загружать Qwen/Qwen2.5-VL-3B-Instruct или подключать PEFT-адаптер не нужно.
Особенности v2
- лучший Exact Match на GQA-ru среди проверенных в проекте моделей: 0,5372;
- на 21,74 процентного пункта выше базовой Qwen2.5-VL по Exact Match;
- оптимальна, если основная задача — короткие свободные ответы на русском языке;
- в отличие от v3, LoRA применялась к текстовым attention- и MLP-проекциям, без
qkvиprojvision-модуля.
Быстрый запуск
Установите зависимости:
pip install "transformers>=4.49" accelerate pillow torch
Пример инференса:
import torch
from PIL import Image
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration
MODEL_ID = "qwen2.5-vl-gqa-ru-lora-v2" # или путь к локальной папке
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
MODEL_ID,
torch_dtype=torch.bfloat16,
device_map="auto",
).eval()
processor = AutoProcessor.from_pretrained(MODEL_ID)
image = Image.open("image.jpg").convert("RGB")
question = "Какого цвета автомобиль?"
messages = [{
"role": "user",
"content": [
{"type": "image", "image": image},
{
"type": "text",
"text": (
"Answer the question using only the image. Give a short answer.\n"
f"Question: {question}\nAnswer:"
),
},
],
}]
text = processor.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = processor(
text=[text],
images=[image],
padding=True,
return_tensors="pt",
).to(model.device)
with torch.inference_mode():
generated_ids = model.generate(
**inputs,
max_new_tokens=32,
do_sample=False,
)
generated_ids = generated_ids[:, inputs.input_ids.shape[1]:]
answer = processor.batch_decode(
generated_ids,
skip_special_tokens=True,
clean_up_tokenization_spaces=False,
)[0]
print(answer.strip())
Для GPU без поддержки BF16 замените torch.bfloat16 на torch.float16. На CPU можно использовать torch.float32, но генерация будет значительно медленнее. Модель также понимает обычный русскоязычный промпт, однако выше приведён шаблон, с которым она обучалась.
Обучение
| Параметр | Значение |
|---|---|
| Базовая модель | Qwen/Qwen2.5-VL-3B-Instruct |
| Обучающий сплит | GQA-ru train_balanced |
| Число примеров | 20 000 |
| Epochs | 1 |
| Batch size / gradient accumulation | 1 / 8 |
| Learning rate | 1e-5 |
| Scheduler / warmup | cosine / 0,03 |
LoRA r / alpha / dropout | 16 / 32 / 0,05 |
| LoRA target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| Max sequence length | 3072 |
| Image pixels, min / max | 200 704 / 802 816 |
| Precision | BF16 |
| Optimizer / weight decay | AdamW / 0,01 |
| Seed | 42 |
| Train loss | 0,3871 |
| Train runtime | 4 ч 44 мин |
Базовые веса были заморожены; во время обучения обновлялись только LoRA-параметры. Использовались gradient checkpointing и seed 42.
Оценка
Модель проверена на полных оценочных сплитах: 12 216 заданиях GQA-ru testdev_balanced и 3 910 заданиях MMBench-ru dev. В итоговых предсказаниях нет пропущенных идентификаторов, дубликатов или ошибок инференса.
| Модель | GQA-ru Exact Match | GQA-ru BERTScore F1 | MMBench-ru Accuracy |
|---|---|---|---|
| Qwen2.5-VL GQA-ru LoRA v2 | 0,5372 | 0,9065 | 0,8033 |
| Qwen2.5-VL-3B-Instruct | 0,3198 | 0,8064 | 0,7992 |
- Exact Match: совпадение с эталоном после приведения к нижнему регистру, удаления лишних пробелов и пунктуации.
- BERTScore F1: семантическое сходство на основе
bert-base-multilingual-cased. - MMBench-ru Accuracy: доля правильно выбранных вариантов ответа.
Назначение и ограничения
Модель предназначена для экспериментального и исследовательского русскоязычного VQA. Она лучше всего подходит для коротких фактических ответов об объектах, их атрибутах и отношениях на изображении.
- Модель может ошибаться, галлюцинировать и воспроизводить смещения базовой модели и обучающих данных.
- GQA-ru ориентирован на короткие ответы; качество длинных объяснений, OCR, документов, видео и других доменов отдельно не измерялось.
- Exact Match не засчитывает корректные синонимы, если они не совпали с эталоном после нормализации.
- Различия менее одного процентного пункта на MMBench-ru между вариантами Qwen следует трактовать осторожно.
- Не используйте модель как единственный источник для медицинских, юридических, финансовых или иных решений с высокими рисками.
Лицензия и благодарности
Модель распространяется на условиях Qwen Research License. Перед использованием также проверьте условия лицензий GQA-ru и MMBench-ru.
- Базовая модель: Qwen/Qwen2.5-VL-3B-Instruct
- Данные: deepvk/GQA-ru и deepvk/MMBench-ru
- Код, ноутбуки и полные результаты: vk-vision-language-vqa