В 2023 году произошло событие, которое многие программисты сначала восприняли как маркетинговый шум.
Система AlphaDev от Google DeepMind нашла новые варианты алгоритмов сортировки — задачи, которую инженеры оптимизировали больше полувека.
Но через несколько месяцев выяснилось: найденный ИИ код действительно быстрее человеческих решений и уже встроен в стандартную библиотеку C++.
В некоторых сценариях ускорение достигало 70%. Для больших массивов данных выигрыш оказался скромнее — около 1.7%, — но даже это считается серьёзным результатом для настолько оптимизированной инфраструктуры.
Главное здесь даже не скорость.
AlphaDev показал другое: ИИ начал находить низкоуровневые алгоритмические решения там, где программисты десятилетиями считали пространство почти полностью исследованным.
Почему алгоритмы сортировки настолько важны
Сортировка — одна из фундаментальных операций вычислений.
Она используется:
- в поисковых системах;
- базах данных;
- браузерах;
- банковских транзакциях;
- игровых движках;
- системах рекомендаций;
- работе нейросетей.
Практически любой современный software постоянно сортирует данные.
Именно поэтому инженеры десятилетиями оптимизировали sort-функции вручную. Особенно тщательно — маленькие алгоритмы sort3, sort4 и sort5, которые используются внутри более крупных систем сортировки.
На первый взгляд кажется странным: зачем вообще улучшать сортировку трёх или пяти элементов?
Но современные алгоритмы работают рекурсивно. Большие массивы постоянно разбиваются на маленькие части. Поэтому короткие сортировки вызываются огромное количество раз. Даже минимальное ускорение начинает масштабироваться на уровне дата-центров.
Исследователи DeepMind оценивают, что подобные routines вызываются триллионы раз в день.
Именно поэтому задача считалась почти закрытой.
Инженеры LLVM, Intel и других компаний годами убирали лишние инструкции из assembly-кода. В некоторых случаях разница между версиями алгоритмов измерялась одной строкой ассемблера.
Как AlphaDev создаёт алгоритмы
AlphaDev основан на reinforcement learning — обучении с подкреплением. Это тот же подход, который DeepMind использовала в AlphaGo.
Но вместо шахматной доски ИИ получил пространство машинных инструкций.
Система собирала assembly-программы буквально по одной инструкции:
- сравнение;
- swap;
- перемещение данных;
- branchless-операции;
- работа с регистрами.
После каждой попытки AlphaDev получал «награду»:
- если программа сортировала данные правильно;
- если использовала меньше инструкций;
- если снижала latency;
- если лучше работала на современных CPU.
Большинство комбинаций оказывались бесполезными. Некоторые ломали программу полностью.
Но ИИ продолжал исследовать пространство решений — и начал находить необычные структуры, которые программисты раньше не использовали.
Ключевой момент: AlphaDev не просто ускорял существующий код. В ряде случаев система находила другую последовательность действий.
Например, для sort3 и sort5 ИИ смог сократить количество инструкций по сравнению с человеческими benchmark-решениями.
Что именно нашёл DeepMind
После публикации Nature многие СМИ написали, будто ИИ «изобрёл новую сортировку».
Это не совсем так.
AlphaDev не создал замену quicksort или mergesort. Речь шла о микрооптимизации коротких branchless sorting routines на уровне assembly.
Но именно это и делает результат важным.
Подобные алгоритмы изучаются десятилетиями. Их уже считали почти оптимальными. Некоторые инженеры были уверены, что улучшения там практически невозможны.
AlphaDev доказал обратное.
Особенно интересным оказался sort5. DeepMind нашла 43-instruction алгоритм, который оказался эффективнее существующих решений и позже был адаптирован в C++.
Исследователи также показали улучшения для:
- branchless sorting;
- VarInt deserialization;
- hashing routines.
В одном из тестов AlphaDev создал решение для VarInt, работавшее примерно в три раза быстрее человеческого benchmark-кода.
Почему программисты спорят об AlphaDev
После выхода исследования реакция разработчиков оказалась смешанной.
Часть инженеров назвала AlphaDev серьёзным прорывом в program synthesis. Другие посчитали работу скорее очень продвинутым superoptimizer, чем революцией computer science.
Главная причина споров — масштаб открытия.
Критики отмечали:
- AlphaDev оптимизировал очень маленькие routines;
- улучшения касались специальных случаев;
- речь не идёт о новой фундаментальной теории алгоритмов.
Некоторые исследователи позже даже опубликовали работу с ещё более короткими версиями sort3.
Но сторонники DeepMind отвечают иначе.
Даже минимальное ускорение инфраструктурного кода может давать огромный эффект на масштабе cloud-систем. Кроме того, важен сам факт: ИИ начал находить нетривиальные low-level решения в задачах, которые люди оптимизировали десятилетиями.
Именно это стало главным сигналом для индустрии.
Парадокс: многие разработчики спорят не о том, работает ли AlphaDev, а о том, насколько опасно признавать, что ИИ уже умеет улучшать человеческий код на фундаментальном уровне.
Что DeepMind встроил в libc++
Самая важная часть истории — не Nature и не PR вокруг DeepMind.
А то, что результаты реально внедрили.
Алгоритмы AlphaDev были reverse-engineered из assembly в C++ и интегрированы в LLVM libc++ sorting library.
Это одна из ключевых стандартных библиотек C++, используемая:
- браузерами;
- игровыми движками;
- enterprise-software;
- cloud-инфраструктурой;
- мобильными приложениями.
Причём в Nature отдельно подчёркивается: это первое изменение этих subroutines более чем за десятилетие.
То есть инженеры LLVM действительно сочли найденные ИИ решения достаточно ценными для production-среды.
Важно и другое.
DeepMind не просто «скормил» системе весь код интернета. AlphaDev работал на уровне machine instructions и самостоятельно исследовал пространство вариантов.
Для computer science это уже новый этап:
- автоматический поиск low-level optimization;
- AI-assisted compiler design;
- генерация инфраструктурного кода;
- автоматизация algorithm engineering.
Сможет ли ИИ заменить системных программистов
Пока — нет.
AlphaDev не умеет создавать большие архитектуры software. Он не проектирует операционные системы и не пишет сложные приложения целиком.
Но проект показал другое: ИИ начинает осваивать инженерные задачи, которые долго считались исключительно человеческой территорией.
Причём речь идёт не о генерации шаблонного кода, а о поиске эффективных алгоритмических структур.
Это намного важнее.
Сегодня такие системы оптимизируют:
- sort routines;
- hashing;
- serialization;
- memory operations.
Завтра они могут перейти к:
- компиляторам;
- GPU scheduling;
- распределённым вычислениям;
- AI accelerators;
- сетевой инфраструктуре.
Некоторые исследователи уже рассматривают AlphaDev как ранний пример AI-driven algorithm discovery.
Но массового вытеснения программистов пока не происходит.
Наоборот: чем сложнее становятся AI-системы, тем выше спрос на инженеров, которые понимают:
- архитектуру CPU;
- performance engineering;
- компиляторы;
- low-level optimization;
- проверку correctness.
ИИ пока отлично ищет варианты. Но ответственность за production-решения всё ещё несёт человек.
Почему AlphaDev важнее, чем кажется
История AlphaDev — не про сортировку пяти чисел.
Это первая публичная демонстрация того, что reinforcement learning способен искать новые low-level алгоритмы в пространствах, слишком больших для человеческого перебора.
Именно это делает проект важным.
На протяжении десятилетий software развивался в основном за счёт:
- роста мощности процессоров;
- новых архитектур;
- ручной оптимизации.
Теперь появляется ещё один фактор: автоматический алгоритмический поиск.
Пока улучшения измеряются процентами.
Но инфраструктурные вычисления работают в таких масштабах, где даже 1% становится огромной величиной:
- меньше latency;
- ниже энергопотребление;
- дешевле cloud-вычисления;
- эффективнее AI-сервера.
Именно поэтому вокруг AlphaDev оказалось столько внимания, несмотря на относительно небольшой размер самих алгоритмов.
Возможно, через несколько лет ИИ будет помогать создавать:
- компиляторы;
- криптографические routines;
- memory schedulers;
- networking stacks;
- системы для дата-центров.
И тогда главный вопрос изменится.
Не «может ли ИИ писать код».
А насколько глубоко он сможет участвовать в проектировании вычислительной инфраструктуры.
Коротко о главном
Термины
Reinforcement learning — обучение с подкреплением, где ИИ получает награду за успешные действия.
Branchless sorting — сортировка без условных переходов, уменьшающая задержки CPU.
LLVM libc++ — стандартная библиотека C++, используемая во множестве современных систем.
Latency — задержка выполнения операции на процессоре.
📚 Плейлист
📚 Книга: «Introduction to Algorithms» — фундамент алгоритмов и структур данных
📚 YouTube: Computerphile — объяснения sorting algorithms и CPU optimization
📚 Канал: Two Minute Papers — разбор AI-исследований простым языком
📚 Документальный цикл: «The Age of AI» — влияние ИИ на software-индустрию
📚 Книга: «Code» Чарльза Петцольда — как компьютеры работают на низком уровне