TL;DR
Когда вы просите ChatGPT или Claude разобрать схему, диаграмму или чертёж по картинке, модель часто придумывает связи между элементами, которые просто нарисованы рядом, и пропускает реальные связи между элементами, которые находятся далеко друг от друга — даже если на картинке чётко видна соединяющая линия. Модель смотрит не на линии, а на расстояние.
Исследователи прогнали через модели 2960 диаграмм баз данных (ER-диаграммы — это схемы "какие объекты в базе связаны с какими") и увидели: сущности модели узнают почти идеально (точность 90%+), а вот связи между ними — с ошибками в 15-25% случаев. Пример из статьи: на схеме нарисовано "Зона — Станция" (линия есть), а рядом стоит "Поезд" и "Наличие мест". Модель вместо реальной связи выдумывает "Поезд — Наличие мест", потому что это звучит логично и элементы расположены близко. То есть модель достраивает связь по смыслу слов, а не проверяет линию на картинке.
Хуже того — если названия элементов сделать бессмысленными (случайные буквы) или перепутать местами, точность рушится ещё сильнее у обычных моделей. Reasoning-модели (те, что "думают" перед ответом) держатся заметно устойчивее — у них падение точности в 2-3 раза меньше, чем у обычных.
Схема исследования
ТЕСТ 1: Обычные диаграммы → замер точности по сущностям и связям
ТЕСТ 2 (Context-Free): Заменили все подписи на случайные буквы → замер падения точности
ТЕСТ 3 (Label Permutation): Перемешали подписи между элементами → замер падения точности
ТЕСТ 4: Диаграммы с 20+ элементами → замер обрушения точности на сложности
Пример применения
⚠️ Ограничение метода: это не готовая техника с промптом-решением, а находка о слабости VLM при чтении визуальных схем. Работает для любых картинок со связями: организационные структуры, схемы процессов, mind-map, диаграммы связей проекта — не только базы данных.
Задача: Вы скинули Claude скриншот органиграммы компании (кто кому подчиняется) и просите: "Опиши структуру подчинения".
Промпт:
Посмотри на схему организационной структуры на картинке.
Не описывай структуру в целом. Вместо этого:
1. Перечисли каждую линию/связь отдельно в формате "Кто → Кому подчиняется"
2. Для каждой связи явно укажи: ты видишь линию, соединяющую эти два блока,
или делаешь вывод по расположению/названию?
3. Отдельно проверь: есть ли блоки, расположенные ДАЛЕКО друг от друга на схеме,
но соединённые линией? Не пропусти их.
4. Отдельно проверь: есть ли блоки, расположенные РЯДОМ, но между ними НЕТ линии?
Не добавляй их в список как связанные.
Результат: Модель пройдёт по схеме систематически, а не общим впечатлением. Пункт 2 заставляет её признаться, откуда взялась каждая связь — это резко снижает число выдуманных связей "по смыслу". Пункты 3-4 напрямую компенсируют найденный в исследовании bias.
Почему это работает
VLM обучены угадывать смысл изображения через комбинацию визуальных паттернов и языковых ассоциаций. Когда модель видит слова "Поезд" и "Наличие мест" рядом на картинке, у неё в "голове" уже есть сильная языковая ассоциация "поезд имеет места" — и эта ассоциация перебивает слабый визуальный сигнал от тонкой линии на схеме.
Модель хорошо умеет читать текст и узнавать объекты — отсюда высокая точность распознавания самих сущностей. Но прослеживание линии от точки А до точки Б через всю картинку — это не то, в чём VLM сильна: она не "трассирует" пиксели как графический алгоритм, она угадывает по общей картине.
Явная просьба "укажи, видишь ли ты линию или делаешь вывод" заставляет модель разделить эти два источника информации вместо того, чтобы смешивать их в один быстрый ответ.
Рычаги управления: - Просьба перечислить связи по одной, а не общим текстом → меньше галлюцинаций - Просьба указать источник вывода (линия vs логика) → модель сама себя проверяет - Reasoning-режим (расширенное мышление в Claude/ChatGPT) → в 2-3 раза устойчивее к ошибкам на сложных схемах - Разбиение сложной схемы на части по 5-7 элементов → компенсирует обрушение точности при 20+ элементах на одной картинке
Ограничения
⚠️ Сложность диаграммы: на схемах с 20+ элементами точность распознавания связей у большинства моделей падает почти до нуля. Если ваша диаграмма большая — дробите её на части перед анализом.
⚠️ Незнакомые названия: если элементы на схеме названы кодами, аббревиатурами или на незнакомом языке — точность распознавания связей резко падает, потому что модель теряет "смысловую подсказку", на которую обычно опирается.
⚠️ Иерархии наследования: для схем типа "родитель-потомок" (например, категория → подкатегория) без явных текстовых подсказок точность падает драматически (у некоторых моделей с 96% до 12%).
Как исследовали
Команда собрала почти 3000 диаграмм баз данных — из учебников, реальных систем (Spider, Sakila, Chinook и другие) и сгенерированных синтетически, — и для каждой создала эталонный машиночитаемый JSON-файл со всеми элементами и связями. Модели просили превратить картинку в такой же JSON, а потом сверяли результат по элементам: сущности, связи, атрибуты, ключи.
Самое интересное — эксперимент с "порчей" подписей. Исследователи заменили все названия на случайные буквы (чтобы убрать смысловые подсказки) и отдельно перемешали подписи местами (чтобы сломать соответствие роли и названия). В обоих случаях точность рухнула у всех моделей, но у reasoning-моделей — заметно меньше. Это подтвердило гипотезу: обычные модели угадывают структуру диаграммы по знакомым словам, а не по реальным линиям и расположению.
Отдельно проверили карту внимания модели (куда она "смотрит" при ответе на вопрос про конкретную связь) — и увидели, что модель физически не обращает внимание на нужную линию и сущность, подтверждая, что проблема не в семантике, а в визуальном прослеживании связей.
