banner

Новости

May 28, 2023

Игра Google DeepMind

Алгоритмы, созданные ИИ, уже используются миллионами разработчиков.

Серия открытий DeepMind в области фундаментальной информатики продолжается. В прошлом году компания использовала версию своего игрового искусственного интеллекта AlphaZero, чтобы найти новые способы ускорить расчеты важнейших математических вычислений, лежащих в основе множества различных видов кода, побив рекорд 50-летней давности.

Теперь он проделал тот же трюк снова — дважды. Используя новую версию AlphaZero под названием AlphaDev, британская фирма (недавно переименованная в Google DeepMind после слияния с лабораторией искусственного интеллекта дочерней компании в апреле) обнаружила способ сортировки элементов в списке на 70 % быстрее, чем лучшие существующие методы. метод.

Он также нашел способ ускорить ключевой алгоритм, используемый в криптографии, на 30%. Эти алгоритмы являются одними из наиболее распространенных строительных блоков программного обеспечения. Небольшое ускорение может иметь огромное значение, сокращая расходы и экономя энергию.

Новая версия AlphaZero обнаружила более быстрый способ умножения матриц — основной проблемы вычислений, которая затрагивает тысячи повседневных компьютерных задач.

«Закон Мура подходит к концу, когда чипы приближаются к своим фундаментальным физическим пределам», — говорит Дэниел Манковиц, научный сотрудник Google DeepMind. «Нам необходимо найти новые и инновационные способы оптимизации вычислений».

«Это интересный новый подход», — говорит Питер Сандерс, который изучает разработку и реализацию эффективных алгоритмов в Технологическом институте Карлсруэ в Германии и не участвовал в этой работе. «Сортировка по-прежнему остается одной из наиболее широко используемых подпрограмм в вычислительной технике», — говорит он.

DeepMind опубликовал сегодня свои результаты в журнале Nature. Но методы, открытые AlphaDev, уже используются миллионами разработчиков программного обеспечения. В январе 2022 года DeepMind представила свои новые алгоритмы сортировки организации, которая управляет C++, одним из самых популярных языков программирования в мире, и после двух месяцев тщательной независимой проверки алгоритмы AlphaDev были добавлены в этот язык. Это было первое изменение в алгоритмах сортировки C++ за более чем десятилетие и первое обновление, в котором использовался алгоритм, открытый с помощью ИИ.

DeepMind добавила другие свои новые алгоритмы в Abseil, коллекцию готовых алгоритмов C++ с открытым исходным кодом, которые может использовать любой, кто пишет код на C++. Эти алгоритмы шифрования вычисляют числа, называемые хэшами, которые можно использовать в качестве уникальных идентификаторов для любого типа данных. По оценкам DeepMind, ее новые алгоритмы сейчас используются триллионы раз в день.

AlphaDev построен на основе AlphaZero, модели обучения с подкреплением, которую DeepMind обучила для освоения таких игр, как го и шахматы. Прорыв DeepMind заключался в том, что он решил проблему поиска более быстрого алгоритма как игру, а затем заставил свой ИИ победить в ней — тот же метод, который он использовал для ускорения вычислений в прошлогоднем исследовании.

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

DeepMind решила работать с ассемблером — языком программирования, который можно использовать для предоставления конкретных инструкций по перемещению чисел на компьютерном чипе. Мало кто пишет на ассемблере; это язык, на который транслируется код, написанный на таких языках, как C++, перед его запуском. Преимущество ассемблера заключается в том, что он позволяет разбивать алгоритмы на мелкие этапы — хорошая отправная точка, если вы ищете ярлыки.

Компьютерные чипы имеют разные слоты, в которые помещаются и обрабатываются числа. Сборка включает в себя базовые инструкции по управлению тем, что находится в этих слотах, например mov(A,B), которая сообщает компьютеру переместить число, находящееся в слоте A, в слот B, и cmp(A,B), которая говорит компьютеру проверить, то, что находится в слоте A, меньше, равно или больше того, что находится в слоте B. Длинные последовательности таких инструкций могут выполнять все, что делают компьютеры.

ДЕЛИТЬСЯ