3,583 papers
arXiv:2604.12896 77 14 апр. 2026 г. FREE

Perception Programs (P²): разделяй восприятие и рассуждение — и LLM даст точный ответ

КЛЮЧЕВАЯ СУТЬ
LLM не рассуждает плохо над изображениями — она плохо их ЧИТАЕТ. Показываешь тепловую карту или таблицу координат — модель видит числа и пиксели, но не схватывает паттерны. Начинает угадывать по языковым шаблонам («глубокие объекты обычно внизу кадра»), а не по реальному сигналу. Метод P² вставляет шаг восприятия между сырыми данными и финальным ответом — сначала переводи данные в структурированный текст-справку, потом давай модели рассуждать только по ней. Два шага вместо одного — и модель работает по данным, а не по догадкам.
Адаптировать под запрос

TL;DR

P² — техника двухшагового промптинга: сначала переводишь сложные визуальные или числовые данные в структурированный текст-справку, потом просишь LLM рассуждать уже не по сырым данным, а по этой справке. Суть в том, чтобы не давать модели необработанный массив — давать ей «прочитанный» вариант.

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

P² решает это разрывом на два шага: шаг восприятия — «что здесь есть и где?» — и шаг рассуждения — «что из этого следует?». Первый шаг создаёт компактную текстовую справку с перечнем элементов, их положением и ключевыми отношениями. Второй — отдаёт эту справку модели для финального вывода.


🔬

Схема метода

ШАГ 1 (Восприятие): Переведи данные/изображение в структурированный текст
  → перечень элементов: что + где + ключевые значения
  → отношения: как элементы соотносятся между собой

ШАГ 2 (Рассуждение): Ответь на вопрос, используя ТОЛЬКО текст из шага 1
  → финальный ответ по структурированной справке, не по сырым данным

Оба шага можно выполнить в одном диалоге: сначала попросить LLM создать P², потом в следующем сообщении попросить рассуждать по полученному тексту. Или вшить оба шага в один промпт-запрос.


🚀

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

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

Промпт:

Шаг 1. Посмотри на изображение и создай структурированное описание:

Для каждой зоны карты заполни:
- Зона: [название или координаты: верх-лево, центр, низ-право и т.д.]
- Плотность заказов: [высокая / средняя / низкая]
- Характеристика: [торговый район / жилые кварталы / промзона / etc.]

Затем добавь раздел «Отношения»:
- Перечисли пары зон и укажи: какая из двух плотнее, насколько они рядом

Шаг 2. Используя ТОЛЬКО структурированное описание выше (не смотри
на изображение повторно), ответь: где лучше всего открыть точку
самовывоза, чтобы охватить максимальный спрос при минимальном
перекрытии конкурентов?

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


🧠

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

Слабость LLM: Модель плохо «читает» плотные данные напрямую — будь то карта глубины, тепловая карта кликов или сложная таблица. Она не ошибается в рассуждении, она ошибается в восприятии: не замечает паттерны в сырых данных и начинает опираться на языковые шаблоны вместо реального сигнала.

Сильная сторона LLM: Зато модель отлично рассуждает по структурированному тексту. Когда данные поданы как «элемент A находится слева, значение 0.8; элемент B справа, значение 0.3; A ярче B» — это уже «родной» формат модели. Она читает его без потерь.

Как P² использует это: Метод вставляет между «сырыми данными» и «финальным рассуждением» промежуточный слой — текстовую справку. Восприятие и рассуждение разделяются. Каждый шаг делает то, что умеет: инструмент (или сама модель на шаге 1) извлекает сигнал, LLM на шаге 2 рассуждает по тексту.

Рычаги управления: - Детализация шага 1 — чем подробнее перечень элементов и отношений, тем точнее рассуждение. Для простых задач можно сократить: только список + 2-3 ключевых отношения - Явный запрет на повторный просмотр — фраза «используй только описание выше, не смотри на изображение повторно» заставляет модель работать исключительно по тексту-справке - Тип отношений — настраивай под задачу: для карт это «ближе/дальше», для текста это «похоже/различается», для временных рядов — «было раньше/позже», «растёт/падает»


📋

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

Шаг 1 — Восприятие. Изучи {данные/изображение} и создай структурированное описание:

Для каждого элемента:
- Название/ID: [идентификатор]
- Положение: [где находится в {данных/изображении}]
- Значение: [{ключевая характеристика под задачу}]

Отношения между элементами:
- Перечисли пары и укажи: {тип отношений под задачу}

Шаг 2 — Рассуждение. Используя ТОЛЬКО структурированное описание выше,
ответь на вопрос: {вопрос}

Что подставлять: - {данные/изображение} — скриншот, график, таблица, карта, фото - {ключевая характеристика под задачу} — плотность, яркость, размер, цвет, значение метрики - {тип отношений под задачу} — «ярче/темнее», «больше/меньше», «ближе/дальше», «похоже/различается» - {вопрос} — конкретный вопрос по данным

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


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

Вот шаблон двухшаговой техники Perception Programs.
Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.

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

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


⚠️

Ограничения

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

⚠️ Шаг 1 требует качественного описания: Если ты сам составляешь справку вместо инструмента — важна точность. Неточная справка → ошибочное рассуждение. «Мусор внутрь — мусор наружу» работает и здесь.

⚠️ Субъективные данные работают хуже: Метод силён там, где есть чёткий сигнал — пространственные отношения, числовые значения, структурные паттерны. Для оценки «красиво/некрасиво» или «интересно/скучно» справка не поможет: там нет объективного сигнала для извлечения.

⚠️ Мелкие модели выигрывают меньше: Маленькие модели уже ограничены в рассуждении, поэтому даже хорошая справка даёт меньший прирост. Метод раскрывается на мощных моделях — GPT-4o, Claude 3.5+.


🔍

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

Исследователи взяли шесть задач из бенчмарка BLINK — набора перцептивных испытаний для мультимодальных моделей: определение относительной глубины, анализ оптического потока, нахождение соответствий на парных изображениях, пространственный пазл и детекция объектов. Для каждой задачи они подключили специализированный инструмент (программа оценки глубины, трекер оптического потока и т.д.) и протестировали три режима: модель без инструментов; модель с сырым выводом инструмента; модель с P² — текстовой справкой из того же вывода.

Самый показательный результат — GPT-5 Mini на задаче многоракурсного рассуждения: без инструментов точность 41%, с сырым инструментом 45% (почти ничего), с P² — 86%. Сырые данные почти не помогли. А переведённые в текст — дали скачок в два раза. Не менее важно, что при добавлении сырого инструмента к Gemini 2.5 Pro точность вообще упала на 14 процентных пунктов — значит, неправильное представление данных активно мешает.

Любопытная деталь дизайна: исследователи специально проверили, понимает ли GPT-5 Mini карту глубины. Попросили её описать словами — и обнаружили, что при увеличении разрешения сетки модель вообще теряет относительный порядок патчей. Число ячеек в сетке растёт, а понимание глубины стремится к нулю. Это объясняет, почему «покажи картинку» не работает: у модели нет механизма читать плотные числовые паттерны.


💡

Адаптации и экстраполяции

📌

🔧 Адаптация: P² для анализа данных в таблицах

Тот же принцип работает с CSV и Excel-выгрузками. Вместо «вот таблица на 200 строк — что интересного?» — попроси сначала создать справку-выжимку:

Техника: Структурированная выжимка данных → резкий рост качества инсайтов

Вместо прямого анализа сырой таблицы сначала создай «перцептивную справку»: топ-5 строк по ключевой метрике, 3 аномальных значения, динамика по периодам (растёт/падает/стабильно), кластеры схожих строк. Потом просишь рассуждать только по справке.

Шаг 1. Из этих данных создай справку:
- Топ-5 строк по {метрика}: [список]
- Аномалии (выбросы >2σ от среднего): [список]  
- Общая динамика: [растёт / падает / волатильна]
- Видимые кластеры или группы: [описание]

Шаг 2. Используя только справку выше, ответь: {вопрос}
📌

🔧 Адаптация: Цепочка P² для сложных сравнений

Если нужно сравнить несколько изображений или документов — создай P² для каждого отдельно, потом попроси сравнить только справки, без повторного обращения к оригиналам:

Шаг 1А. Для {объект A} создай справку: [элементы, положение, значения]
Шаг 1Б. Для {объект B} создай справку: [те же поля]

Шаг 2. Используя только справки 1А и 1Б, укажи:
- В чём ключевые различия?
- Что у обоих одинаково?
- Вывод: {вопрос для сравнения}

Это полезно при сравнении двух коммерческих предложений, двух дизайн-макетов или двух стратегий.


🔗

Ресурсы

Статья: Don't Show Pixels, Show Cues: Unlocking Visual Tool Reasoning in Language Models via Perception Programs

Репозиторий: github.com/AISmartPerception/perception-programs

Авторы: Muhammad Kamran Janjua, Hugo Silva (Huawei Technologies, Canada), Di Niu (University of Alberta), Bahador Rashidi (Huawei Technologies, Canada)

Бенчмарк: BLINK — arxiv.org/abs/2404.12390


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

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

LLM не рассуждает плохо над изображениями — она плохо их ЧИТАЕТ. Показываешь тепловую карту или таблицу координат — модель видит числа и пиксели, но не схватывает паттерны. Начинает угадывать по языковым шаблонам («глубокие объекты обычно внизу кадра»), а не по реальному сигналу. Метод P² вставляет шаг восприятия между сырыми данными и финальным ответом — сначала переводи данные в структурированный текст-справку, потом давай модели рассуждать только по ней. Два шага вместо одного — и модель работает по данным, а не по догадкам.

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

Модель — сильный аналитик, но слабый картограф. Дай картографу первым прочитать карту и составить текстовое описание — тогда аналитик сделает выводы по тексту, а не будет щуриться на пиксели. Шаг 1 — восприятие: перечисли каждый элемент данных с положением, значением и ключевыми отношениями между соседями. Шаг 2 — рассуждение: попроси модель ответить только по этой справке, явно запретив возвращаться к исходным данным. Запрет — не формальность. Без него модель снова потянется к пикселям и всё поломает.

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

LLM обучена на тексте — это её родной формат. Числовые матрицы и пространственные данные для неё как иностранный язык без словаря. Шаг восприятия переводит «иностранный язык данных» на родной язык модели — и ошибки восприятия исчезают. Плюс разделение шагов упрощает задачу. Вместо одной сложной «прочитай-и-ответь» модель решает две простые: «опиши» и «рассуди по описанию». Каждую она делает хорошо. Обе сразу — плывёт.

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

Анализ визуальных и числовых данных — для карт плотности, тепловых карт кликов, графиков с пространственной структурой, скриншотов интерфейсов, глубинных карт; особенно когда модель уже даёт нелогичные или приблизительные ответы при прямом вопросе по изображению. НЕ подходит для простых изображений — один объект, однозначный вопрос. Там два шага только замедляют. И не работает для субъективных оценок («красиво/некрасиво») — там нет объективного сигнала для извлечения в справку.

Мини-рецепт

1. Составь шаблон шага 1: попроси модель для каждого элемента данных указать положение (верх-лево, центр и т.д.), ключевое значение под твою задачу (плотность, яркость, размер) и добавить раздел «Отношения» — пары элементов с указанием кто «больше», «ближе», «ярче».

2. Добавь явный запрет: напиши в шаге 2 фразу <запрет>используй только описание выше — не возвращайся к исходным данным. Без неё модель снова потянется к картинке.

3. Сформулируй конкретный вопрос: не «что ты видишь?», а «где открыть точку с максимальным охватом?», «какой объект ближе всего к центру?», «где самая высокая концентрация?» — конкретно под задачу.

4. Лайт-версия: если не хочешь два шага — добавь в начало любого промпта с изображением фразу «Сначала перечисли все ключевые элементы с расположением и характеристиками, потом отвечай». Неполный вариант, но уже заметно лучше прямого вопроса.

Примеры

[ПЛОХО] : Смотри на тепловую карту кликов. Где разместить кнопку «Купить»?
[ХОРОШО] : Шаг 1. Изучи тепловую карту и составь описание. Для каждой зоны укажи: название зоны (верх, центр, низ-право и т.д.), интенсивность кликов (высокая / средняя / низкая), тип элемента на этом месте (шапка сайта / основной контент / подвал). Добавь раздел «Отношения»: какие зоны активнее других и насколько они рядом. Шаг 2. Используя ТОЛЬКО описание выше (не возвращайся к изображению), ответь: куда поставить кнопку «Купить», чтобы она попала в зону максимального внимания пользователей?
Источник: Don't Show Pixels, Show Cues: Unlocking Visual Tool Reasoning in Language Models via Perception Programs
ArXiv ID: 2604.12896 | Сгенерировано: 2026-04-15 05:30

Проблемы LLM

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

Методы

МетодСуть
Двухшаговый анализ плотных данных — восприятие отдельно от рассужденияШаг 1 — Восприятие. Попроси модель создать структурированную текстовую справку. Для каждого элемента: название, положение, ключевое значение. Плюс раздел «отношения»: как элементы соотносятся между собой (ярче/темнее, ближе/дальше, больше/меньше — выбирай под задачу). Шаг 2 — Рассуждение. Попроси ответить на вопрос, используя ТОЛЬКО справку из шага 1. Добавь явный запрет: «не смотри на исходные данные повторно». Без этой фразы модель может вернуться к сырым данным и снова угадывать по шаблонам. Почему работает: модель хорошо читает структурированный текст. Плохо — числовые матрицы и пиксели. Разделение даёт каждому шагу делать то, что он умеет. Когда применять: изображения, карты, тепловые карты, таблицы координат, сложные графики. Когда не нужен: простые данные, где модель и так отвечает верно.
📖 Простыми словами

Don't Show Pixels, Show Cues: Unlocking VisualToolReasoning inLanguageModelsvia Perception Programs

arXiv: 2604.12896

Современные нейронки, даже самые продвинутые, на самом деле чертовски плохо «видят» суть в куче сырых данных. Когда ты скармливаешь модели тепловую карту заказов или сложный график, она не анализирует пиксели как человек, а пытается угадать ответ, опираясь на свои языковые шаблоны. Проблема не в том, что она тупая и не умеет рассуждать, а в том, что она неправильно считывает вводные. Метод P² (Perception Programs) решает это радикально: мы перестаем пихать в модель «сырые пиксели» и начинаем давать ей структурированные текстовые подсказки, которые заранее вытащили из картинки специальные алгоритмы.

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

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

Хотя метод тестировали на визуальных задачах вроде анализа карт, принцип универсален. Его можно и нужно внедрять везде, где данные слишком плотные для прямого восприятия: в анализе медицинских снимков, сложных финансовых отчетах или даже в программировании. Вместо того чтобы просить модель «посмотри на этот гигантский лог и скажи, где ошибка», эффективнее сначала структурировать аномалии в короткий список, а потом уже спрашивать совета. Мы просто убираем лишний шум, который мешает модели «думать».

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

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

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

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