Большинство людей, пользующихся ИИ-инструментами, не задумывается о том, что стоит за их созданием. А там – огромные вычислительные ресурсы, сложная инженерия и постоянная борьба за эффективность. Одним из ключевых инструментов в этой борьбе является DeepSpeed – библиотека, разработанная Microsoft специально для обучения больших нейронных сетей. Недавно она получила два заметных обновления, каждое из которых касается аспектов, ранее представлявших серьёзные ограничения.
Почему обучать сложные модели так непросто
Когда речь идёт о современных ИИ-системах, всё чаще имеются в виду мультимодальные модели – те, что умеют работать сразу с несколькими типами данных: текстом, изображениями, аудио. Проще говоря, это модели, которые не просто читают текст, но и «видят» картинки или «слышат» звук.
Такие модели устроены сложнее обычных: внутри них несколько отдельных компонентов, каждый из которых отвечает за свой тип данных. Именно здесь начинались трудности при обучении. Дело в том, что стандартный процесс обучения нейросети предполагает так называемый обратный проход – момент, когда модель «учится» на своих ошибках и корректирует параметры. Технически этот шаг должен принимать на вход одно конкретное число – скалярное значение потерь.
Но в мультимодальных моделях всё не так просто. Там может быть несколько источников ошибок – по одному на каждый компонент. Прежде DeepSpeed не умел корректно с этим работать. Разработчики сталкивались с ограничениями: либо приходилось искать обходные пути, либо смиряться с тем, что библиотека не поддерживает нужный сценарий.
Первое обновление: обратный проход теперь работает как нужно
Новая версия DeepSpeed решает эту проблему напрямую. Теперь обратный проход поддерживает не только стандартный сценарий с одним числом, но и более сложные случаи – в том числе когда в него передаётся не одно значение, а несколько, или когда вычисления устроены иначе.
Важная деталь: разработчики сделали новый интерфейс идентичным тому, что используется в PyTorch – одном из самых популярных инструментов для работы с нейросетями. Это принципиальный момент. Если API совпадает с привычным, то переход на DeepSpeed не требует переписывать код с нуля. Можно взять существующий проект и просто подключить оптимизации – почти без правок.
Для команд, разрабатывающих мультимодальные системы, это означает, что барьер для использования DeepSpeed заметно снизился. Раньше нужно было либо адаптировать свой код под ограничения библиотеки, либо отказываться от её преимуществ. Теперь такого выбора нет.
Память – ресурс, которого всегда не хватает
Второе обновление касается другой хронической проблемы – памяти. Обучение больших моделей требует колоссального объёма оперативной памяти видеокарт. Даже при наличии мощного оборудования её постоянно не хватает: либо модель не помещается целиком, либо приходится уменьшать размер обучающих данных, что замедляет процесс.
Один из способов справиться с этим – хранить веса модели в менее точном числовом формате. Если коротко: числа в компьютере могут быть записаны с разной степенью детализации. Стандартный вариант занимает больше места, но обеспечивает высокую точность. Менее точный формат занимает меньше памяти, и в большинстве случаев это не сильно влияет на качество результата.
DeepSpeed теперь поддерживает режим, при котором параметры модели хранятся в таком «облегчённом» формате. Это позволяет либо запустить более крупную модель на том же оборудовании, либо использовать больше данных за один шаг обучения – что в итоге ускоряет весь процесс.
Что это значит на практике
Оба обновления решают реальные проблемы, с которыми сталкиваются люди, занимающиеся обучением моделей. Но важно понимать: они не делают обучение ИИ простым занятием для всех – это по-прежнему сложная и дорогостоящая задача. Речь идёт о том, чтобы устранить конкретные технические барьеры, мешавшие эффективно работать.
Для тех, кто строит мультимодальные системы – а таких проектов становится всё больше – это заметное облегчение. Меньше обходных решений, меньше адаптации, больше совместимости с уже написанным кодом.
Для тех, кто сталкивается с ограничениями памяти – а это практически все, кто работает с большими моделями – появляется дополнительный инструмент, позволяющий выжать больше из имеющегося оборудования.
Ни одно из этих обновлений не меняет правила игры одномоментно. Но в совокупности они делают DeepSpeed более универсальным инструментом, лучше соответствующим тому, как устроены современные ИИ-проекты.