Jun 13, 2024
Теперь мы можем обучать большие нейронные сети на небольших устройствах
Гаджеты вокруг нас постоянно изучают нашу жизнь. Умные часы отслеживают наши жизненные показатели и отслеживают наше здоровье. Домашние колонки слушают наши разговоры, чтобы распознавать наши голоса.
Гаджеты вокруг нас постоянно изучают нашу жизнь. Умные часы отслеживают наши жизненные показатели и отслеживают наше здоровье. Домашние колонки слушают наши разговоры, чтобы распознавать наши голоса. Смартфоны играют в грамматик, наблюдая за тем, что мы пишем, чтобы исправить наши уникальные опечатки. Мы ценим эти удобства, но информация, которую мы передаем с помощью наших гаджетов, не всегда хранится между нами и нашими электронными устройствами. Для машинного обучения может потребоваться тяжелое оборудование, поэтому «периферийные» устройства, такие как телефоны, часто отправляют необработанные данные на центральные серверы, которые затем возвращают обученные алгоритмы. Некоторые люди хотели бы, чтобы такое обучение проводилось на местном уровне. Новый метод обучения ИИ расширяет возможности обучения небольших устройств, потенциально помогая сохранить конфиденциальность.
Самые мощные системы машинного обучения используют нейронные сети — сложные функции, наполненные настраиваемыми параметрами. Во время обучения сеть получает входные данные (например, набор пикселей), генерирует выходные данные (например, метку «кошка»), сравнивает свои выходные данные с правильным ответом и корректирует свои параметры, чтобы в следующий раз добиться большего. Чтобы знать, как настроить каждый из этих внутренних регуляторов, сети необходимо запомнить эффект каждого из них, но их число обычно исчисляется миллионами или даже миллиардами. Это требует много памяти. Обучение нейронной сети может потребовать в сотни раз больше памяти, чем требуется при простом ее использовании (также называемом «выводом»). В последнем случае памяти позволяется забыть, что сделал каждый уровень сети, как только она передает информацию на следующий уровень.
Чтобы уменьшить объем памяти, необходимый на этапе обучения, исследователи применили несколько приемов. В одном из них, называемом подкачкой или разгрузкой, машина перемещает эти активации из кратковременной памяти в более медленный, но более обширный тип памяти, такой как флэш-память или SD-карта, а затем возвращает их, когда это необходимо. В другом варианте, называемом рематериализацией, машина удаляет активации, а затем позже вычисляет их снова. Раньше системы сокращения памяти использовали один из этих двух приемов, или, как говорит Шишир Патил, ученый-компьютерщик из Калифорнийского университета в Беркли и ведущий автор статьи, описывающей инновацию, они были объединены с помощью «эвристики», которая « неоптимальный», часто требующий много энергии. Нововведение, о котором сообщили Патил и его коллеги, формализует сочетание пейджинга и рематериализации.
«Возьмем эти два метода, хорошо объединим их в задачу оптимизации, а затем решим ее — это действительно здорово», — говорит Цзяси Чен, ученый-компьютерщик из Калифорнийского университета в Риверсайде, который занимается периферийными вычислениями, но не участвовал в работа.
В июле Патил представил свою систему под названием POET (частное оптимальное энергетическое обучение) на Международной конференции по машинному обучению в Балтиморе. Сначала он сообщает POET технические детали устройства и информацию об архитектуре нейронной сети, которую он хочет обучить. Он определяет бюджет памяти и бюджет времени. Затем он просит его создать тренировочный процесс, который сводит к минимуму потребление энергии. Процесс может решить выгрузить определенные активации, перевычисление которых было бы неэффективно, но повторно материализовать другие, которые легко переделать, но для хранения которых требуется много памяти.
Одним из ключей к прорыву было определение проблемы как головоломки смешанного целочисленного линейного программирования (MILP), набора ограничений и отношений между переменными. Для каждого устройства и сетевой архитектуры POET подключает свои переменные в программу MILP, созданную вручную Патилом, а затем находит оптимальное решение. «Основная задача — правильно сформулировать задачу, чтобы ее можно было ввести в решатель», — говорит Чен. «Итак, вы фиксируете всю реалистичную системную динамику, такую как энергия, задержка и память».
Команда протестировала POET на четырех разных процессорах, объем оперативной памяти которых варьировался от 32 КБ до 8 ГБ. На каждой из них исследователи обучили три разные архитектуры нейронных сетей: два типа, популярные в распознавании изображений (VGG16 и ResNet-18), а также популярную сеть языковой обработки (BERT). Во многих тестах система смогла сократить использование памяти примерно на 80 процентов без значительного увеличения энергопотребления. Сопоставимые методы не могут делать и то, и другое одновременно. По словам Патила, исследование показало, что BERT теперь можно обучать на самых маленьких устройствах, что раньше было невозможно.