Как использовать Batch API для снижения стоимости LLM на 50%. OpenAI, Anthropic, Google Vertex AI — примеры и паттерны.
Batch API (пакетная обработка) — это способ отправить тысячи запросов к LLM одним пакетом и получить результаты через несколько часов вместо мгновенного ответа. Взамен провайдеры дают скидку 50% на все токены. Если у вас есть задачи, которые не требуют ответа в реальном времени — eval-пайплайны, разметка данных, генерация контента, массовый перевод — Batch API экономит половину бюджета без единой строчки оптимизации кода.
Представьте, что вы отправляете письма. Можно отправить каждое отдельно курьером (дорого, но быстро), а можно собрать все в мешок и отправить почтой (дешевле вдвое, но дойдёт через день). Batch API — это «почтовый мешок» для запросов к AI: вы собираете сотни или тысячи запросов, отправляете пакетом, а через несколько часов забираете готовые ответы. Половина стоимости — за терпение.
Batch API позволяет отправить сотни или тысячи запросов к LLM одним пакетом и получить ответы в течение 24 часов. Главное преимущество — скидка 50% у OpenAI и Anthropic на все токены в пакете.
Когда использовать:
Eval-пайплайны — прогон тестовых наборов на тысячах примеров
Разметка и классификация данных — категоризация тикетов, отзывов, документов
Генерация контента — массовое создание описаний, переводов, суммаризаций
Эмбеддинги — векторизация больших коллекций документов
Синтетические данные — генерация обучающих примеров для fine-tuning
Как это работает:
Без техники
5 000 запросов классификации в реальном времени. Claude Sonnet 4 по $3/1M input + $15/1M output. Стоимость: ~$45/день.
С техникой
Те же 5 000 запросов через Batch API. Скидка 50%: $1.50/1M input + $7.50/1M output. Стоимость: ~$22/день. Экономия: $690/мес.
Стоимость 10 000 запросов: реальное время vs batch ($)
Claude Sonnet (realtime)90%
Claude Sonnet (batch)45%
GPT-4.1 (realtime)50%
GPT-4.1 (batch)25%
Claude Haiku (realtime)30%
Claude Haiku (batch)15%
Плюсы
Скидка 50% на все токены (input + output)
Выше rate limits — можно отправить десятки тысяч запросов
Идеально для ETL, eval, ночных обработок
Простой API — минимум кода для интеграции
Минусы
Результат через часы, не мгновенно (SLA — 24 часа)
Нет стриминга — только полные ответы
Нужна логика для мониторинга статуса и обработки ошибок
Ограничения на размер пакета (зависит от провайдера)
Большинство LLM-задач в продакшене не требуют мгновенного ответа. Eval-пайплайны, ежедневная классификация тикетов, генерация отчётов, разметка данных, создание эмбеддингов — всё это может подождать несколько часов. Провайдеры это понимают и предлагают сделку: вы отказываетесь от мгновенного ответа, а они снижают цену вдвое.
За сценой Batch API позволяет провайдерам более эффективно утилизировать GPU. Вместо того чтобы держать ресурсы для мгновенного ответа на каждый запрос, они могут группировать пакетные запросы и обрабатывать их в периоды низкой нагрузки. Выигрывают все: вы платите меньше, провайдер лучше загружает инфраструктуру.
Batch API — самый простой способ сэкономить. В отличие от prompt caching, model routing или prompt compression, здесь не нужно менять архитектуру приложения. Вы просто отправляете те же самые запросы пакетом и получаете 50% скидку.
Оценка качества LLM-приложения требует прогона сотен или тысяч тестовых примеров. Каждый пример — отдельный запрос к LLM (LLM-as-judge). При 2 000 примеров в eval-наборе и стоимости $0.01 за запрос обычный прогон стоит $20. Через Batch API — $10. На ежедневных прогонах это $300/мес экономии.
Классификация тикетов поддержки, извлечение сущностей из документов, категоризация отзывов — типичные offline-задачи. Массив из 50 000 записей, обработанный через batch, стоит в 2 раза дешевле.
Отправить массив запросов в POST /v1/messages/batches
Поллить статус (GET /v1/messages/batches/{id})
Итерировать результаты (GET /v1/messages/batches/{id}/results)
У Anthropic не нужно отдельно загружать файл — запросы передаются прямо в теле POST-запроса как JSON-массив. У OpenAI файл загружается отдельно через Files API, а в batch передаётся input_file_id.
Не пытайтесь использовать Batch API для интерактивных сценариев, где пользователь ждёт ответ. Чат-боты, поиск, автодополнение — всё это только realtime. Batch — для фоновых задач.
Eval-прогон через Batch API в pull request pipeline. Дешевле и не блокирует CI — результат приходит асинхронно, а PR-check обновляется через webhook или polling job.
Классическая схема: cron-задача в 02:00 собирает накопленные за день запросы, отправляет batch, утром результаты готовы. Идеально для отчётов, классификации, обогащения данных.
При 100 000+ запросов разбивайте на чанки по 10 000-50 000 и отправляйте несколько пакетов параллельно. Это повышает надёжность (сбой одного пакета не теряет все данные) и ускоряет обработку.
Комбинируйте Batch API с prompt caching и дешёвыми моделями. Например: batch на Haiku с кэшированным системным промптом — это 50% скидка (batch) + 90% экономия на input (cache) + дешёвая модель. Тройная экономия.