Это исходный отчёт фазы как есть — со всеми таблицами и методикой. Живая версия: 👁️ Вопросы по фото.
Фаза 7: понимание изображений (VLM)
Прогон: 21–23 октября 2026
Хост: UGREEN DXP4800 Pro, i3-1315U, 32 GB, iGPU Intel RPL-U (Xe-LP, 64 EU)
Что меряли: насколько хорошо локальные VLM отвечают на вопросы по фотографиям (в том числе о русской культуре и по-русски), рассуждают по картинкам, читают графики и описывают фото по-русски, и сколько это стоит по времени на iGPU.
Коротко
- Лучшая модель для фото — Qwen3-VL-8B: CVQA ru 77.5%, MMStar 60%, ChartQA 67%, описания 4.45 из 5. Но вопрос по фото занимает ~32 с, и она самая тяжёлая из рабочих (до 11.5 GiB).
- Qwen3-VL-4B и Qwen3.5-4B почти не уступают (CVQA 70.5–71%, ChartQA 68–70%) при ~18–23 с на фото.
- Описания у них лучшие: 4.55 у Qwen3-VL-4B и 4.35 у Qwen3.5-4B. Qwen3-VL-4B точнее, Qwen3.5-4B подробнее, но чаще ошибается в роде.
- Qwen3.5-4B — та же модель, что для команд и документов, так что одна модель закрывает почти всё.
- Qwen3-VL-2B заметно слабее: CVQA 61.5%, описания 3.65. В них выдумки вроде «белая пантера» вместо белого медведя или «доберман, похожий на дельфина», и бывают зацикливания.
- Самая трудная категория — известные люди: 23–62%, лучшая у 8B. Еда, традиции и бренды узнаются хорошо (70–92%).
- Gemma 4 E4B — самая быстрая: 8.8 с на фото, описания 4.25 из 5, CVQA 61.5% (как Qwen3-VL-2B), но MMStar 43% и ChartQA 56% — слабее всех Qwen. В первом прогоне она выдавала мусор (
<unused2154>): её ломает лимит--image-max-tokens 1024, без него работает нормально. - Qwen3.6-35B и Gemma 4 26B работают, только если их визуальный энкодер считать на CPU. На iGPU (Vulkan) обе через 3–20 запросов к одному серверу залипают на одной букве, описания становятся пустыми, а иногда сервер сломан с первого запроса; в логе — «the CLIP graph uses unsupported operators by the backend». Не помогали ни
cache_prompt: false, ни перезапуск сервера каждые 6 запросов (очистка слота/slots/0?action=eraseв этой сборке не реализована). С--no-mmproj-offloadответы стабильные.- Qwen3.6-35B — лучшая по качеству: 73.3% на первых 60 вопросах CVQA (Qwen3-VL-8B на них же — 70%) и лучшие описания, 4.6 из 5: подробно, читает надписи. Но ~52 с на вопрос и 20 GiB.
- Gemma 4 26B — на уровне Qwen3-VL-8B: 70% на тех же 60 вопросах, описания 4.55, ~53 с на вопрос.
- Мерили только CVQA (60 вопросов) и описания: при ~50 с на вопрос полный набор занял бы ~6 ч на модель, а вывод это не меняет — для дома быстрее и почти так же хороши 4B-модели.
Как мерили
- Данные:
- CVQA — русская часть, все 200 вопросов на русском с 4 вариантами. Лицензии картинок разные, в том числе CC BY-NC, поэтому используются только для локальной оценки;
- MMStar — 100 вопросов, по ~17 из каждой из 6 категорий;
- ChartQA — 100 вопросов, составленных людьми (GPL-3.0);
- 20 фото Crossmodal-3600 для русских описаний.
- Модели:
- Qwen3-VL 2B/4B/8B Instruct (GGUF от Qwen);
- Qwen3.5-4B, Qwen3.6-35B-A3B и Gemma 4 26B-A4B с визуальными адаптерами (mmproj F16 от unsloth) поверх уже скачанных весов;
- Gemma 4 E4B (ggml-org, Q8_0).
- Сервер: llama.cpp
server-vulkanbuild 11718,-c 16384,--cache-ram 0,--reasoning off,--image-max-tokens 1024. Без этого лимита одно фото CVQA превращалось в ~8.5 тысяч визуальных токенов и обрабатывалось минутами.- Gemma 4 и Qwen3.6 лимит ломает, поэтому им фото заранее уменьшены до 1024 px по большей стороне (
resize_data.py→datasets/vlm1024), а лимита нет; Gemma — с--swa-full, Gemma 26B —-c 12288; обе и Qwen3.6 — без кэша промпта. - Qwen3.6 и Gemma 26B — с визуальным энкодером на CPU (
EXTRA_FLAGS=--no-mmproj-offload) и свежим сервером каждые 6 запросов (CHUNK=6вrun_vlm.sh,final3.sh); только CVQA (первые 60) и описания.
- Gemma 4 и Qwen3.6 лимит ломает, поэтому им фото заранее уменьшены до 1024 px по большей стороне (
- Ответы: на вопросы с вариантами ответ ограничен грамматикой до одной буквы, на ChartQA короткий свободный ответ, описания свободные.
temperature 0. - Описания оценены вручную: Claude смотрел фото и ставил 1–5.
- Воспроизведение:
- на NAS:
run_vlm.sh <модель>,chain.sh; - клиент
vlm_client.py, оценкаscore_vlm.py; - сырые ответы лежат в
raw/, оценки описаний — вraw/caption_ratings.json, таблицы генерируетpython3 make_report.py.
- на NAS:
Понимание изображений
CVQA ru — 200 вопросов на русском о русской культуре по фото (4 варианта, случайный ответ = 25%); MMStar — 100 вопросов на визуальные рассуждения (англ.); ChartQA — 100 вопросов по графикам (англ., число в пределах 5%). Ответ буквой ограничен грамматикой. «Фото, с» — медиана на вопрос CVQA (фото уменьшены до ≤1024 визуальных токенов); «описание, с» — медиана на описание фото. RAM — пик за прогон. * — визуальный энкодер на CPU (--no-mmproj-offload), свежий сервер каждые 6 запросов, CVQA — только первые 60 вопросов, MMStar и ChartQA не мерили (см. «Коротко»); честное сравнение на тех же 60 вопросах — в таблице ниже.
| Модель | Формат | CVQA ru, % | MMStar, % | ChartQA, % | Описания, балл | Фото, с | Описание, с | RAM, GiB |
|---|---|---|---|---|---|---|---|---|
| Qwen3-VL-2B | Q8_0 | 61.5 | 53 | 66 | 3.65 | 13.3 | 7.6 | 7.8 |
| Qwen3-VL-4B | Q4_K_M | 71.0 | 58 | 68 | 4.55 | 18.2 | 12.2 | 10.3 |
| Qwen3-VL-8B | Q4_K_M | 77.5 | 60 | 67 | 4.45 | 32.2 | 18.6 | 11.5 |
| Qwen3.5-4B + mmproj | Q4_K_M | 70.5 | 55 | 70 | 4.35 | 22.8 | 13.9 | 6.8 |
| Gemma 4 E4B | Q8_0 | 61.5 | 43 | 56 | 4.25 | 8.8 | 11.6 | 12.5 |
| Qwen3.6-35B-A3B + mmproj * | IQ4_XS, MoE | 73.3 | — | — | 4.60 | 51.8 | 28.1 | 20.0 |
| Gemma 4 26B-A4B + mmproj * | IQ4_XS, MoE | 70.0 | — | — | 4.55 | 53.3 | 26.4 | 19.8 |
CVQA ru: первые 60 вопросов, все модели
Тот же набор вопросов для всех, включая Qwen3.6 и Gemma 26B с визуальным энкодером на CPU. «Вопрос, с» — медиана на эти 60 вопросов.
| Модель | Верно, % | Вопрос, с |
|---|---|---|
| Qwen3-VL-2B | 58.3 | 13.4 |
| Qwen3-VL-4B | 65.0 | 18.3 |
| Qwen3-VL-8B | 70.0 | 32.3 |
| Qwen3.5-4B + mmproj | 61.7 | 22.8 |
| Gemma 4 E4B | 51.7 | 8.4 |
| Qwen3.6-35B-A3B + mmproj * | 73.3 | 51.8 |
| Gemma 4 26B-A4B + mmproj * | 70.0 | 53.3 |
CVQA ru по категориям, %
Число вопросов: 62 / 37 / 32 / 22 / 19 / 10.
| Модель | традиции, искусство | известные люди | места, здания | еда | предметы, одежда | бренды |
|---|---|---|---|---|---|---|
| Qwen3-VL-2B | 71 | 23 | 69 | 84 | 63 | 80 |
| Qwen3-VL-4B | 78 | 38 | 81 | 92 | 68 | 80 |
| Qwen3-VL-8B | 85 | 62 | 78 | 88 | 74 | 80 |
| Qwen3.5-4B + mmproj | 77 | 44 | 84 | 88 | 74 | 70 |
| Gemma 4 E4B | 63 | 41 | 66 | 84 | 63 | 70 |
| Qwen3.6-35B-A3B + mmproj * | 76 | 60 | 83 | 67 | 86 | 75 |
| Gemma 4 26B-A4B + mmproj * | 76 | 53 | 83 | 67 | 100 | 50 |
Описания фото: что заметно
20 фото Crossmodal-3600, промпт «опиши в 2–3 предложениях по-русски, только то, что точно видно». Оценка 1–5 вручную по фото: точность, полнота, грамотность русского; выдумки снижают балл сильнее пропусков.
- Qwen3-VL-2B (3.65): зацикливается на перечислении («кусочки копченого мяса» ×10); доберман «похож на дельфина»; белый медведь назван «белой пантерой»; конопля названа «пшеницей»; путается в курах и петухе.
- Qwen3-VL-4B (4.55): читает номер машины (YLV 581W) и надписи; мелкие выдумки: «открытая дверь», «несколько петухов»; ошибка рода: «молодая растение».
- Qwen3-VL-8B (4.45): самые точные детали, но выдумки в мелочах: помидор принят за «крабовые палочки», «ярко-синий клюв», «тёмная миска» вместо жёлтой; модель машины «Aston Martin DB6» (на фото V8 Volante).
- Qwen3.5-4B + mmproj (4.35): самые подробные описания (люди на заднем плане, фон); тукан назван «попугаем», «открытый капот» у машины с закрытым; ошибки рода: «комнатная растение», «высокий … башня», «цепную ошейник».
- Gemma 4 E4B (4.25): грамотный русский без ошибок рода, читает надписи (Milka, арабский текст на палатке); осторожна в формулировках: «похожая на тукана», «напоминающей листья конопли»; беднее деталями: не называет породу собаки и пол рыбачки, петуха называет курицей; рыночная улица принята за «интерьер помещения», мост с людьми пропущен.
- **Qwen3.6-35B-A3B + mmproj *** (4.60): самые подробные и точные описания: читает надписи («sentosa», «Civic Coalition of Revolutionary Youth», «Unser Spar-Tipp»), узнаёт гаяла, замечает водяной знак; изредка дорисовывает: люди на тропе в долине, озеро у подножия гор, жёлтый клюв у тукана; петуха называет курицей; ошибка рода «искусственный корова … стоящая».
- **Gemma 4 26B-A4B + mmproj *** (4.55): коротко, точно и почти без выдумок; тоже читает надписи (sentosa, Civic Coalition…, Milka); беднее деталями: не называет породу собаки и модель машины, пропускает мост с людьми; петуха называет курицей.
Выводы и рекомендации
- Для домашних задач (описать фото, ответить на вопрос по снимку с камеры, прочитать график) хватает Qwen3.5-4B или Qwen3-VL-4B: ~20 с на фото на iGPU. Qwen3-VL-8B точнее на известных людях и местах, но вдвое медленнее.
- Для Immich VLM-описания не нужны: поиск по фото уже работает через SigLIP2 (фаза 1). VLM пригодится для подписей и вопросов к конкретному снимку, не для индексации всей библиотеки. 50 тысяч фото по 15–20 с — это 10+ суток работы iGPU.
- Генерация — узкое место. Описание в 2–3 предложения занимает 8–19 с, из них больше половины — разбор картинки и промпта. Большие фото надо уменьшать: лимит визуальных токенов здесь обязателен.
Ограничения
- Выборки небольшие: 200, 100 и 100 вопросов. Разница меньше ~5–7 п.п. между моделями в пределах шума.
- Описания оценивал один человек (я) на 20 фото, балл субъективен. Видно разве что, у кого выдумки грубые (2B), а у кого мелкие.
- MMStar и ChartQA на английском. Русский проверяется только CVQA и описаниями.