How to use from
SGLang
Install from pip and serve model
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
    --model-path "Dezurg/qwen2.5-v2-3b-gqa-ru-lora" \
    --host 0.0.0.0 \
    --port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
	-H "Content-Type: application/json" \
	--data '{
		"model": "Dezurg/qwen2.5-v2-3b-gqa-ru-lora",
		"messages": [
			{
				"role": "user",
				"content": [
					{
						"type": "text",
						"text": "Describe this image in one sentence."
					},
					{
						"type": "image_url",
						"image_url": {
							"url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg"
						}
					}
				]
			}
		]
	}'
Use Docker images
docker run --gpus all \
    --shm-size 32g \
    -p 30000:30000 \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    --env "HF_TOKEN=<secret>" \
    --ipc=host \
    lmsysorg/sglang:latest \
    python3 -m sglang.launch_server \
        --model-path "Dezurg/qwen2.5-v2-3b-gqa-ru-lora" \
        --host 0.0.0.0 \
        --port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
	-H "Content-Type: application/json" \
	--data '{
		"model": "Dezurg/qwen2.5-v2-3b-gqa-ru-lora",
		"messages": [
			{
				"role": "user",
				"content": [
					{
						"type": "text",
						"text": "Describe this image in one sentence."
					},
					{
						"type": "image_url",
						"image_url": {
							"url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg"
						}
					}
				]
			}
		]
	}'
Quick Links

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 и proj vision-модуля.

Быстрый запуск

Установите зависимости:

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.

Downloads last month
5
Safetensors
Model size
4B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Dezurg/qwen2.5-v2-3b-gqa-ru-lora

Adapter
(275)
this model

Datasets used to train Dezurg/qwen2.5-v2-3b-gqa-ru-lora

Evaluation results