3,583 papers
arXiv:2608.03691 72 4 авг. 2026 г. FREE

Pattern Completion Bias: LLM видит аномалию, считает её правильно — и всё равно врёт "как у всех"

КЛЮЧЕВАЯ СУТЬ
Обнаружено: LLM считает аномалию верно в своих рассуждениях — а в финальном ответе выбрасывает свой расчёт и врёт 'как у всех соседей'. Метод показывает, когда доверять зрению модели, а когда она соврёт под давлением паттерна — критично при разборе скриншотов с ценами, карточками, таблицами. Модель генерирует не факт, а самый вероятный текст. Если 9 из 10 карточек одинаковые — 'десятая такая же' звучит правдоподобнее правды. Топовая модель на малозаметных отличиях обваливается с 69% до 14% точности.
Адаптировать под запрос

TL;DR

Мультимодальные модели (Claude, GPT, Gemini) при разборе скриншотов с повторяющимся визуальным паттерном — например, рядом одинаковых карточек — склонны игнорировать одну аномальную карточку и достраивать её значение "как у соседей", даже если аномалия чётко видна на картинке.

Самое неприятное: модель может правильно посчитать реальное значение (например, "эта карточка на 120% шире контейнера"), написать это в своих рассуждениях — а потом выбросить свой же расчёт и выдать ответ, совпадающий с остальными карточками. Причина простая: для модели "все карточки одинаковые" — статистически более вероятный паттерн, чем "одна карточка другая", и это перевешивает то, что она реально видит на картинке.

Исследователи замаскировали одно значение (ширину или размер шрифта) в HTML-коде реального сайта и попросили модели восстановить его по скриншоту. Оказалось: чем менее заметна аномалия (мелкий шрифт вместо крупной карточки, шум на картинке, положение на краю паттерна), тем сильнее модель скатывается к "как у всех" вместо реального значения — вплоть до того, что топовая модель обваливается с 69% точности до 14%.


🔬

Схема метода (как исследовали)

ШАГ 1: Взять сайт с повторяющимся паттерном (карточки, меню, список пунктов)
ШАГ 2: Изменить ОДНО значение (ширину карточки или размер шрифта) на 80/90/110/120% от нормы
ШАГ 3: Замаскировать это значение в HTML-коде токеном "___"
ШАГ 4: Дать модели скриншот + код с маской → попросить восстановить значение
ШАГ 5: Сравнить ответ модели с (а) реальным изменённым значением, (б) "паттерн-совместимым" ответом (100%, как у всех)

Всё — один запрос на один скриншот, без диалога.


🚀

Пример применения

Задача: Вы просите Claude или ChatGPT проанализировать скриншот прайс-листа или таблицы с акциями — например, страницу с карточками товаров на маркетплейсе, где у девяти товаров скидка 20%, а у одного — 35%, потому что это специальная распродажа.

Промпт (без защиты от bias):

Вот скриншот страницы с товарами. Извлеки все скидки в виде списка.

Промпт с защитой:

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

Не предполагай, что все товары одинаковы. Проверь КАЖДЫЙ товар отдельно по его 
собственным видимым цифрам, а не по тому, что "похоже на остальные".

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

Извлеки все скидки в виде списка.

Результат: В первом случае есть риск, что модель "подровняет" аномальный товар под общий паттерн скидок — особенно если отличие тонкое (не в разы, а на глаз похожее). Во втором случае явное указание на возможное отклонение и запрет "усреднять" снижает вероятность такой ошибки, хотя не гарантирует её отсутствие полностью — исследование показывает, что даже при явном распознавании аномалии модель иногда всё равно её "исправляет".


🧠

Почему это работает

Слабость LLM в том, что она генерирует ответ по наиболее вероятному продолжению, а не по строгой проверке факта. Если 9 из 10 элементов одинаковые, "десятый такой же" — это статистически более вероятный текст, чем "десятый другой", даже когда модель технически видит и может посчитать реальное значение.

Сильная сторона модели — она умеет считать конкретные числа, если явно попросить пошагово. В примере из исследования модель верно вычислила отношение (≈118% → округлила до 120%) — расчёт был правильным. Проблема не в вычислении, а в финальном решении, что написать в ответ.

Защита работает через явное разрешение противоречить паттерну: если явно сказать модели "не подгоняй аномалию под остальных, доверяй тому, что видишь именно в этом элементе" — вероятность отказа от правильного расчёта снижается. Исследование также показало: чем больше модель "рассуждает" перед ответом (просите объяснить шаги, а не выдать сразу финальный ответ), тем ниже bias — значит, инструкция типа "подумай шаг за шагом, прежде чем дать финальный ответ" — рабочий рычаг.

Рычаги управления: - Явное указание "не все элементы одинаковы" → снижает подгонку под паттерн - Просьба объяснить рассуждение перед ответом → больше "reasoning effort" = меньше bias - Указание конкретного элемента для проверки → повышает точность на этом элементе - Запрет округления/усреднения "для похожести" → сохраняет реальное расхождение в ответе


📋

Шаблон промпта

Вот {скриншот/таблица/данные}. В них есть повторяющийся паттерн: {описание паттерна, 
например "все карточки товаров имеют одинаковую скидку 20%"}.

Возможно, один или несколько элементов отличаются от этого паттерна. Не предполагай 
заранее, что все элементы одинаковы — проверь {конкретный элемент или "каждый элемент"} 
отдельно, по его собственным характеристикам.

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

Задача: {что нужно извлечь или посчитать}

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

🚀 Быстрый старт — вставь в чат:

Вот шаблон защиты от "подгонки под паттерн". Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

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


⚠️

Ограничения

⚠️ Не работает как гарантия: даже с защитным промптом и даже когда модель явно распознаёт и описывает аномалию, она может всё равно выдать "паттерн-совместимый" ответ вместо своего же правильного расчёта. Это снижает риск, но не убирает его.

⚠️ Хуже всего на тонких отличиях: эффект защиты слабее там, где отклонение малозаметно (мелкий текст, небольшая разница в цифрах) — модель не всегда успевает "зацепиться" за аномалию взглядом, даже если её явно попросить искать отличия.

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


🔍

Как исследовали

Команда взяла 30 реальных сайтов из датасета Design2Code и нашла на них повторяющиеся визуальные паттерны — ряды карточек и текстовые блоки с одинаковым стилем. В каждом паттерне они изменили ровно один элемент (ширину карточки или размер шрифта текста) на 80/90/110/120% от нормы, замаскировали это значение в HTML-коде и попросили пять топовых мультимодальных моделей (включая версии GPT, Claude и Gemini) восстановить его по скриншоту. Получилось 1440 тестовых скриншотов на каждую модель — с шумом на картинке и без, в разных позициях паттерна.

Результат удивил даже исследователей: все пять моделей систематически "скатывались" к значению "как у всех" вместо реального изменённого значения — в среднем в 70% случаев на карточках и в 80% случаев на тексте. Лучшая модель (Codex-5.3) держала точность 68% на карточках, но обвалилась до 14% на мелком тексте — потому что мелкие детали труднее визуально выделить на фоне паттерна. Отдельный анализ рассуждений моделей показал: модели иногда явно писали в своих объяснениях, что видят аномалию и даже правильно её вычисляли — а потом всё равно в финальном ответе писали "паттерн-совместимое" значение. Это ключевой инсайт: проблема не в том, что модель "не видит" отклонение, а в том, что она сознательно отказывается от своего правильного вывода в пользу того, что кажется более "типичным" ответом.


📋 Дайджест исследования

Ключевая суть

Обнаружено: LLM считает аномалию верно в своих рассуждениях — а в финальном ответе выбрасывает свой расчёт и врёт 'как у всех соседей'. Метод показывает, когда доверять зрению модели, а когда она соврёт под давлением паттерна — критично при разборе скриншотов с ценами, карточками, таблицами. Модель генерирует не факт, а самый вероятный текст. Если 9 из 10 карточек одинаковые — 'десятая такая же' звучит правдоподобнее правды. Топовая модель на малозаметных отличиях обваливается с 69% до 14% точности.

Принцип работы

Правило простое: чем менее заметна аномалия, тем сильнее модель усредняет её под соседей. Мелкий шрифт, шум на картинке, положение на краю паттерна — всё это снижает шанс, что модель зацепится за отличие. Это как эффект большинства на экзамене: ты знаешь правильный ответ, но видишь, что все вокруг пишут другой — и рука сама тянется исправить свой листок. Модель может посчитать 118% → округлить до 120% в рассуждениях — а на финальной строке выдать 100%, как у всех.

Почему работает

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

Когда применять

Анализ скриншотов → для прайс-листов, карточек товаров, таблиц с договорами, где один пункт может отличаться от остальных, особенно когда отличие малозаметное (мелкий шрифт, небольшая разница цифр). НЕ подходит как единственная проверка для финансовых, юридических и медицинских данных — там нужна ручная перепроверка.

Мини-рецепт

1. Опиши паттерн: явно скажи модели что элементы 'обычно' одинаковые, например 'скидка 20% у всех товаров'
2. Разреши отличаться: добавь фразу 'не предполагай, что все элементы одинаковы'
3. Попроси рассуждения: 'распиши шаги для каждого элемента' перед финальным ответом
4. Запрети округление: 'если расчёт расходится с паттерном — оставь его, не подгоняй под остальные'

Примеры

[ПЛОХО] : Вот скриншот прайс-листа. Извлеки все скидки в виде списка.
[ХОРОШО] : Вот скриншот прайс-листа. У большинства товаров скидка одинаковая, но один товар может отличаться от паттерна. Проверь каждый товар отдельно по видимым цифрам, не предполагай что все одинаковы. Сначала распиши рассуждения по шагам, потом дай список скидок.
Источник: Pattern over Pixels: Measuring Pattern Completion Bias in Multimodal Code Generation
ArXiv ID: 2608.03691 | Сгенерировано: 2026-08-05 04:32

Проблемы LLM

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

Методы

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

Тезисы

ТезисКомментарий
Модель выбирает вероятный текст, а не проверенный фактЕсли 9 из 10 элементов одинаковые, "десятый такой же" — статистически более вероятное продолжение текста, чем "десятый другой". Это перевешивает даже реально увиденное и правильно посчитанное значение. Модель технически может знать правильный ответ и всё равно написать неправильный — потому что генерация идёт по вероятности, а не по проверке. Применяй: не жди, что модель "просто увидит" аномалию — явно предупреждай, что она может быть, и требуй проверки каждого элемента отдельно
📖 Простыми словами

Pattern over Pixels: Measuring Pattern Completion Bias in Multimodal Code Generation

arXiv: 2608.03691

Мультимодальные модели вроде GPT-4 или Claude работают не как сканеры, а как галлюцинирующие художники. Когда ты скармливаешь им скриншот, они не разбирают каждый пиксель по отдельности, а пытаются угадать общую картину. Если модель видит повторяющийся визуальный ряд, у нее срабатывает когнитивное искажение паттерна: она подсознательно решает, что «дальше будет то же самое». Это фундаментальный баг архитектуры — нейронка всегда выбирает наиболее вероятное продолжение, даже если оно прямо противоречит тому, что нарисовано на картинке.

Это как если бы ты листал колоду карт, где все тузы пик, и среди них затесалась семерка бубен. Твой мозг на автомате может «увидеть» там еще одного туза, просто потому что он уже настроился на этот ритм. Модели делают ровно то же самое: они достраивают реальность под шаблон, игнорируя аномалии. Для них статистическая стройность текста важнее, чем фактическая точность изображения, поэтому они просто замазывают неудобные детали в своем воображении.

В жизни это выглядит как классический облом при анализе данных. Представь, что ты кидаешь нейронке скриншот таблицы с ценами, где у десяти товаров скидка 10%, а у одного — жирные 90%. Модель с огромной вероятностью напишет, что скидка везде одинаковая. Она видит аномалию, но ее внутренний «предсказатель» говорит: «Да не, бред какой-то, скорее всего там тоже десятка». В итоге ты получаешь уверенный отчет, который выглядит логично, но по факту является полной лажей, потому что модель предпочла красивый паттерн суровой правде.

Этот принцип универсален и касается не только ценников. Тестировали на коде и интерфейсах, но грабли лежат везде: в графиках, медицинских анализах, картах или юридических документах. Если в структуре есть повторяющиеся элементы, модель превращается в ленивого корректора, который правит «ошибки» реальности под свой шаблон. SEO-оптимизация или верстка сайтов по шаблону только усугубляют проблему — чем типичнее выглядит твой контент, тем меньше шансов, что AI заметит в нем что-то уникальное.

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

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с