Instructions to use Dezurg/qwen2.5-v2-3b-gqa-ru-lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Dezurg/qwen2.5-v2-3b-gqa-ru-lora with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Dezurg/qwen2.5-v2-3b-gqa-ru-lora") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Dezurg/qwen2.5-v2-3b-gqa-ru-lora") model = AutoModelForMultimodalLM.from_pretrained("Dezurg/qwen2.5-v2-3b-gqa-ru-lora", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Dezurg/qwen2.5-v2-3b-gqa-ru-lora with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Dezurg/qwen2.5-v2-3b-gqa-ru-lora" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/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
docker model run hf.co/Dezurg/qwen2.5-v2-3b-gqa-ru-lora
- SGLang
How to use Dezurg/qwen2.5-v2-3b-gqa-ru-lora with 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" } } ] } ] }' - Docker Model Runner
How to use Dezurg/qwen2.5-v2-3b-gqa-ru-lora with Docker Model Runner:
docker model run hf.co/Dezurg/qwen2.5-v2-3b-gqa-ru-lora
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
- Downloads last month
- 5
Model tree for Dezurg/qwen2.5-v2-3b-gqa-ru-lora
Base model
Qwen/Qwen2.5-VL-3B-InstructDatasets used to train Dezurg/qwen2.5-v2-3b-gqa-ru-lora
deepvk/GQA-ru
Evaluation results
- Exact Match on GQA-ruself-reported0.537
- BERTScore F1 on GQA-ruself-reported0.907
- Accuracy on MMBench-ruself-reported0.803
docker model run hf.co/Dezurg/qwen2.5-v2-3b-gqa-ru-lora