TL;DR
InstaBind-Lite — это тест, который показывает: когда на фото несколько одинаковых объектов (машины, люди, чашки), нейросеть путает, какой из них какого цвета. Модель правильно видит, что на картинке есть красная машина и синяя машина — но когда её спрашивают про конкретную машину, она может назвать цвет соседней.
Главная находка: обычные проверки на точность ответа не видят эту ошибку отдельно от других. Модель говорит "синяя" вместо "красная" — и это просто засчитывается как неправильный ответ, наравне с полной выдумкой. Но на самом деле происходит конкретная вещь: атрибут украден у соседнего объекта. Исследователи выяснили, что в 80% случаев путаницы модель берёт цвет именно у ближайшего соседа — не у случайного объекта на фото, а у того, что стоит рядом в ряду.
Метод решения — не позволять модели отвечать "напрямую", а заставить её сначала явно перечислить все объекты слева направо с их атрибутами, и только потом отвечать на вопрос. Это снижает путаницу у части моделей, хотя не у всех.
Схема метода
БЕЗ метода (напрямую):
Вопрос: "Какого цвета третья машина слева?" → Ответ (может быть цвет соседней машины)
С методом (instance-first prompting):
ШАГ 1: "Перечисли все объекты слева направо с их атрибутами" → список: 1-красная, 2-синяя, 3-зелёная...
ШАГ 2: "Теперь ответь на вопрос" → Ответ (опираясь на явный список выше)
Оба шага можно сделать в одном промпте — просят модель сначала составить список, потом ответить.
Пример применения
Задача: Вы загрузили в Claude/ChatGPT фото витрины интернет-магазина с пятью похожими товарами (например, кроссовки разных цветов на полке) и спрашиваете: "Какого цвета третий кроссовок слева?" Модель может ответить неправильно — и не потому что не видит кроссовки, а потому что перепутает их между собой.
Промпт:
Посмотри на фото. Сначала перечисли все [кроссовки/машины/товары] на изображении
слева направо, указав для каждого его отличительный цвет или признак.
Пронумеруй их.
После этого ответь на вопрос: [какого цвета третий кроссовок слева?]
Отвечай строго по своему списку выше, не меняй атрибуты между пунктами списка и ответом.
Результат: Модель сначала выдаст пронумерованный список объектов с атрибутами (1. красный, 2. белый, 3. чёрный...), а затем ответит на конкретный вопрос, опираясь на этот список. Это снижает вероятность того, что она "перепрыгнет" на соседний объект при ответе — потому что список уже зафиксировал, что где находится.
Почему это работает
Слабость LLM здесь в том, что при виде нескольких похожих объектов подряд модель держит в голове не точную привязку "объект-атрибут", а что-то более расплывчатое — общее ощущение "тут были красный, синий, зелёный", без жёсткой привязки к позиции. Когда нужно ответить про конкретный объект, модель как бы "тянет" атрибут не от того элемента.
Сильная сторона LLM — она хорошо генерирует текст по явному, разложенному по шагам паттерну. Если попросить сначала явно зафиксировать список "кто где и какой", модель создаёт себе текстовую опору, к которой потом обращается при ответе — вместо того, чтобы заново "вспоминать" картинку и путать соседей.
Рычаг управления: можно менять порядок — попросить перечислять не слева направо, а по другому признаку (сверху вниз, по размеру). Также можно попросить модель после списка сверить финальный ответ со списком явной фразой "проверь, совпадает ли твой ответ с пунктом списка №X" — это добавляет второй уровень самопроверки.
Шаблон промпта
Посмотри на изображение. На нём несколько похожих {объектов}
(одного класса, но разных по {признаку: цвету/размеру/деталям}).
Шаг 1. Перечисли все {объекты} по порядку {слева направо / сверху вниз},
пронумеруй их и укажи отличительный признак каждого.
Шаг 2. Ответь на вопрос: {вопрос про конкретный объект}.
Важно: в ответе используй только тот признак, который ты указал
в списке для этого номера. Не путай его с соседними пунктами списка.
🚀 Быстрый старт — вставь в чат:
Вот шаблон для точного распознавания атрибутов похожих объектов на фото.
Адаптируй под мою задачу: [опиши свою картинку и вопрос].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какие объекты на фото, по какому признаку их различать и в каком порядке считать — потому что без этой разбивки модель снова рискует "перепрыгнуть" атрибут с одного объекта на другой.
Ограничения
⚠️ Не универсальное решение: метод помог трём из пяти открытых моделей, но у некоторых (например, LLaVA-1.5 в отдельных сценариях) точность просела сильно, а путаница выросла. Перед тем как доверять этой технике — проверьте на своей задаче, не наоборот ли эффект.
⚠️ Коммерческие модели (условно GPT/Gemini/Claude) реагируют иначе: у API-моделей в исследовании обрезка изображения на нужный объект иногда УВЕЛИЧИВАЛА путаницу вместо уменьшения. Значит, "явный список + вопрос" — не гарантированное лекарство, это стоит проверять эмпирически на конкретной модели.
⚠️ Работает лучше на явно разных цветах: если объекты отличаются тонкими деталями (не цвет, а форма/текстура), эффективность метода не проверена — исследование сфокусировано на цветах и цвете одежды.
Как исследовали
Исследователи собрали 524 фотографии, где на каждой — 3-6 одинаковых объектов (машины, люди, чашки и т.д.) в чёткой пространственной последовательности с разными цветами. На основе этого сделали 9580 вопросов четырёх типов: "какого цвета третий слева", "где находится синий", "какого цвета сосед красного" и "верно ли, что средний — зелёный".
Проверили семь моделей — пять открытых и две коммерческие (условно как GPT/Gemini). Ключевая метка эксперимента — не просто "правильно/неправильно", а специальная разметка: откуда именно взялся неправильный атрибут — придуман с нуля или скопирован у соседнего объекта.
Оказалось, что у открытых моделей до 34% всех ответов — это скопированный атрибут у соседа, а у коммерческих моделей — заметно меньше, около 6-9%, но в 80% случаев путаницы источник ошибки — именно соседний объект, а не случайный. Это статистически подтверждено бутстрэп-тестом на 1000 пересборках, так что закономерность не случайна.
Также проверили: если "обрезать" фото до нужного объекта (убрать соседей из виду) — некоторым моделям это сильно помогает (точность выросла на 20 пунктов у одной из моделей), а некоторым — вредит. И приём "сначала перечисли всех, потом отвечай" сработал только для части моделей.
