Перейти к содержанию
Публикация AiManual

PaliGemma 2: как запустить и дообучить новые VLM от Google

Разбираем PaliGemma 2 от Google: модели 3B, 10B и 28B, разрешения 224, 448 и 896 px, локальный запуск через transformers, квантизацию 4/8 бит и дообучение LoRA

Коротко

Что будет в материале

  1. 01

    Что такое PaliGemma 2 и кому она пригодится

  2. 02

    PaliGemma 2 3B, 10B и 28B: как выбрать размер модели и разрешение

  3. 03

    PaliGemma 2 запуск через transformers: базовый пайплайн

  4. 04

    Квантизация PaliGemma 2 в 4 и 8 бит: экономия памяти и риск для accuracy

PaliGemma 2 - семейство vision-language моделей Google, которое связывает изображение и текстовую инструкцию. Модели доступны в вариантах 3B, 10B и 28B, работают с разрешениями 224x224, 448x448 и 896x896, а в качестве языкового декодера используют Gemma 2.

PaliGemma 2 можно запускать локально через библиотеку transformers и адаптировать под прикладную задачу. Выбор конфигурации зависит от требуемого качества, детализации изображения и доступной памяти. Для первого эксперимента разумно взять меньшую модель и разрешение 224x224, проверить весь пайплайн, затем сравнить более крупные варианты и режимы квантизации.

В этой статье разберём запуск модели, передачу изображения и запроса, квантизацию в 4 и 8 бит, а также дообучение на задачах генерации описаний и visual question answering. Точные цифры потребления VRAM и потери accuracy после квантизации зависят от конфигурации и исходных данных, поэтому универсальные значения приводить нельзя.

Что такое PaliGemma 2 и кому она пригодится

PaliGemma 2 принимает визуальный и текстовый вход, после чего генерирует текстовый ответ. В простом сценарии пользователь передаёт фотографию и вопрос: «Что находится на столе?». Модель анализирует изображение и формирует ответ в текстовом виде.

Такой формат подходит для описания изображений, ответов на вопросы, классификации через текстовые метки, извлечения признаков из документов и создания специализированных помощников для работы с визуальными данными. Конкретный результат зависит от формулировки запроса, качества картинки, разрешения и соответствия модели целевой задаче.

Какие задачи решает vision-language модель

VLM объединяет компьютерное зрение и языковую генерацию. На вход поступает пара «изображение + текстовый запрос», а на выходе появляется текст. Запрос может просить описать сцену, найти объект, ответить на вопрос или выдать результат в заданном формате.

Для генерации описаний подходят наборы данных, где каждому изображению соответствует текстовая подпись. DOCCI можно использовать как пример такого формата: изображение связано с подробным описанием, а модель учится воспроизводить нужный уровень детализации и стиль.

VQAv2 представляет другой сценарий. В нём есть изображение, вопрос и ответ на него. Такой датасет подходит для обучения модели отвечать на визуальные вопросы, например определять количество объектов, цвет предмета или действие человека.

Предобученный чекпойнт полезен для быстрого прототипирования. Дообучение требуется, когда в задаче появляются собственная терминология, фиксированный формат ответа, специфические объекты или изображения из узкого домена.

PaliGemma 2 vs PaliGemma: ключевые изменения

По подтверждённым характеристикам PaliGemma 2 получила три размера: 3B, 10B и 28B. Это даёт больше вариантов для локального запуска и сравнения качества с доступными ресурсами.

Вторая заметная характеристика - поддержка трёх разрешений входного изображения: 224x224, 448x448 и 896x896. Высокое разрешение позволяет сохранить больше мелких деталей, однако увеличивает вычислительную нагрузку и потребление памяти.

В PaliGemma 2 языковым декодером выступает Gemma 2. Архитектурная связка остаётся мультимодальной: визуальный компонент обрабатывает изображение, а языковая часть преобразует визуальную информацию и текстовую инструкцию в ответ.

Эти сведения описывают состав линейки и её конфигурации. Они сами по себе не доказывают превосходство PaliGemma 2 над первой версией во всех задачах. Для решения о переходе нужны одинаковые датасеты, промпты, разрешение, режим точности и единая методика оценки.

PaliGemma 2 3B, 10B и 28B: как выбрать размер модели и разрешение

При выборе конфигурации нужно разделять два параметра. Размер модели влияет на количество параметров языковой части, скорость и требования к памяти. Разрешение определяет, сколько визуальных деталей попадёт в обработку.

Крупный чекпойнт не гарантирует лучшего результата на любой задаче. Если изображения простые, а ответ должен быть коротким, увеличение модели может дать меньше пользы, чем аккуратная разметка и корректный промпт.

Когда достаточно 224x224, а когда нужны 448x448 и 896x896

Разрешение 224x224 подходит для общих сцен, крупных объектов и первичной проверки пайплайна. Оно снижает вычислительную нагрузку и помогает быстрее найти ошибки в загрузке модели, обработке изображения или декодировании ответа.

448x448 имеет смысл проверять, когда на изображении есть несколько объектов, небольшие элементы интерфейса или детали, которые теряются при уменьшении. 896x896 стоит рассматривать для сцен с мелким текстом, сложной структурой и небольшими объектами, если качество на целевых данных действительно растёт.

Высокое разрешение не исправляет плохую фотографию, неверную разметку или неоднозначный вопрос. Сравнивать режимы нужно на одном наборе изображений. Для каждого режима фиксируют промпт, формат ответа и критерий качества.

Как выбрать модель для первого локального запуска

Начните с PaliGemma 2 3B и разрешения 224x224, если задача состоит в проверке работоспособности локального окружения. Такой запуск позволит проверить зависимости, доступ к весам, обработку изображения и генерацию ответа без преждевременного расхода ресурсов.

После этого можно сравнить 10B и 28B либо поднять разрешение до 448x448. Изменяйте один параметр за раз, иначе будет трудно понять, что именно повлияло на качество и скорость.

Успешная загрузка модели подтверждает, что пайплайн запускается. Она не подтверждает пригодность модели для рабочего процесса. Для проверки подготовьте обычные, сложные и пограничные изображения из целевого домена.

PaliGemma 2 запуск через transformers: базовый пайплайн

Что подготовить перед загрузкой модели

Для запуска потребуется Python, PyTorch и библиотека transformers. Если модель будет работать на GPU, нужна версия PyTorch с поддержкой используемого ускорителя. Для чтения изображений пригодится Pillow, а для 4- и 8-битной загрузки потребуется совместимый стек квантизации.

Перед установкой проверьте совместимость версий по документации конкретного чекпойнта. У мультимодальных моделей важны не только веса, но и processor, который готовит изображение и текст в нужном формате.

Проверьте свободное место на диске. Для вариантов 3B, 10B и 28B объём файлов различается, а кэш библиотек может хранить несколько копий или вариантов весов.

Как передать изображение и запрос модели

Ниже приведён каркас запуска. В переменную MODEL_ID нужно подставить идентификатор выбранного чекпойнта из его карточки. Название конкретной версии нельзя угадывать: оно должно соответствовать опубликованным весам и требованиям processor.

import torch
from PIL import Image
from transformers import AutoProcessor, PaliGemmaForConditionalGeneration

MODEL_ID = "идентификатор-чекпойнта"
image = Image.open("image.jpg").convert("RGB")
prompt = "describe the image in one concise sentence"

processor = AutoProcessor.from_pretrained(MODEL_ID)
model = PaliGemmaForConditionalGeneration.from_pretrained(
    MODEL_ID,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

inputs = processor(
    text=prompt,
    images=image,
    return_tensors="pt",
)
inputs = {key: value.to(model.device) for key, value in inputs.items()}

with torch.inference_mode():
    output = model.generate(**inputs, max_new_tokens=100)

answer = processor.decode(output[0], skip_special_tokens=True)
print(answer)

Для visual question answering промпт формулируют как вопрос, например What color is the car?. Для описания изображения нужна инструкция на генерацию caption. Формат запроса зависит от версии и карточки чекпойнта, поэтому перед запуском проверьте ожидаемые специальные токены и шаблон.

Параметр max_new_tokens ограничивает длину ответа. Слишком маленькое значение обрежет описание, а слишком большое увеличит задержку и может привести к лишнему тексту. Настройку нужно связывать с форматом целевого ответа.

Как проверить, что результат пригоден для задачи

Соберите небольшой набор изображений из будущего рабочего сценария. Включите типичные примеры, сложные случаи и изображения с ошибками качества. Для каждого запроса заранее определите допустимый формат ответа.

Ручная проверка помогает быстро найти пропуски объектов, выдуманные детали, неверные цвета и нарушения формата. Для размеченных задач добавьте автоматическую метрику. В VQA можно использовать accuracy, если ответы нормализованы и выбранная методика допускает такое сравнение.

Для генерации описаний одной accuracy обычно недостаточно. Проверьте релевантность описания, наличие ключевых объектов, фактические ошибки и соответствие требуемой длине. Один удачный ответ не заменяет отложенную выборку.

Для сравнения конфигураций фиксируйте модель, разрешение, промпт, параметры генерации и набор изображений. Иначе результат будет зависеть сразу от нескольких переменных.

Квантизация PaliGemma 2 в 4 и 8 бит: экономия памяти и риск для accuracy

Квантизация переводит веса модели в более компактное представление. Режимы 8 и 4 бит снижают требования к памяти, но не отменяют вычислительные требования и не гарантируют сохранение исходного качества.

Когда выбирать 8 бит, а когда 4 бита

8-битный режим можно использовать, когда обычная загрузка не помещается в доступную память, но нужен более осторожный компромисс между размером весов и качеством. 4-битный режим сильнее сокращает объём представления и может открыть запуск более крупной конфигурации на том же оборудовании.

Нельзя заранее утверждать, что 8 бит всегда точнее 4 бит. Разница зависит от модели, задачи, изображений, типа вычислений и библиотеки. Сначала определите допустимую accuracy, затем сравните режимы на собственных данных.

Как включить квантизацию

Пример загрузки через конфигурацию BitsAndBytes:

import torch
from transformers import BitsAndBytesConfig, PaliGemmaForConditionalGeneration

quantization_config = BitsAndBytesConfig(
    load_in_8bit=True,
)

model = PaliGemmaForConditionalGeneration.from_pretrained(
    MODEL_ID,
    quantization_config=quantization_config,
    device_map="auto",
)

Для 4-битного режима меняют конфигурацию на параметры 4-битной загрузки:

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_compute_dtype=torch.bfloat16,
)

Доступность конкретного режима зависит от аппаратной платформы, версии PyTorch, transformers и пакета bitsandbytes. Если загрузка завершается ошибкой, сначала проверьте совместимость окружения и требования выбранного чекпойнта.

Как сравнивать качество после квантизации

Подготовьте три одинаковых прогона: исходный режим, 8 бит и 4 бита. Используйте одну модель, один processor, одинаковые промпты, одинаковые изображения и одинаковые параметры генерации.

Для VQAv2 или собственного VQA-набора сопоставьте accuracy. Сохраните ответы каждой конфигурации, чтобы анализировать не только среднее значение, но и типы ошибок. Исходные материалы не содержат конкретных цифр потери accuracy для PaliGemma 2, поэтому публиковать универсальные значения нельзя.

Для captioning оцените полноту описания, фактическую точность и соблюдение формата. Квантизация может сохранить приемлемый результат на простых сценах и сильнее повлиять на изображения с мелкими деталями. Этот эффект измеряют на целевых данных.

Подробный разбор принципов сравнения квантованных моделей можно сопоставить с материалом о сравнении QAT и стандартной квантизации, но результаты для Gemma 4 нельзя переносить на PaliGemma 2 без отдельной проверки.

Нужна ли PaliGemma 2 дообучение: готовая модель, DOCCI и VQAv2

Предобученный чекпойнт стоит сначала проверить на реальных примерах. Если модель уже отвечает в нужной терминологии и формате, обучение добавит расходы без гарантии улучшения.

Дообучение оправдано, когда базовая модель систематически ошибается в специализированных объектах, не соблюдает структуру ответа или плохо работает с изображениями конкретного типа. Качество результата определяется данными и постановкой задачи, а не самим фактом обучения.

DOCCI: пример дообучения для описаний изображений

Для captioning обучающие записи связывают изображение с описанием. Важны длина текста, степень детализации, стиль и набор объектов, которые нужно упоминать.

Если задача связана с промышленными деталями, медицинскими снимками или документами, обучающие изображения должны отражать этот домен. Описания из нерелевантного набора не научат модель нужной терминологии. В датасете полезно заранее закрепить правила: какие объекты считать значимыми, какие атрибуты описывать и как оформлять ответ.

Отложенная выборка должна содержать изображения, которых модель не видела при обучении. Иначе высокая похожесть ответов на обучающие подписи создаст ложное ощущение качества.

VQAv2: пример для ответов на вопросы по изображениям

В VQA каждая запись содержит изображение, вопрос и ответ. Модель учится связывать тип вопроса с визуальным содержанием и выдавать ответ в ожидаемом формате.

Для прикладной задачи заранее определите допустимую длину ответа, варианты написания чисел, правила для синонимов и терминологию. Ответы «два», «2» и «две» могут требовать отдельной нормализации, если accuracy считается по точному совпадению.

Собственный набор данных должен повторять рабочий сценарий. Если в продукте пользователи задают короткие вопросы о серийных номерах, обучение на общих вопросах о цветах и животных не решит проблему.

Когда дообучение не решит проблему

Обучение не исправит разметку с противоречивыми ответами, слишком маленький датасет или сильный разрыв между train- и production-изображениями. Сначала проверьте базовую модель, промпт и критерий качества.

Разделите данные на обучающую, валидационную и отложенную выборки. Уберите дубликаты, проверьте изображения и убедитесь, что ответы однозначны. Если ошибки возникают из-за плохого кадрирования или низкого разрешения, смена метода обучения может не дать результата.

PaliGemma 2 дообучение: полное обучение, LoRA или QLoRA

У PaliGemma 2 есть три практических сценария адаптации: обновление всех параметров, обучение LoRA-адаптеров и QLoRA с квантизованной базовой моделью. Выбор зависит от объёма данных, доступной памяти, допустимого времени обучения и требований к качеству.

Полное дообучение: когда оправданы максимальные затраты

При полном дообучении изменяются параметры модели. Такой подход требует больше памяти и вычислений, потому что кроме весов нужно хранить градиенты и состояния оптимизатора.

Метод подходит для крупных специализированных наборов данных и задач, где адаптерам трудно выразить нужное изменение поведения. Цена ошибки здесь выше: некачественная разметка может сильнее изменить базовые способности модели, а эксперименты потребуют больше времени.

Перед стартом подготовьте контрольную выборку и базовую оценку без обучения. Иначе нельзя будет отделить пользу дообучения от случайных изменений в ответах.

LoRA: адаптация модели с меньшим числом обучаемых параметров

LoRA замораживает базовые веса и добавляет обучаемые низкоранговые адаптеры. В результате хранить и переносить нужно небольшой файл адаптации, а исходную модель можно использовать с несколькими специализированными версиями.

LoRA удобна для локальных экспериментов, когда требуется изменить стиль описаний, терминологию или структуру ответа. На качество влияют rank, learning rate, целевые модули, размер batch и качество данных.

Подбор параметров нужно оценивать по отложенной выборке. Адаптер, который хорошо работает на обучающих примерах, может запоминать формулировки и хуже обрабатывать новые изображения.

QLoRA: как уменьшить потребление памяти при дообучении

QLoRA сочетает квантизацию базовой модели с обучением LoRA-адаптеров. Базовые веса занимают меньше памяти, а обновляются дополнительные параметры адаптера.

Этот подход полезен при ограниченной VRAM, но его стабильность зависит от аппаратной платформы, библиотек, типа квантизации и настроек обучения. Сравнивайте QLoRA с LoRA на одном наборе данных и одинаковой отложенной выборке.

Для VQA основной метрикой может выступать accuracy. Для описаний нужны релевантность, фактическая точность и соблюдение формата. Снижение размера базовой модели или переход на более агрессивную квантизацию может повлиять на эти показатели, поэтому результат измеряют, а не предполагают.

Как оценить ресурсы до старта обучения

На потребление памяти влияют размер модели, разрешение изображения, длина текста, batch size, precision, способ обучения и состояния оптимизатора. Конфигурация 3B с разрешением 224x224 создаёт другую нагрузку, чем 28B с разрешением 896x896.

Точные требования к VRAM нельзя вывести по одному числу параметров. Они зависят от реализации, версии библиотек и настроек эксперимента.

  1. Начните с минимального batch size и короткого прогона.
  2. Зафиксируйте фактическое потребление памяти и время шага.
  3. Проверьте, помещается ли в память валидационный запуск и сохранение адаптера.
  4. Постепенно увеличивайте разрешение, длину ответа или размер модели.
  5. Сравните качество после каждого изменения на одной отложенной выборке.

При ограниченной памяти первым кандидатом обычно выступает LoRA, а при ещё более жёстких ограничениях - QLoRA. Эта рекомендация требует проверки на конкретном GPU и выбранной версии программного стека.

Итог: с какой конфигурации PaliGemma 2 начать

  1. Определите задачу: описание изображения, VQA, классификация или собственный формат ответа.
  2. Выберите метрику: accuracy для подходящей размеченной VQA-задачи, ручную оценку и проверку формата для генерации описаний.
  3. Начните с PaliGemma 2 3B и разрешения 224x224, если нужно проверить локальный пайплайн.
  4. Запустите модель через transformers, используя processor из карточки выбранного чекпойнта.
  5. Сравните обычную загрузку, 8-битный и 4-битный режимы на одинаковом наборе изображений.
  6. Переходите к 448x448, 896x896, 10B или 28B только после проверки, что рост качества оправдывает дополнительные ресурсы.
  7. Перед дообучением проверьте качество данных, промпт и базовый результат.
  8. При ограниченной памяти начните с LoRA или QLoRA и оценивайте адаптацию на отложенной выборке.

PaliGemma 2 подходит для построения локального VLM-пайплайна, если задача связана с конкретным форматом визуальных данных. Линейка 3B, 10B и 28B позволяет выбирать размер модели, а разрешения 224x224, 448x448 и 896x896 дают возможность подстроить обработку под детализацию изображений. Рабочую конфигурацию определяют измерения на собственных данных, а не максимальные характеристики в описании модели.

Для общего контекста по локальным моделям Google можно обратиться к статье о развитии линейки Gemma. Архитектурные и качественные выводы из неё не следует автоматически переносить на PaliGemma 2.

Подписаться на канал