FunSearch (названный так потому, что он ищет математические функции, а не потому, что это весело) продолжает серию открытий в фундаментальной математике и информатике, которые DeepMind сделал с помощью искусственного интеллекта. Сначала компания AlphaTensor нашла способ ускорить вычисления во многих различных видах кода, побив 50-летний рекорд. Затем AlphaDev нашла способы заставить ключевые алгоритмы, используемые триллионы раз в день, работать быстрее.
Однако эти инструменты не использовали большие языковые модели. Оба приложения, созданные на основе игрового искусственного интеллекта AlphaZero от DeepMind, решали математические задачи, рассматривая их так, как если бы они были головоломками в го или шахматах. Проблема в том, что они застряли на своем месте, говорит Бернардино Ромера-Паредес, исследователь компании, работавший и над AlphaTensor, и над FunSearch: «AlphaTensor отлично справляется с умножением матриц, но, по сути, ничем больше».
FunSearch использует другой подход. Он сочетает в себе большую языковую модель под названием Codey, версию PaLM 2 от Google, которая точно настроена на компьютерный код, с другими системами, которые отклоняют неправильные или бессмысленные ответы и снова подключают хорошие.
«Честно говоря, у нас есть гипотезы, но мы не знаем точно, почему это работает», — говорит Альхуссейн Фаузи, научный сотрудник Google DeepMind. «В начале проекта мы не знали, сработает ли это вообще».
Исследователи начали с наброска проблемы, которую они хотели решить с помощью Python, популярного языка программирования. Но они исключили из программы строки, описывающие, как ее решить. Вот тут-то и приходит на помощь FunSearch. Он заставляет Коди заполнять пробелы — по сути, предлагать код, который решит проблему.
Затем второй алгоритм проверяет и оценивает то, что приходит Коди. Лучшие предложения — даже если они еще не верны — сохраняются и возвращаются Коди, который пытается завершить программу еще раз. «Многие из них будут бессмысленными, некоторые — разумными, а некоторые — по-настоящему вдохновленными», — говорит Кохли. «Вы берете те, которые действительно вдохновлены, и говорите: «Хорошо, возьмите эти и повторите».
После пары миллионов предложений и нескольких десятков повторений всего процесса, что заняло несколько дней, FunSearch смог придумать код, который дал правильное и ранее неизвестное решение проблемы ограничения набора, которая включает в себя поиск наибольшего размера. набора определенного типа. Представьте себе, что вы рисуете точки на миллиметровой бумаге. Проблема с набором ограничений подобна попытке выяснить, сколько точек вы можете поставить так, чтобы три из них никогда не образовали прямую линию.
Это суперниша, но важная. Математики не пришли к единому мнению даже о том, как ее решить, не говоря уже о том, какое это решение. (Это также связано с умножением матриц — вычислениями, которые AlphaTensor нашел способ ускорить.) Теренс Тао из Калифорнийского университета в Лос-Анджелесе, получивший множество высших наград в области математики, в том числе медаль Филдса, называемую Проблема с набором ограничений «возможно, мой любимый открытый вопрос» в 2007 году Сообщение блога.