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
