Обучение больших языковых моделей – процесс затратный. Речь не только о деньгах, но и о времени, энергии, а также углеродном следе. Поэтому любая оптимизация, позволяющая ускорить обучение без потери качества, становится важной находкой для индустрии.
Команда AI21 Labs опубликовала исследование, в котором показала: можно сократить время обучения языковых моделей примерно на 25%, просто изменив способ упаковки данных в батчи. Подход назвали padding minimization – минимизация заполнителей. Звучит технически сложно, но суть проста.
В чём проблема с обычным подходом
Когда модель учится, данные подаются порциями – батчами. Проблема заключается в том, что тексты имеют разную длину: одно предложение может состоять из пяти слов, другое – из пятидесяти. Но архитектура модели требует, чтобы все примеры в одном батче были одинаковой длины. Поэтому короткие тексты приходится искусственно дополнять пустыми токенами – это и есть padding (заполнение).
Сложность в том, что модель тратит вычислительные ресурсы на обработку этих пустых токенов. Она «читает» их, пропускает через все слои, обновляет веса, хотя никакой полезной информации в них нет. Чем больше заполнителей, тем больше железо работает впустую.
Обычно с этим борются простым способом: группируют тексты примерно одной длины в один батч. Если в батч попадают короткие примеры, заполнителей становится меньше. Если длинные – их тоже меньше, так как тексты близки по размеру. Это помогает, но результат остается не идеальным.
Что предложили в AI21 Labs
Исследователи решили пойти дальше. Вместо того чтобы просто группировать тексты по длине, они стали искать оптимальное сочетание фрагментов в каждом батче так, чтобы суммарное количество заполнителей было минимальным.
Проще говоря, задача формулируется так: есть набор текстов разной длины и фиксированный размер батча. Нужно подобрать такую комбинацию текстов, чтобы они максимально плотно упаковались – как в «Тетрисе», где нужно избегать пустот.
Для этого команда разработала алгоритм, который работает быстро и не требует изменений в самой модели. Он универсален: его можно применить к любой архитектуре – GPT, LLaMA или BERT. Отсюда и определение в оригинальной публикации – model-agnostic, то есть не зависящий от конкретной модели.
Как это работает на практике
AI21 Labs протестировали подход при обучении модели с 1,5 миллиарда параметров. Использовались стандартные датасеты, на которых обычно обучают языковые модели. Результат: время обучения сократилось примерно на 25%.
При этом качество модели не пострадало. На тестовых задачах она показала те же результаты, что и модель, обученная обычным способом. Это решение без компромиссов: та же точность, но быстрее.
Важно, что ускорение достигается не за счёт хитрых трюков с архитектурой или потери точности вычислений. Просто модель перестаёт тратить время на обработку пустоты. Звучит очевидно, но до сих пор этого никто не делал настолько последовательно.
Почему это важно
Обучение больших моделей – одна из самых дорогих операций в современном машинном обучении. Крупные нейросети могут обучаться неделями или месяцами на тысячах GPU. Сокращение времени на четверть – это не просто удобство, а реальная экономия ресурсов.
Для исследовательских лабораторий это означает возможность проводить больше экспериментов за то же время. Для компаний – снижение затрат на инфраструктуру. Для индустрии в целом – сокращение энергопотребления и углеродного следа.
Кроме того, подход универсален. Его можно применить к любой модели на любом этапе обучения и с любыми данными. Не нужно переписывать код или менять архитектуру. Достаточно изменить способ формирования батчей – и готово.
Что дальше
В AI21 Labs не уточнили, планируют ли они выкладывать код в открытый доступ, но сама идея достаточно прозрачна для воспроизведения. Вероятно, в ближайшее время появятся реализации от сообщества.
Интересно, что подобные оптимизации часто остаются в тени. О них не пишут громкие заголовки, они не меняют парадигму работы с моделями. Но именно такие улучшения – небольшие, технические и почти незаметные – в сумме делают обучение моделей доступнее и эффективнее.
Возможно, через несколько лет минимизация заполнителей станет стандартной практикой. И тогда мы будем удивляться, как обходились без неё раньше – примерно так же, как сейчас удивляемся, что когда-то модели обучались без смешанной точности (mixed precision) или градиентного чекпоинтинга (gradient checkpointing).