Открыть сервисСервис

Батч в информатике

Батч (от англ. batch — «пакет, группа») — в информатике и вычислительной технике термин, обозначающий группу однотипных данных или операций, объединённых для совместной обработки. В разных областях — от баз данных и машинного обучения до операционных систем и графических редакторов — батч означает пакетный режим работы, при котором отдельные действия выполняются не по одному, а блоками, что повышает производительность и упрощает управление процессами.

Батч в базах данных

В реляционных базах данных батч — это набор SQL-операций (обычно изменяющих: INSERT, UPDATE, DELETE), отправляемых на сервер одним пакетом. Вместо того чтобы отправлять каждую строку отдельным запросом с установленным соединением, клиент формирует батч и передаёт его целиком.

Преимущества такого подхода:

  • снижение накладных расходов на сетевое взаимодействие (одно соединение вместо сотен);
  • возможность применения сервером оптимизаций — планирования, группировки операций, отложенной записи;
  • уменьшение времени блокировки строк и транзакций.

В JDBC (Java Database Connectivity) для работы с батчами предназначен интерфейс Statement.addBatch() и метод executeBatch(). Аналогичные механизмы есть в ADO.NET (SqlBulkCopy), psycopg2 для PostgreSQL и в большинстве ORM-фреймворков. Операция массовой вставки через батч может быть на порядки быстрее поштучной вставки.

Батч в машинном обучении

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

Размер батча (batch size) — один из ключевых гиперпараметров обучения. Типичные значения: от 16 до 512 примеров. Маленькие батчи дают более «шумные», но быстрые обновления; большие — более стабильные градиенты, но требуют больше памяти GPU. В фреймворках PyTorch и TensorFlow данные загружаются через специальные классы (DataLoader, tf.data.Dataset), которые разбивают датасет на батчи и загружают их параллельно.

Понятие батча тесно связано с нормализацией по батчу (batch normalization) — слоем нейронной сети, нормализующим активации по статистике текущего батча, что ускоряет и стабилизирует обучение.

Батч в операционных системах и планировании

В операционных системах пакетная (batch) обработка — режим, при котором задания выполняются без непосредственного участия пользователя, последовательно, в порядке очереди. Исторически batch-системы (IBM OS/360, 1960-е) были основным способом использования ЭВМ: программист передавал колоду перфокарт оператору, а результаты получал позже.

Современные аналоги — планировщики заданий (job schedulers): cron в Unix-системах, systemd timers, Apache Airflow, Celery. Они запускают задачи по расписанию или при накоплении определённого количества данных.

Батч в графике и редактировании

В компьютерной графике батч — группа однотипных объектов или операций, объединённых для оптимизации отрисовки или обработки. Например, в 3D-движках батчинг — это объединение нескольких мешей в один вызов отрисовки (draw call), что снижает нагрузку на CPU. В Adobe Photoshop и аналогичных редакторах «пакетная обработка» (Batch) позволяет применить записанный экшен к множеству файлов автоматически.

Батч в других областях

  • Батч-файлы — скрипты для пакетного запуска программ. В Windows это файлы .bat / .cmd, интерпретируемые cmd.exe; в Unix-системах аналог — shell-скрипты.
  • Батч-инверсия — в криптографии и хакерстве сбор данных из нескольких источников в единый пакет для последующего анализа (например, проверка паролей по базам утечек).
  • Батч-камера — в фотографии режим съёмки серии кадров подряд.

Смежные понятия

ПонятиеОбластьСуть
Batch processingОСПакетное выполнение заданий без участия пользователя
Mini-batchMLПодмножество данных для одного шага обучения
Draw call batching3D-графикаОбъединение объектов в один вызов отрисовки
Batch fileОССкрипт пакетного запуска команд
Bulk insertБазы данныхМассовая вставка строк одним запросом

История

Термин «batch» пришёл из промышленности, где означал партию изделий, обрабатываемых на конвейере. В вычислительной технике он закрепился в 1960-е годы с появлением пакетных систем обработки данных, когда ЭВМ стоили слишком дорого, чтобы работать в интерактивном режиме, и задания накапливались в очередь. С развитием персональных компьютеров и интерактивных систем значение термина расширилось: сегодня «батч» означает прежде всего способ оптимизации обработки — объединение операций в группу для снижения накладных расходов.

Источники

  • Классические учебники по базам данных (C. J. Date, «An Introduction to Database Systems»)
  • Документация JDBC (Oracle)
  • Документация PyTorch (torch.utils.data.DataLoader) и TensorFlow (tf.data)
  • IBM z/OS documentation по batch processing
  • «Deep Learning» (Ian Goodfellow, Yoshua Bengio, Aaron Courville), глава о мини-батч-оптимизации
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru