TL;DR
Batch prompting (батчинг) — техника, когда несколько вопросов подаются модели в одном промпте вместо отдельных запросов. Изначально придумали для экономии токенов (один запрос вместо пяти), но обнаружили неожиданный эффект: батчинг подавляет overthinking — избыточное размышление, когда модель "пережёвывает" даже простые задачи тысячами токенов.
Large Reasoning Models (o1, DeepSeek-R1) склонны к overthinking: на вопрос "соедини последние буквы слов Clinton, Yanira, Barbara, Betsy" модель может зациклиться в бесконечных самопроверках ("wait, let me double-check, hold on...") и не дать ответа, или потратить 3000 токенов там, где достаточно 150. Батчинг создаёт мягкое ограничение: когда в промпте пять вопросов, модель должна распределить внимание между ними — как человек под давлением времени, который не застревает в деталях каждой задачи.
Исследование на 13 бенчмарках показало: батчинг снижает расход токенов на 74% (с 2988 до 769 в среднем), при этом точность не падает, а растёт (86.2% → 87.7%). Модель генерирует меньше "wait", "let me check", отвечает решительнее, а ещё — учится на паттернах из предыдущих примеров в батче и применяет их к следующим.
Схема метода
Обычный подход:
Запрос 1 → Ответ 1 (3000 токенов reasoning)
Запрос 2 → Ответ 2 (3000 токенов reasoning)
...
Batch prompting (один запрос):
[Инструкция]
Вопрос 1: [текст]
Вопрос 2: [текст]
...
Вопрос N: [текст]
→ Модель обрабатывает всё за один проход
→ Ответы на все вопросы (150-200 токенов reasoning на вопрос)
Всё происходит в одном промпте, один запрос к модели.
Пример применения
Задача: Быстро оценить несколько идей для новых сервисов — понять потенциал, риски, первые шаги. Батчинг даст компактные и точные оценки вместо "растеканий мыслью по древу" на каждую идею.
Промпт:
Оцени каждую бизнес-идею по трём критериям: потенциал рынка (1-10), сложность запуска (1-10), главный риск. Дай компактный вывод по каждой.
Идея 1: Доставка готовой еды для офисов в Екатеринбурге. Договоры с кафе, курьеры, заказы через Telegram-бот. Средний чек 350₽, комиссия 25%.
Идея 2: Telegram-бот для записи к врачам в поликлиниках. Парсим расписание с сайтов поликлиник, отправляем напоминания. Монетизация — подписка 199₽/мес.
Идея 3: Маркетплейс услуг репетиторов для подготовки к ЕГЭ. Репетиторы размещают анкеты, ученики выбирают. Комиссия 15% с каждого занятия.
Идея 4: Сервис аренды электросамокатов в спальных районах Москвы. Самокаты у станций метро, оплата через приложение. Аренда 5₽/мин.
Идея 5: Приложение для поиска попутчиков на дальние поездки между городами. Водители и пассажиры, рейтинги, чат. Комиссия 10% с поездки.
Результат:
Модель выдаст пять компактных оценок — по каждой идее отдельный блок с оценками, главным риском и выводом. Reasoning будет видимым, но сжатым — без бесконечных "подождите, давайте ещё раз проверим", "с одной стороны... с другой стороны...". Каждая оценка займёт 100-200 токенов reasoning вместо 2000-3000.
Если идеи схожи по структуре (все про локальные сервисы), модель обучится на паттерне: оценив первую, применит похожую логику к остальным — консистентнее и точнее.
Почему это работает
Слабость LRM: Модели рассуждения (o1, DeepSeek-R1) обучены генерировать развёрнутые цепочки мысли (Chain-of-Thought). Это даёт высокую точность на сложных задачах, но создаёт проблему: модель не умеет "притормозить" на простых вопросах. Она застревает в метакогнитивных циклах — "wait, let me reconsider", "hold on, I need to verify" — и генерирует тысячи токенов даже там, где достаточно одного предложения.
Сильная сторона LLM: Модели хорошо работают с контекстным обучением (in-context learning) и распределением внимания. Когда в промпте несколько задач, модель автоматически балансирует ресурсы между ними. Это как у человека: если нужно решить пять задач за час, ты не будешь тратить 50 минут на первую — интуитивно распределишь время.
Как батчинг использует это: Группируя вопросы в один промпт, мы создаём мягкое ограничение на глубину размышлений. Модель "чувствует", что в контексте ещё четыре задачи, и не уходит в бесконечные самопроверки на каждой. Это неявная регуляризация — модель сама сокращает reasoning, не теряя точности.
Дополнительный эффект: Батчинг включает pattern induction — модель обучается на структуре ранних примеров и применяет паттерн к следующим. Если первый вопрос решён в формате "шаг 1 → шаг 2 → вывод", остальные получат такую же структуру — ответы станут консистентнее.
Рычаги управления:
Размер батча (1 → 15): Больше вопросов = больше экономия токенов, но слишком много (>15) может снизить качество на сложных задачах. Для простых — смело 10-15, для глубоких — 3-5.
Однородность задач: Схожие вопросы (например, все про оценку идей) дают pattern induction — модель учится на первых, применяет ко всем. Разнородные (математика + стихи + факты) теряют этот эффект.
Формат инструкции: "Дай компактный вывод" или "одним абзацем" усилят эффект батчинга — модель ещё короче. Убери это — увидишь полные рассуждения (полезно для отладки).
Шаблон промпта
{инструкция_общая}
Вопрос 1: {вопрос_1}
Вопрос 2: {вопрос_2}
Вопрос 3: {вопрос_3}
...
Вопрос N: {вопрос_N}
Плейсхолдеры:
- {инструкция_общая} — что сделать со всеми вопросами (например: "Оцени каждую идею по критериям X, Y, Z")
- {вопрос_1} ... {вопрос_N} — конкретные вопросы или задачи
Важно: Вопросы должны быть схожими по типу (все — оценка идей, все — решение задач, все — анализ текстов). Это усилит pattern induction и точность.
Ограничения
⚠️ Разнородные задачи: Если в батче смешать математику, анализ текста и генерацию кода, модель потеряет фокус — pattern induction не сработает. Батчинг лучше всего для однотипных задач.
⚠️ Очень сложные задачи: На задачах, где нужна глубокая проработка каждой (например, написать развёрнутый бизнес-план), батчинг может снизить качество — модель не успеет "додумать" каждую. Для таких лучше по одной.
⚠️ Большие батчи (>15): Исследователи тестировали до 15 вопросов. Больше может привести к деградации качества — модель начнёт "забывать" ранние примеры из-за ограничений контекстного окна.
⚠️ Нет точного контроля: Батчинг — это мягкое ограничение, не жёсткое. Нельзя задать "ровно 100 токенов на вопрос" — модель сама решает, сколько reasoning нужно каждому.
Как исследовали
Команда из George Mason University, Google и eBay проверила батчинг на 13 бенчмарках: математика (GSM8K, Math500, Game of 24), фактологические вопросы (GPQA, SciTab, StrategyQA), извлечение информации (ACE'05 Event Extraction), простые задачи (подсчёт объектов, последняя буква слова). Тестировали на DeepSeek-R1 (open-weight) и OpenAI o1 (закрытая модель). По 100 примеров из каждого датасета.
Дизайн: Сравнили single-query (batch size = 1) с батчами от 5 до 15 вопросов. Измеряли точность (exact match) и токены (reasoning tokens, output tokens, total tokens).
Результаты удивили: Батчинг не просто сэкономил токены (это ожидалось), а улучшил точность на многих задачах. Например, на GPQA (сложные научные вопросы) точность выросла с 79% до 86%, на Last Letter (склонность к зацикливанию) — с 95% до 98%. Средняя точность: 86.2% → 87.7%. При этом reasoning tokens упали с 2988 до 769 (почти в 4 раза!), а output tokens остались примерно на уровне.
Почему точность выросла? Исследователи проверили поведение модели. На задаче Last Letter DeepSeek-R1 в single-query генерировал 21 токен "wait" (бесконечные самопроверки) и иногда не давал ответа. В батче из 5 — всего 1 "wait" (только на самой сложной задаче), все ответы правильные. Батчинг подавляет hedging language — модель меньше сомневается, действует решительнее.
Pattern induction: В одном примере модель в single-query решила задачу правильно, но вывела "nn yo" (с пробелом) вместо "nnyo" — провал по exact match. В батче — все ответы форматированы одинаково и правильно. Модель увидела паттерн в первых примерах и применила ко всем.
Попытка контроля промптами: Исследователи пробовали добавить ограничения типа "Think for only 1 second" или "Use no more than 100 tokens". Не сработало — модель игнорировала или просто повторяла инструкцию в ответе ("Here is your answer within 100 tokens..."), но reasoning не сокращался. Батчинг оказался эффективнее явных инструкций.
Оригинал из исследования
Исследователи описывают батчинг через формальную модель:
Single-query cost:
C(q) = T_fix + T_q + T_a
где:
- T_fix — фиксированные токены промпта (system message, инструкция)
- T_q — токены вопроса
- T_a — токены ответа (включая reasoning)
Batch prompting:
P = [Instruction] || q_1 || q_2 || ... || q_b
C_batch = T_fix + Σ(T_qi + T_ai)
Effective per-query cost:
C_batch_per_query = T_fix/b + (1/b) * Σ(T_qi + T_ai)
Ключевой момент: Фиксированные токены промпта амортизируются как 1/b — чем больше батч, тем меньше overhead на каждый вопрос.
Регуляризация:
Авторы формализуют overthinking:
|R(q)|_single >> |R(q)|_optimal
E[|R(q)|_batch] < E[|R(q)|_single]
где R(q) — reasoning trace (цепочка мыслей). В single-query модель генерирует избыточно длинную цепь, особенно на простых задачах. Батчинг сокращает математическое ожидание длины reasoning.
Контекст: Это не императивный код, который модель "выполняет" — это описание механики через формулы. Модель не считает по этим формулам, но эффект проявляется за счёт архитектуры трансформера: attention распределяется между всеми токенами в контексте, и когда в контексте много задач, каждая получает "меньше внимания" — это и есть мягкое ограничение.
Адаптации и экстраполяции
💡 Адаптация: Батчинг для улучшения консистентности форматирования
Проблема: Модель генерирует ответы в разных форматах — то JSON, то markdown, то plain text — даже если инструкция одна.
Решение: Добавь в батч 1-2 примера нужного формата в начале. Модель подхватит паттерн и применит ко всем следующим вопросам.
Пример:
Извлеки название компании и сумму инвестиций из каждой новости. Формат ответа: "Компания: [название] | Сумма: [число]"
Новость 1: Яндекс инвестировал 500 млн рублей в стартап по доставке продуктов "Лавка".
Новость 2: Сбер вложил $10 млн в разработчика AI-ассистентов для бизнеса.
Новость 3: VK инвестировал 200 млн рублей в сервис онлайн-обучения Skillbox.
Новость 4: Ozon профинансировал маркетплейс услуг на 1 млрд рублей.
Новость 5: Тинькофф вложил 300 млн в fintech-стартап по кредитованию малого бизнеса.
Модель увидит паттерн в первых двух ответах и применит формат ко всем остальным — вместо хаотичного вывода получишь консистентную таблицу.
🔧 Техника: Убрать "компактность" → видеть полные рассуждения
Когда нужно: Если хочешь понять логику модели (отладка, проверка) — убери давление на краткость.
Что изменить: Не указывай "дай компактный вывод" или "одним абзацем". Модель покажет развёрнутые рассуждения для каждого вопроса в батче — но всё равно короче, чем в single-query (эффект батчинга сохранится).
Пример:
Оцени каждую бизнес-идею: потенциал рынка, сложность запуска, главный риск. Покажи рассуждения.
Идея 1: [текст]
Идея 2: [текст]
...
Получишь "думалку" модели — как она пришла к оценке — но без бесконечных "wait, let me check".
💡 Экстраполяция: Батчинг для A/B-тестирования промптов
Идея: Протестируй несколько вариантов формулировки задачи в одном запросе — модель обработает все, ты сравнишь результаты.
Пример:
Реши каждую задачу, используя указанный подход.
Задача 1 (Подход: пошаговый расчёт): У Маши было 15 яблок. Она отдала 1/3 Пете и 20% Оле. Сколько осталось?
Задача 2 (Подход: сначала найди все доли, потом вычти): У Маши было 15 яблок. Она отдала 1/3 Пете и 20% Оле. Сколько осталось?
Задача 3 (Подход: визуализируй через схему): У Маши было 15 яблок. Она отдала 1/3 Пете и 20% Оле. Сколько осталось?
Модель даст три решения — увидишь, какая формулировка даёт лучший результат. Батчинг сэкономит токены и даст pattern induction: если первый подход сработал хорошо, модель применит структуру к остальным.
Ресурсы
"Reasoning Under Constraint: How Batch Prompting Suppresses Overthinking in Reasoning Models"
Gaurav Singh, Abhishek Dey, Janit Bidhan, Tanu Kansal, Paras Kath, Saurabh Srivastava
George Mason University, Google, eBay
arXiv:2025 (точная ссылка не указана в тексте)
Связанные работы: - Cheng et al., 2023: "Batch Prompting: Efficient Inference with LLM APIs" (оригинальная работа про батчинг для экономии) - Chen et al., 2025: "Do Not Think That Much for 2+3=?" (исследование overthinking в o1-подобных моделях) - Huang et al., 2025: "Mitigating Overthinking via Manifold Steering" (альтернативный подход через модификацию активаций)
