ММООЗЗГГ.ru

Словарь ИИ

Что такое батч

Коротко

Батч это порция обучающих примеров, по которой модель за один шаг считает ошибку и обновляет свои веса.

Машинное обучение · batch

Михаил МозгПроверено: 1 минута чтения

Ребенку

Представь, что тебе надо перенести в комнату целую гору кубиков. По одному кубику носить долго, а всю гору сразу не поднять. Поэтому ты берешь в руки горсть, относишь и возвращаешься за следующей. Компьютер тоже учится горстями примеров: смотрит на небольшую кучку, чуть-чуть исправляется и берет новую. Такая горсть и называется батчем.

Простыми словами

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

Для бизнеса

Размер батча определяет, какое железо нужно для обучения или дообучения модели и сколько времени оно займет. Крупная порция требует больше видеопамяти, зато загружает видеокарты полностью и сокращает число шагов. В исследовании 2017 года модель распознавания изображений обучили за 1 час на 256 видеокартах с порцией 8192 картинки и без потери точности, но для этого пришлось менять скорость обучения по особому правилу. Для компании вывод практический: если подрядчик предлагает купить сервер под дообучение, спросите, какой размер порции он заложил и сравнивал ли качество на меньших. Иногда скромная видеокарта с маленькими порциями дает тот же результат дешевле, просто дольше.

Для специалиста

Батч (batch, mini-batch) это подмножество обучающей выборки, по которому вычисляют оценку градиента функции потерь на одном шаге оптимизации. Размер (batch size) задает компромисс: малые дают шумный градиент и больше шагов на эпоху, большие точнее оценивают градиент и полнее загружают GPU, но требуют больше памяти. Keskar и соавторы (ICLR 2017) показали, что обучение крупными порциями склонно сходиться к острым минимумам (sharp minima) и хуже обобщает, а мелкие за счет шума находят плоские. Masters и Luschi (2018) получали наиболее высокое качество при размере мини-батча от 2 до 32. Goyal и соавторы (2017) сохранили точность при размере 8192 благодаря линейному масштабированию скорости обучения и разогреву (warmup). Если нужная порция не помещается в память, используют накопление градиентов (gradient accumulation). От этого размера зависит и статистика пакетной нормализации (batch normalization), которую Ioffe и Szegedy описали в 2015 году.

Не путать. Не путать с пакетной обработкой запросов (batch API), когда готовая модель разом отвечает на накопленные запросы, а не учится.

Пример

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

Связанные термины

Вопросы и ответы

Какой размер батча выбрать?

Начинают с размера, который помещается в память видеокарты, например 16 или 32 примера. Затем сравнивают качество на проверочных данных: слишком крупная порция может ухудшить обобщение, слишком мелкая замедляет обучение.

Чем батч отличается от эпохи?

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

Источники

Где это применяют в компании

Не уверены, нужно ли это вашей компании?

Карта ИИ-решений
Написать в Telegram