3,583 papers
arXiv:2605.00445 74 1 мая 2026 г. FREE

ATP: порядок строк и столбцов в таблице меняет ответы LLM

КЛЮЧЕВАЯ СУТЬ
Та же таблица. Те же данные. Другой порядок строк — и LLM называет другого победителя в сравнении. Это не баг конкретной модели: исследование показало системный паттерн, который воспроизводится на всех современных LLM без исключения. Метод ATP позволяет нейтрализовать этот эффект и получать стабильные ответы при анализе любых таблиц — без дообучения и без сложных инструментов. Одна инструкция перед таблицей: «Отсортируй по [столбцу] перед ответом» — модель сама переупорядочивает данные и «фиксирует» структуру в контексте. Позиционный шум исчезает.
Адаптировать под запрос

TL;DR

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

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

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


🔬

Схема метода

Это не техника с шагами — это находка о поведении LLM с практическими следствиями:

ПРОБЛЕМА: Таблица → LLM → ответ зависит от порядка строк/столбцов
            ↓
РИСК: Случайный/неудачный порядок → неверный или нестабильный ответ
            ↓
ЗАЩИТА: Сортировать таблицу до вставки в чат
       → ключевой столбец на первое место
       → релевантные строки выше
       → попросить LLM сначала переупорядочить данные

Один запрос. Никаких дополнительных инструментов — только осознанный выбор структуры таблицы.


🚀

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

Задача: Ты CFO стартапа. Просишь Claude проанализировать юнит-экономику по пяти каналам привлечения и назвать лучший по LTV/CAC. В таблице — каналы в случайном порядке: Контекст, Телеграм, SEO, Партнёрки, SMM.

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

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

Перед анализом: отсортируй таблицу по столбцу LTV/CAC от большего к меньшему. 
Покажи отсортированную версию, затем назови лучший канал и объясни почему.

Таблица юнит-экономики каналов:

| Канал       | CAC, ₽ | LTV, ₽ | LTV/CAC |
|-------------|--------|--------|---------|
| Контекст    | 2 400  | 9 600  | 4.0     |
| Телеграм    | 800    | 5 600  | 7.0     |
| SEO         | 400    | 3 200  | 8.0     |
| Партнёрки   | 1 200  | 7 200  | 6.0     |
| SMM         | 600    | 1 800  | 3.0     |

Вопрос: какой канал наиболее эффективен для масштабирования?

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


🧠

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

LLM не «понимает» таблицу — она читает текст. Когда таблица вставляется в чат, она превращается в последовательность символов: заголовок, строка 1, строка 2... Модель обрабатывает этот поток слева направо. Первые строки получают больший «вес» при формировании ответа — как первые абзацы в тексте.

Таблица не имеет «правильного» порядка в реальном мире. Строки с продажами за январь и февраль — равнозначны независимо от того, в каком порядке идут. Но LLM этого не знает. Для неё «Февраль в строке 1» и «Февраль в строке 5» — разный контекст с разным влиянием на финальный ответ.

Сортировка по смыслу вопроса — это принудительный приоритет. Когда самые релевантные данные стоят первыми, модель «читает» ответ ещё до того, как добирается до деталей. Это не обман LLM — это устранение шума, который мешает правильному ответу пробиться.

Рычаги управления: - Порядок строк → ставь релевантные данные выше - Порядок столбцов → ключевой столбец (тот, по которому вопрос) — первым или вторым - Инструкция к сортировке → попроси LLM переупорядочить перед анализом — она сделает это и «зафиксирует» структуру в своём контексте - Размер таблицы → меньше строк = меньше шума. Если таблица большая, отфильтруй нерелевантные строки до вставки


📋

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

Перед ответом на вопрос: отсортируй таблицу по {ключевой_столбец} 
{по убыванию / по возрастанию / по релевантности к вопросу}.
Покажи отсортированную таблицу, затем дай ответ.

{таблица}

Вопрос: {вопрос}

Что подставлять: - {ключевой_столбец} — столбец, по которому будет ответ (LTV/CAC, дата, сумма, рейтинг) - {по убыванию / по возрастанию} — направление сортировки под вопрос - {таблица} — таблица в любом формате: Markdown, CSV, скопированный из Excel - {вопрос} — твой вопрос к данным


📌

Варианты применения

💡 Если не знаешь как сортировать: дай задачу LLM целиком

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

{таблица}

Вопрос: {вопрос}

💡 Если таблица большая: сначала фильтруй, потом спрашивай

Из таблицы ниже оставь только строки, которые 
относятся к {критерий_фильтрации}. 
Остальные удали. Отсортируй оставшееся по {столбец}.
Затем ответь: {вопрос}

{таблица}

🔧 Техника: попроси объяснить на каком основании сделан вывод

Добавь в любой промпт с таблицей:

После ответа укажи: какие конкретно строки таблицы повлияли на вывод 
и почему именно они, а не другие.

Это заставляет модель «показать работу» — если она опирается на позицию строки, а не на значение, это станет видно.


⚠️

Ограничения

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

⚠️ Субъективные вопросы сложнее: Этот эффект сильнее всего проявляется при точных вопросах («кто первый», «сколько всего», «какой максимум»). При вопросах типа «что посоветуешь» порядок строк тоже влияет, но предсказать как — сложнее.

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

⚠️ Защита ATP атаки — не в наших руках: Исследователи нашли «наихудшие» перестановки через градиентный алгоритм (нужен доступ к весам модели). Против такой целенаправленной атаки сортировка не спасёт — но в обычной работе с чатом это не актуально.


🔍

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

Команда из CMU и NEC Labs поставила простой вопрос: если взять одну и ту же таблицу и просто переставить строки и столбцы местами — изменится ли ответ модели? Данные не меняются, вопрос не меняется, меняется только расположение.

Тестировали на восьми разных моделях — от маленьких (7B параметров) до более крупных (14B), включая Llama, Qwen, DeepSeek и специализированные TableLLM. Проверяли на двух датасетах с вопросами по таблицам.

Результат оказался неприятным: случайное перемешивание строк уже снижало точность у всех моделей. Ни одна не устояла. Самые «умные» модели теряли меньше — но тоже теряли.

Потом исследователи пошли дальше: создали алгоритм ATP, который ищет наихудшую перестановку — ту, которая максимально ломает ответ конкретной модели. Результат был жёстким: у некоторых моделей точность падала в два-три раза по сравнению с нормальным вводом. Интересный момент — найденные «вредоносные» перестановки работали не только на той модели, для которой их нашли, но и на других. Уязвимость системная, не индивидуальная.


🔗

Ресурсы

The Power of Order: Fooling LLMs with Adversarial Table Permutations

Авторы: Xinshuai Dong, Haifeng Chen, Xuyuan Liu, Shengyu Chen, Haoyu Wang, Shaoan Xie, Kun Zhang, Zhengzhang Chen

Организации: Carnegie Mellon University (CMU), NEC Labs America, Dartmouth College

Датасеты в исследовании: WTQ (WikiTableQuestions), TATQA


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

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

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

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

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

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

Когда таблица попадает в чат, она превращается в поток символов: заголовок, строка 1, строка 2... LLM обрабатывает этот поток последовательно. Ранние токены сильнее влияют на итоговый ответ — это не мнение, это архитектурное свойство трансформеров с механизмом внимания (attention). Исследователи проверили: даже случайное перемешивание строк стабильно снижает точность ответов. Ни одна из проверенных моделей не оказалась иммунной — это системная слабость, а не недоработка конкретного разработчика. Когда просишь отсортировать перед ответом, модель сначала выстраивает данные по смыслу вопроса — и дальнейший анализ идёт уже без позиционного перекоса.

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

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

Мини-рецепт

1. Найди ключевой столбец: Тот, по которому задаёшь вопрос — LTV, дата, рейтинг, выручка, скорость. Он пойдёт первым при сортировке.
2. Добавь одну строчку перед таблицей: Отсортируй таблицу по [столбец] от большего к меньшему. Покажи отсортированную версию — потом отвечай на вопрос.
3. Не знаешь по какому столбцу? Передай выбор модели: Сам определи, по какому столбцу лучше отсортировать данные, чтобы точнее ответить на вопрос.
4. Для проверки надёжности: Добавь в конце Укажи, на какие именно строки опирался при выводе и почему именно они — если модель ссылается на позицию, а не на значение, это сразу станет видно.

Примеры

[ПЛОХО] : Какой канал привлечения лучший по окупаемости? | Канал | CAC | LTV | LTV/CAC | Контекст | 2400 | 9600 | 4.0 | Телеграм | 800 | 5600 | 7.0 | SEO | 400 | 3200 | 8.0
[ХОРОШО] : Перед ответом отсортируй таблицу по столбцу LTV/CAC от большего к меньшему. Покажи отсортированную версию — потом назови лучший канал для масштабирования и объясни почему. | Канал | CAC | LTV | LTV/CAC | Контекст | 2400 | 9600 | 4.0 | Телеграм | 800 | 5600 | 7.0 | SEO | 400 | 3200 | 8.0 Результат: модель покажет таблицу с SEO и Телеграмом наверху, SMM и Контекстом внизу — и только потом сделает вывод. Такой ответ опирается на значения, а не на то, какая строка случайно оказалась первой.
Источник: The Power of Order: Fooling LLMs with Adversarial Table Permutations
ArXiv ID: 2605.00445 | Сгенерировано: 2026-05-04 05:23

Проблемы LLM

ПроблемаСутьКак обойти
Порядок строк и столбцов в таблице меняет ответВставляешь таблицу — модель читает её как текст. Сверху вниз, слева направо. Строки выше получают больший вес. Та же таблица с теми же данными, но в другом порядке — и модель называет другой ответ. Это не баг одной модели. Все LLM так работаютПеред вставкой отсортируй таблицу вручную: ключевой столбец левее, релевантные строки выше. Или добавь в запрос: "отсортируй таблицу по {столбец} перед ответом, покажи отсортированную версию, потом отвечай"

Методы

МетодСуть
Принудительная сортировка таблицы перед анализомДобавь в запрос инструкцию: Перед ответом отсортируй таблицу по {ключевой_столбец} по убыванию. Покажи отсортированную версию. Затем ответь на вопрос. Почему работает: модель "фиксирует" структуру в своём контексте сама. Первые строки после сортировки совпадают с самыми важными для вопроса. Когда применять: любой анализ таблицы с числами, рейтингами, датами, суммами. Когда не работает: таблица больше 30–40 строк — сортировка помогает, но шум от объёма остаётся
📖 Простыми словами

The Power of Order: FoolingLLMswith Adversarial Table Permutations

arXiv: 2605.00445

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

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

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

Тестировали эту фигню на всех популярных моделях, и лажают абсолютно все — от GPT-4 до Llama. Но принцип универсален и выходит далеко за рамки простых таблиц. Любой структурированный контент — списки задач, базы знаний, финансовые отчеты или логи — превращается в лотерею, если вы не контролируете порядок подачи. Контекстное окно — это не склад, а конвейер, где то, что заехало первым, определяет итоговый вердикт.

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

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

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

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