Группа исследователей из Google DeepMind разработала систему обучения с подкреплением, которая может создавать оптимизированные алгоритмы без предварительного обучения на примерах человеческого кода. Система называется AlphaDev и использует тот же подход, что и знаменитая AlphaGo, которая учится играть в игры, такие как Го, покер и StarCraft. Она рассматривает программирование как игру, в которой нужно минимизировать задержку кода при сохранении его корректности.
AlphaDev смогла сгенерировать новые алгоритмы для таких фундаментальных задач компьютерной науки, как сортировка и хеширование данных. Например, она создала алгоритм сортировки пяти элементов, который быстрее существующего человеческого кода на 70%. Эти алгоритмы были внесены в библиотеку C++ – первое изменение алгоритмов сортировки в этом языке за более чем десять лет. Также AlphaDev сгенерировала более быстрые алгоритмы хеширования, которые были добавлены в открытую базу данных программирования.
Результаты работы AlphaDev были опубликованы в журнале Nature. Авторы статьи утверждают, что их система может помочь оптимизировать компьютерный код в условиях физических ограничений микрочипов. Они также отмечают, что система пока работает только с небольшими программами и подмножеством возможных инструкций, поэтому ее масштабируемость и применимость к более сложным задачам остается открытым вопросом.