Разработка VLM-систем для анализа изображений и текста

Изображения и документы копятся быстрее, чем люди успевают их просматривать, а ошибки ручного контроля дорого обходятся. Мы разрабатываем VLM-системы под ключ: модель учится на ваших примерах и берёт на себя распознавание и разбор изображений вместе с текстом. Пилот на одном участке показывает измеримый эффект до масштабирования на всю линию.
Часто задаваемые вопросы

VLM разработка: где узкое место в анализе изображений

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

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

Когда выборочная проверка превращается в обязательный этап, теряется весь смысл автоматизации: время обработки одного документа увеличивается, а очередь накапливается быстрее, чем её успевают разбирать. При этом настоящие дефекты — перекрытый текст, низкий контраст, нестандартная вёрстка — проходят незамеченными, потому что внимание проверяющего занято ложными.

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

Что даёт VLM разработка: измеримый эффект

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

Дообучение модели даёт основной прирост там, где общая модель ошибается на вашем материале: нестандартные бланки, рукописные поля, отраслевая терминология. Мы собираем разметку из уже накопленных данных, дообучаем на ней и проверяем на отложенной части выборки — точность распознавания обычно поднимается с 80–85% до 93–97%, причём на редких классах заметнее, чем на частых. Каждое дообучение проходит сравнение с предыдущей версией, чтобы не потерять уже достигнутое.

Быстрее всего эффект проявляется в ручной проверке. Когда система отправляет человеку только спорные случаи — низкая уверенность модели, конфликт между полями, нечитаемый фрагмент, — доля ручной проверки падает с полного потока до 5–15%. Освободившееся время уходит на сложные обращения вместо перепечатывания типовых.

Отдельный результат — устранённый класс отказов. Раньше один незнакомый формат ломал разбор всей пачки; теперь он изолирован: документ помечается и уходит в очередь на разбор, остальные обрабатываются дальше. Время обработки одного документа измеряется единицами секунд вместо минут ручной работы, потому что распознавание, извлечение полей и проверки идут одним проходом.

В проектах мы опираемся на открытые мультимодальные модели вроде Qwen-VL, дообучая их на данных заказчика. Это снимает привязку к одному поставщику: систему можно развернуть в вашем контуре и менять модель без переписывания логики.

Сравнение режимов работы: облако, локальный контур, гибрид

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

Ниже — сравнение по трём осям: где обрабатываются данные, какую нагрузку выдерживает схема и сколько внимания требует сопровождение. Ограничения указаны честно — у каждого режима есть сценарии, в которых он проигрывает двум другим.

Режим Когда подходит Ограничения
Облачный контур Неравномерный поток с пиками; быстрый старт без закупки оборудования Данные покидают периметр; задержка зависит от канала
Локальный контур Данные нельзя выносить за периметр; предсказуемая нагрузка; работа без внешней сети Обновление весов и обслуживание оборудования — на вашей стороне; потолок производительности задан железом
Гибридная схема Чувствительные данные обрабатываются на месте, тяжёлые задачи уходят наружу Два контура: синхронизация моделей и маршрутизация запросов требуют регламента

На практике граница проходит по данным, а не по удобству. Если во входном потоке есть лица, документы или кадры производственной линии, локальный контур закрывает вопрос конфиденциальности сразу. Гибридная схема выигрывает, когда предобработка и вырезание чувствительных зон идут на месте, а распознавание сцен и разбор текста — там, где проще нарастить мощность.

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

Как мы ведём внедрение: этапы инженерной работы

Внедрение VLM-системы начинается не с выбора модели, а с разбора того, какие данные уже есть у заказчика и что считается верным ответом. На этом шаге фиксируем входные форматы, объём потока и метрику качества — без неё результат пилота невозможно ни принять, ни оспорить. Дальше идёт последовательность этапов, где каждый опирается на предыдущий.

  1. Аудит данных. Смотрим, что реально лежит в хранилищах и на почте: сканы, фотографии, выгрузки из учётных систем. Проверяем разрешение, дубликаты, битые файлы и долю примеров, где ответ неоднозначен даже для человека.
  2. Схема решения и критерии приёмки. Определяем, как система встраивается — пакетно по расписанию или в режиме реального времени, — и договариваемся, какая доля верных ответов считается успехом, а какой уровень ложных срабатываний допустим.
  3. Разметка данных. Пишем правила разметки, размечаем контрольный набор и обязательно откладываем часть примеров, которые модель не увидит до приёмки.
  4. Пилотный запуск. Поднимаем систему на ограниченном потоке и сравниваем её результат с текущим ручным процессом на одних и тех же файлах — так виден реальный выигрыш, а не лабораторный.
  5. Валидация модели. Разбираем ошибки по типам, доучиваем на спорных случаях, проверяем устойчивость к плохим сканам и нестандартным ракурсам.
  6. Передача решения. Отдаём документацию, инструкции для операторов и настроенный мониторинг, чтобы команда заказчика сопровождала систему без нас.

Каждый этап заканчивается артефактом: правилами разметки, отчётом о качестве, схемой интеграции — по ним видно, где мы находимся и что осталось сделать.

Что передаём на руки: конфигурации, схемы, регламенты

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

  • Рабочие конфигурации обучения и вывода: параметры прогонов, версии данных, воспроизводимые условия обучения и скрипты запуска — прогон повторяется и даёт сопоставимое качество.
  • Регламент разметки: инструкция для аннотаторов с правилами спорных случаев, метрика согласованности между разметчиками и порядок пересмотра примеров, по которым мнения разошлись.
  • Схема интеграции: потоки данных от источника до ответа модели, точки подключения через программные интерфейсы и очереди сообщений, контракты запросов и ответов, ограничения по времени отклика.
  • Политики доступа: роли и права на изменение конфигураций, чтение журналов и выгрузку данных, разграничение сред, порядок хранения учётных данных и ключей.
  • Документация решения: карта компонентов и зависимостей, инструкции по развёртыванию и обновлению, перечень использованных наборов данных с их версиями.
  • Мониторинг качества: панель метрик — доля отказов, распределение ответов, уверенность модели на живом потоке, — правила оповещений и порядок действий при деградации.
  • Регламент сопровождения: как дообучать модель на новых данных, сколько примеров для этого нужно и как откатиться на предыдущую версию, если качество просело.
  • Журнал решений: почему выбраны такие пороги и архитектура, какие гипотезы проверяли и что не сработало — следующий инженер не проходит этот путь заново.

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

Кейс: контроль дефектов на производственной линии

На линии гибкой упаковки «ТехноПолимер» дефекты ловили трое контролёров на выходе: микроразрывы, разнотон печати, смещение фальца. Выборочный контроль раз в двадцать рулонов давал 6–8% пропущенных дефектов — они всплывали уже у заказчика, а не в цехе. Спорные кадры разбирали вручную: 3–4 минуты на кадр, до трети отснятого материала уходило на перепроверку, и смена заканчивалась отчётом, который никто не успевал читать.

Поставили камеры на выходе каждой линии и модуль VLM-анализа: модель одновременно смотрит на снимок и на текстовый регламент, поэтому новый тип дефекта описывается словами, а не переразметкой тысяч кадров. Правила эскалации задали по классам — при пограничной уверенности снимок уходит оператору, остальное падает в отчёт смены с привязкой к рулону и метражу.

Доля пропущенных дефектов снизилась до 0,5%, разбор спорного случая занимает около 20 секунд вместо 3–4 минут. Контроль качества перестал быть выборочным: покрытие сплошное, при этом на смену приходится 60–80 обращений к оператору вместо ручного просмотра всего потока. Нагрузку перераспределили — трое контролёров на линию заменены одним, который занимается разбором эскалаций и дообучением классов. Новый класс брака вводится за день: текстовое описание, десяток примеров, проверка на архиве отснятого материала.

Чем дообучение отличается от подсказки примером?

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

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

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

Выбор метода — это замер, а не спор о вкусах. Собираем 30-50 размеченных примеров, проверяем подсказку примером на отложенной части и смотрим долю верных ответов по редким классам. Если качество упирается в потолок — обучаем адаптер и сравниваем те же метрики на том же наборе.

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

Технические сомнения: разбираем по пунктам

Инженерные команды заказчика задают похожие вопросы до старта: хватит ли данных, куда уедут изображения, уживётся ли решение с уже развёрнутым контуром и кто отвечает за качество после запуска. Ниже — короткие ответы без маркетинга.

Что будет с редкими классами, если их мало в разметке?

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

Можно ли не отдавать данные за пределы контура?

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

У нас уже развёрнут контур — придётся всё переделывать?

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

Как понять, что решение готово к внедрению?

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

Что происходит после запуска?

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

Обсудим задачу: с чего начинается работа

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

Что помогает быстро выйти на оценку:

  • 20–30 реальных примеров входных данных — по ним видно разнообразие сценариев, а не идеализированную картину.
  • Формулировка целевого результата: что считается верным ответом, а что — ошибкой.
  • Точки стыковки: откуда приходят данные и куда уходит результат.
  • Кто со стороны заказчика решает спорные случаи и утверждает приёмку.
  • Ограничения по конфиденциальности и правила хранения данных.
  • Ожидаемая нагрузка: сколько обращений и насколько быстро нужен ответ.
  • Критерий готовности, по которому вы будете судить о результате.

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

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139