3,583 papers
arXiv:2504.02111 74 1 апр. 2025 г. FREE

Устойчивость LLM к шуму в промптах: когда лишний текст ломает рассуждения

КЛЮЧЕВАЯ СУТЬ
Парадокс: ты думаешь модель сама отфильтрует нерелевантный текст в промпте – но она этого не делает. Нерелевантный контекст (случайная Wikipedia-статья, финансовый отчёт) снижает точность рассуждений на 56%, даже если правильный ответ требует всего двух шагов логики. Исследование на 13 моделях показало: модель распределяет внимание по всему тексту в промпте – если 90% шум, фокус размазывается. Метод позволяет сохранять точность при работе с длинными документами, переписками, RAG-выдачей – любым контекстом где полезное перемешано с мусором. Решение в три шага: убирай лишнее вручную, явно говори модели что игнорировать, разделяй фильтрацию и анализ на два запроса.
Адаптировать под запрос

TL;DR

Лишний текст в промпте убивает точность рассуждений LLM — это доказали на 13 моделях, добавляя в математические задачи четыре типа возмущений: нерелевантный контекст (Wikipedia, финансовые отчёты), патологические инструкции ("добавь цвет перед каждым прилагательным"), релевантные но ненужные детали, и их комбинацию. Нерелевантный контекст снизил точность на 56% — даже если правильный ответ требует всего двух шагов. Патологические и релевантные возмущения дали -8.5% и -7% соответственно.

Главная находка: модели не умеют фильтровать шум, даже когда он занимает 90% контекстного окна, а нужная информация — всего пару строк. Нерелевантные факты про омлет Клэр (что она фитнес-энтузиаст, верит в белковые завтраки) или случайная Wikipedia-статья в том же промпте — всё это сбивает модель с толку. При этом сложность задачи не влияет на уязвимость: простые задачи (2 шага) страдают так же, как сложные (8+ шагов). Размер модели тоже не спасает: Mixtral-8x22B (39B параметров) деградирует сильнее, чем Mistral-7B.

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

📌

Основные находки

📌

1. Нерелевантный контекст — главный убийца точности

Когда промпт заполнили на 90% нерелевантным текстом (Wikipedia-статьи, финансовые отчёты, новости), точность упала на 56% в среднем по всем моделям. Это самый сильный эффект среди всех возмущений.

Пример: задача про омлет Клэр + полный текст Wikipedia-статьи про птицеводство + финансовый отчёт агрохолдинга. Модель должна проигнорировать всё, кроме трёх чисел: 3 яйца, 7 дней, 4 недели. Не справляется.

📌

2. Сложность задачи не влияет на уязвимость

Ожидали: сложные задачи (8+ шагов рассуждений) пострадают сильнее — больше точек, где модель может сбиться. Реальность: простые задачи (2 шага) деградируют так же сильно, как сложные. Разброс всего 5-10%.

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

📌

3. Размер модели не коррелирует с устойчивостью

Ожидали: большие модели (100B+ параметров) справятся лучше. Реальность: Mixtral-8x22B (39B) показал худшую устойчивость, command-r-plus (100B) — вторая с конца. Маленькие модели (Mistral-7B, Llama-3.2-3B) — в середине рейтинга.

Вывод: устойчивость к шуму зависит не от размера, а от архитектуры, данных обучения, файн-тюнинга. Больше параметров ≠ лучше фильтрация контекста.

📌

4. Патологические инструкции работают неожиданно слабо

Добавление мисдирекций типа "добавь название цвета перед каждым прилагательным" дало всего -8.5%. Релевантные но ненужные детали ("Клэр — фитнес-энтузиаст") — -7%.

Интерпретация: модели научились игнорировать странные инструкции в конце промпта (возможно, благодаря RLHF), но не научились фильтровать информационный шум.

📌

Принципы для работы

📋

Принцип 1: Чистота промпта

Правило: Каждое предложение в промпте должно работать на задачу. Лишнее — не нейтрально, оно активно вредит.

Что делать: - Перед отправкой промпта спроси: "Какие части можно удалить без потери смысла?" - Если вставляешь документ/статью — вырежи нерелевантные абзацы вручную - Не думай "пусть модель сама разберётся" — не разберётся

📌

Принцип 2: Явное разделение сигнала и шума

Правило: Если контекст большой и содержит шум — скажи модели явно что игнорировать или на что фокусироваться.

Промпт:

Ниже документ на 10 страниц. Игнорируй разделы "История компании" и "Биографии". 
Фокусируйся только на цифрах выручки за 2024 год.

[документ]

Вопрос: Какова динамика выручки по кварталам?
📌

Принцип 3: Двухэтапная обработка шумного контекста

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

Workflow:

Шаг 1 — Фильтрация:

Вот переписка из Telegram-чата (500 сообщений). Выдели только сообщения про сроки сдачи проекта. 
Убери мемы, оффтоп, обсуждение обеда.

[вставить переписку]

Шаг 2 — Основная задача:

Вот отфильтрованные сообщения про сроки. Составь timeline проекта.

[результат шага 1]

Почему работает: модель на шаге 1 делает простую задачу (классификация сообщений) без рассуждений. На шаге 2 получает чистый контекст для сложной задачи.

🚀

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

Задача: Ты анализируешь бизнес-план стартапа для инвестора. План на 15 страниц: vision, команда, рынок,unit-экономика, риски, приложения. Тебе нужна только оценка unit-экономики: LTV, CAC, payback period.

❌ Плохой промпт (как в исследовании):

Вот бизнес-план стартапа [вставить 15 страниц]. 
Посчитай LTV, CAC и payback period.

Проблема: Модель получит 90% нерелевантного текста (биографии фаундеров, описание рынка). По результатам исследования — точность упадёт на ~56%.

✅ Хороший промпт (с фильтрацией):

Шаг 1:

Вот бизнес-план стартапа на 15 страниц. Игнорируй разделы Vision, Команда, Описание рынка, Риски, Приложения.

Найди и скопируй ТОЛЬКО цифры про:
- Средний чек
- Процент повторных покупок
- Стоимость привлечения клиента
- Retention rate

[вставить план]

Шаг 2:

Вот извлечённые данные юнит-экономики. Посчитай:
1. LTV = средний чек × число покупок за lifetime
2. CAC = стоимость привлечения
3. Payback period = CAC / месячный доход с клиента

[результат шага 1]

Результат:

На первом шаге модель выдаст только релевантные цифры (фильтрует шум). На втором — точно посчитает метрики, потому что работает с чистыми данными без помех.

🧠

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

Слабость LLM: Модели не умеют автоматически фильтровать нерелевантный контекст. Весь текст в промпте получает внимание (attention mechanism) — даже если это случайная Wikipedia-статья. Чем больше шума, тем больше внимание "размазывается" по нерелевантным частям.

Механика деградации: В задаче про омлет (3 яйца × 7 дней × 4 недели) модель должна найти три числа. Но если в промпте 10,000 слов про птицеводство, финансовые отчёты, новости — attention mechanism распределяет вес между всеми числами в контексте. Модель может зацепиться за "12 миллионов кур" из Wikipedia вместо "3 яйца" из задачи.

Сильная сторона LLM: Модели отлично следуют явным инструкциям типа "игнорируй раздел X" или "фокусируйся на Y". Это даёт attention mechanism чёткий сигнал куда смотреть.

Как принципы обходят слабость:

  • Чистота промпта — убираешь шум физически, не полагаясь на модель
  • Явное разделение — даёшь attention mechanism прямую инструкцию куда направить фокус
  • Двухэтапная обработка — разделяешь простую задачу (фильтрация) и сложную (рассуждения), не смешивая их

Рычаги управления:

  • Объём контекста: Чем меньше — тем лучше. Если документ 50 страниц, а нужно 2 абзаца — вырезай остальное.
  • Явность инструкций: "Игнорируй X" работает лучше, чем надежда на автофильтрацию.
  • Этапность: Один запрос (фильтрация) + второй запрос (анализ) > один запрос (всё сразу).
⚠️

Ограничения принципов

⚠️ Двухэтапность = больше токенов: Фильтрация в отдельном запросе съедает дополнительные токены. Для платных API это дороже.

⚠️ Явные инструкции не панацея: Если шума слишком много (90% контекста), даже "игнорируй" может не сработать — attention всё равно утекает.

⚠️ Субъективная фильтрация: Что релевантно, а что шум? Иногда неочевидно. Можешь случайно вырезать важное.

⚠️ Патологические инструкции слабо вредят: Если боишься случайных мисдирекций в конце промпта ("добавь цвет") — исследование показывает, это даёт всего -8.5%. Главная угроза — информационный шум, не странные команды.

🔗

Ресурсы

Exploring LLM Reasoning Through Controlled Prompt Variations

Репозиторий исследования

Giannis Chatziveroglou, Richard Yun, Maura Kelleher (MIT)

Связанные работы: - GSM-Symbolic (Mirzadeh et al., 2024) — LLM полагаются на паттерны, а не логику - GSM-IC (Shi et al., 2023) — даже одна нерелевантная деталь снижает точность - GSM-PLUS (Li et al., 2024) — релевантные дистракторы сбивают reasoning


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

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

Парадокс: ты думаешь модель сама отфильтрует нерелевантный текст в промпте – но она этого не делает. Нерелевантный контекст (случайная Wikipedia-статья, финансовый отчёт) снижает точность рассуждений на 56%, даже если правильный ответ требует всего двух шагов логики. Исследование на 13 моделях показало: модель распределяет внимание по всему тексту в промпте – если 90% шум, фокус размазывается. Метод позволяет сохранять точность при работе с длинными документами, переписками, RAG-выдачей – любым контекстом где полезное перемешано с мусором. Решение в три шага: убирай лишнее вручную, явно говори модели что игнорировать, разделяй фильтрацию и анализ на два запроса.

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

Не полагайся на автофильтрацию – управляй вниманием модели явно. Attention mechanism обрабатывает весь текст в промпте, даже если это статья про птицеводство в задаче про омлет. Каждое лишнее предложение крадёт фокус у нужной информации. Три тактики: физически вырезай нерелевантные абзацы перед отправкой, добавляй инструкцию "игнорируй разделы X, Y" если вырезать невозможно, или разделяй на два запроса (первый – извлечь нужное из шума, второй – работать с чистыми данными).

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

Модель не умеет отличать сигнал от шума без явной подсказки. В эксперименте добавили в математическую задачу 10,000 слов нерелевантного текста (статьи, отчёты, новости). Задача простая – найти три числа и перемножить их. Точность упала с 85% до 29% – модель цеплялась за случайные числа из шума вместо чисел из условия. Почему? Attention распределяет вес между всеми токенами. Видит "12 миллионов кур" в Wikipedia-статье – может использовать это вместо "3 яйца" из задачи. Явная инструкция "фокусируйся только на абзаце с условием" направляет attention в нужное место. Двухэтапность работает ещё лучше: на первом шаге модель делает простую задачу (классификация – что релевантно, что нет), на втором получает чистый контекст для сложных рассуждений.

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

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

Мини-рецепт

1. Вырежи шум вручную: Перед отправкой промпта спроси "какие абзацы точно не нужны для ответа?" – удали их физически. Если документ 15 страниц, а нужны только цифры юнит-экономики – оставь только раздел с метриками.

2. Дай явную инструкцию фокуса: Если вырезать нельзя (документ нужен целиком), добавь в начало промпта: Игнорируй разделы [список]. Фокусируйся только на [конкретный раздел/тип информации].

3. Разделяй фильтрацию и анализ: Первый запрос – Извлеки из документа только [конкретные данные]. Игнорируй всё остальное. Второй запрос – Вот извлечённые данные [результат шага 1]. Теперь [основная задача]. Модель на первом шаге фильтрует без рассуждений, на втором – рассуждает без помех.

Примеры

[ПЛОХО] : Вот бизнес-план стартапа на 15 страниц [вставить полный текст]. Посчитай LTV, CAC и payback period – модель получит 90% нерелевантного текста (биографии основателей, описание рынка, vision), точность просядет на ~56%.
[ХОРОШО] : Шаг 1: Вот бизнес-план на 15 страниц. Игнорируй разделы Vision, Команда, Описание рынка, Риски. Найди и скопируй ТОЛЬКО цифры: средний чек, процент повторных покупок, стоимость привлечения клиента, удержание клиентов (retention). Шаг 2: Вот извлечённые данные юнит-экономики [результат]. Посчитай: LTV = средний чек × покупки за lifetime, CAC = стоимость привлечения, Payback = CAC / месячный доход с клиента – на первом шаге фильтруешь шум, на втором модель работает только с релевантными цифрами.
Источник: Exploring LLM Reasoning Through Controlled Prompt Variations
ArXiv ID: 2504.02111 | Сгенерировано: 2026-01-20 16:29

Проблемы LLM

ПроблемаСутьКак обойти
Модель не фильтрует нерелевантный текст автоматическиВставляешь документ на 50 страниц, а нужны 2 абзаца. Модель распределяет внимание на весь текст — включая шум. Механизм attention "размазывается" по всему контексту. Зацепляется за случайные числа из нерелевантных частей вместо нужных данных. Это ломает даже простые задачи на 2-3 шага рассужденийСпособ 1: Вырезай лишнее вручную перед отправкой. Способ 2: Добавь явную инструкцию: "Игнорируй разделы X, Y. Фокусируйся только на Z". Способ 3: Двухэтапный промпт — сначала "Извлеки только данные про Z", потом работай с чистым результатом

Методы

МетодСуть
Двухэтапная фильтрация шумного контекстаРазделяй обработку на два запроса. Шаг 1 (фильтрация): "Вот документ. Извлеки только данные про X. Убери разделы Y, Z". Шаг 2 (анализ): "Вот извлечённые данные. Посчитай/проанализируй/сравни". Почему работает: На первом шаге модель делает простую задачу (найти и скопировать) без рассуждений. На втором получает чистый контекст без шума — attention фокусируется только на полезном. Когда применять: длинные документы (10+ страниц), переписки, RAG-выдача, любой контекст где полезное < 20% от общего объёма. Минус: требует два запроса вместо одного, больше токенов
Явное разграничение сигнала и шумаДобавь в начало промпта: "Игнорируй разделы [список]. Фокусируйся только на [конкретика]". Пример: Ниже финотчёт на 30 страниц. Игнорируй разделы "История", "Команда", "Приложения". Используй только цифры выручки за 2024. Почему работает: Даёшь attention mechanism прямую инструкцию куда направить фокус. Модель следует явным командам лучше, чем автоматически определяет релевантность. Когда применять: не можешь вырезать текст физически (API возвращает полный документ), или объём шума 50-80%. Не работает: если шума > 90% контекста — даже явные инструкции не спасают

Тезисы

ТезисКомментарий
Сложность задачи не влияет на уязвимость к шумуПростые задачи (2 шага рассуждений) деградируют от шума так же сильно, как сложные (8+ шагов). Разброс всего 5-10%. Модель не "запутывается в длинной цепочке" — она не может отфильтровать помехи с самого начала. Если первый шаг сбит, дальше неважно сколько шагов. Применяй: Даже для простых вопросов ("сколько это стоит?") чисти контекст от шума. Не думай "задача лёгкая, модель справится"
Размер модели не коррелирует с устойчивостью к шумуБольшие модели (100B параметров) не фильтруют шум лучше маленьких (7B). Устойчивость зависит от архитектуры и дообучения, не от числа параметров. Иногда маленькая модель справляется лучше гиганта. Применяй: Не полагайся на "большую модель" для работы с шумным контекстом. Чисти промпт одинаково строго для любой модели
📖 Простыми словами

ExploringLLMReasoning Through ControlledPromptVariations

arXiv: 2504.02111

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

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

Самый жесткий удар наносит нерелевантный контекст: добавление случайных фактов или отчетов убивает точность на 56%. Чуть меньше, но всё равно ощутимо, мешают «патологические инструкции» (типа «пиши каждое второе слово капсом») и избыточные детали, которые вроде как по теме, но для решения не нужны. Модель просто тонет в этом болоте: её механизм внимания размазывается по тексту, и в итоге 10 из 13 топовых моделей лажают там, где раньше щелкали задачи как орехи.

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

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

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

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

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