Когда мы говорим о современных разработках в области нейросетей и машинного обучения, то первое имя, которое приходит на ум — это Андрей Карпаты. Молодой словак быстро стал звездой в данной области и одним из главных авторитетов по части конкретного программирования систем. Это тот человек, который обучал Джона Кармака, в частности.
Андрей Карпаты — сооснователь компании OpenAI (GPT-4, ChatGPT) и ведущий разработчик автопилота Tesla. Впрочем, из «Теслы» он недавно ушёл по очевидной причине: есть вероятность, что человечество стоит на пороге грандиозного открытия, с которым ничто не сравнится по важности — оно разделит историю нашего вида на до и после сингулярности. Речь идёт об AGI, то есть ИИ общего назначения. Если так, то сейчас нет смысла работать больше ни над чем.
▍ Карьера и проекты
Андрей Карпаты родился в Братиславе (Словакия) в 1986 году и эмигрировал в Канаду в возрасте 15 лет.
В 2009 году завершил обучение в университете Торонто (информатика/физика + математика), в 2011-м — аспирантуру в университете Британской Колумбии (машинное обучение для робототехники), а в 2015 году защитил диссертацию, посвящённую конволюционным/рекуррентным нейронным сетям и их применению в компьютерном зрении, обработке естественного языка и их пересечении.
Разработал и стал основным лектором первого курса по глубокому обучению в Стэнфордском университете — CS 231n: «Конволюционные нейронные сети для распознавания образов». С годами этот класс стал из самых больших в Стэнфорде, а в первые годы вообще рос в геометрической прогрессии: 150 студентов в 2015 году, 330 в 2016-м, 750 в 2017-м.
Попутно Андрей прошёл три стажировки в Google Brain в 2011 году (самообучение нейросети по видеоматериалам), затем в Google Research в 2013 году (обучение с учителем по видеоматериалам YouTube) и в DeepMind в 2015 году (глубокое обучение с подкреплением).
В 2015 году стал сооснователем научной лаборатории OpenAI, которая сейчас известна всему миру благодаря генератору изображений DALL-E, большой языковой модели GPT-4 (вышла 14 марта 2023 года) и чат-боту ChatGPT, который работает на этой модели.
Оригинальная модель GPT, иллюстрация из научной статьи от 11 июня 2018 года
Изначально OpenAI планировалась как некоммерческая организация, которая будет «свободно сотрудничать» с университетами и исследователями со всего мира. Однако в 2019 году для некоммерческой корпорации была зарегистрирована коммерческая дочерняя компания OpenAI Limited Partnership (OpenAI LP) с ограничением на 100-кратный максимальный размер прибыли.
Впрочем, к тому времени из организации уже ушли двое сооснователей: Илон Маск и Андрей Карпаты (в 2017-м). Первый сослался на конфликт интересов в связи с разработкой автопилота Tesla, а второй перешёл на работу как раз в Tesla в качестве ведущего разработчика этого автопилота, над которым и трудился шесть лет, с перспективой создания полностью автономной системы Full Self-Driving.
После шестилетнего напряжённого труда Андрей ушёл в саббатикал, уволился из Tesla, а последние полгода занимался только записью обучающих видеороликов на YouTube по созданию нейросетей, с пошаговыми инструкциями и фрагментами исходного кода на Github (эти видеоролики с примерами рекомендуются всем начинающим).
В рамках этой обучающей активности в начале 2023 года Андрей выложил в опенсорс NanoGPT — максимально простой код (300 строк
train.py
и 300 строк model.py
) для обучения/настройки GPT среднего размера. Код написан на основе minGPT в обучающих целях, чтобы любой мог обучить нейросеть с нуля на приемлемом оборудовании. Всё предельно понятно (с пошаговыми инструкциями на видео). В частности, текущий train.py
воспроизводит GPT-2 (124 млн) с OpenWebText на одном узле 8XA100 40GB всего за четыре дня обучения.В феврале 2023 года Карпаты объявил о возвращении в OpenAI.
«Я присоединяюсь к OpenAI (снова :)). Как и многих других людей из сферы ИИ и за её пределами, меня очень вдохновляет влияние их работы, и я лично получил от неё большую пользу. Потенциал будущего особенно интересен; мне очень приятно снова влиться в работу и присоединиться к разработке», — написал Андрей.
Таким образом, он снова вернулся в научную лабораторию, где трудился в 2015–2017 гг.
▍ Software 2.0. Непонятный софт будущего
Перед уходом из OpenAI в 2017 году Карпаты написал интересную статью Software 2.0, в которой рассказал об использовании нейросетей в программировании.
По его мнению, нейросети совершат фундаментальный сдвиг в разработке, позволив создавать принципиально более сложное ПО, недоступное для понимания человеку, как показано на иллюстрации ниже.
Классический стек Software 1.0 написан на понятных языках типа Python и C++. Он состоит из явных инструкций для компьютера, созданных программистом. Написав каждую строку кода, программист определяет конкретную точку в пространстве программы с некоторым желаемым поведением.
В отличие от этого, Software 2.0 будет написано на гораздо более абстрактном, недружественном человеку языке, например, в виде весов нейронной сети. Человек не будет принимать активного участия в написании кода, потому что весов очень много (в типичных сетях миллионы), а кодировать непосредственно в весах довольно сложно.
Программа будет выглядеть примерно таким образом (фрагмент):
Задача программиста заключается не столько в написании кода, сколько в определении некоторой желаемой цели поведения программы. Например, «удовлетворить набор пар примеров на входе и выходе» или «выиграть партию в Go». Программист устанавливает цели и создаёт грубый скелет кода (т. е. архитектуру нейронной сети), который определяет подмножество программного пространства для поиска, а дальше использовать имеющиеся в его распоряжении вычислительные ресурсы для поиска в этом пространстве программы, которая работает.
«В случае нейросетей мы ограничиваем поиск непрерывным подмножеством программного пространства, где процесс поиска может быть сделан (что несколько удивительно) эффективным с помощью обратного распространения и стохастического градиентного спуска», — пишет Карпаты.
Таким образом, Software 1.0 есть исходный код, написанный человеком (например, несколько файлов
.cpp
), который компилируется в двоичный файл, выполняющий полезную работу. В Software 2.0 исходный код состоит из:
- Набора данных, который определяет желаемое поведение.
- Архитектуры нейронной сети, которая даёт грубый скелет кода, но с множеством деталей (весов), которые необходимо заполнить.
В процессе обучения нейросети набор данных преобразуется в бинарную конечную нейросеть. В большинстве практических приложений архитектуры нейросетей и системы обучения станут стандартизированным товаром, поэтому большая часть «разработки» примет форму «курирования, выращивания, массирования и очистки помеченных наборов данных».
Это в корне меняет парадигму программирования, с помощью которой мы итеративно разрабатываем наше программное обеспечение. По мнению Карпаты, команды разработчиков разделяется на две группы:
- программисты 2.0 (специалисты по маркировке данных) редактируют и расширяют наборы данных;
- несколько программистов 1.0 поддерживают и итеративно разрабатывают окружающую инфраструктуру кода обучения, аналитику, визуализации и интерфейсы маркировки.
Программное обеспечение (1.0) пожирает мир, а теперь ИИ (2.0) пожирает программное обеспечение.
Переход с 1.0 на 2.0 мы сейчас видим во многих отраслях, где начинают активно применяться нейросети.
В недавнем посте «Глубокие нейросети 33 года назад и 33 года спустя» Карпаты экстраполировал развитие нейросетей с 1989 до 2055-го. Он предложил посмотреть на нейросети 1989 года с крошечными датасетами и представить, что точно так же будущие исследователи будут смотреть на нейросети 2023 года. Они будут казаться игрушечными и обучаться за одну минуту на личном ПК или смартфоне.
Датасеты станут примерно в 10 миллионов раз больше, чем у наших детских экспериментов типа GPT-4 или GPT-5, которую некоторые нетерпеливые инвесторы уже сравнивают с AGI.
Даже если архитектура нейросетей остаётся примерно такой же, увеличение количества параметров даёт качественный результат в функционировании моделей. Например, мозг человека и мозг мушки-дрозофилы функционально отличаются благодаря большой разнице в количестве нейронов (86 млрд и 100 тыс., соответственно) и связей между ними. В то же время сам механизм работы отдельных нейронов у человека и дрозофилы примерно одинаков.
Коннектом мозга дрозофилы
Несложно посчитать, что количественная разница между мозгом дрозофилы и человека гораздо меньше (860 000×), чем между нейросетями 2022 и 2055 гг. (10 000 000×).
Андрей Карпаты считает, что в наиболее экстремальной экстраполяции через несколько десятилетий нам вообще не понадобится обучать новые нейросети:
«В 2055 году мы будем просить выросший в десять миллионов раз мегамозг нейронной сети выполнить какую-нибудь задачу, проговорив (или подумав) её на родном языке. И если вы попросите достаточно вежливо, он подчинится. Да, вы по-прежнему сможете обучать нейронные сети… но зачем это будет нужно?»
Послесловие. Согласно статистике Metaculus, ещё год назад средневзвешенный прогноз пользователей по сроку появления сильного ИИ приходился на 2043 год. Но в апреле 2022 года после появления новостей о будущей GPT-4 произошёл тектонический сдвиг вниз до 2028-го года. На данный момент техносообщество сдвинуло наиболее вероятный срок ввода в эксплуатацию AGI уже на май 2026 года. То есть у нас остались считаные месяцы (37)…
Судя по всему, технологии в этой области развиваются гораздо быстрее, чем предполагалось. Возможно, наши современники станут свидетелями самой важной революции в истории человечества. И не последняя роль в этом принадлежит разработчикам моделей для обучения нейросетей, в том числе Андрею Карпаты.
Если когда-нибудь сбудется сюжет фильма «Терминатор» и будущие поколения пришлют в прошлое машину, чтобы изменить историю, то именно Андрей может стать главной целью для этой машины.
-
Джастин Танни
-
Джей Фриман (saurik)
-
Михал Залевски
- Джон Кармак: 1, 2
-
Марк Руссинович
- Юрки Алакуйяла
Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх ????️
Комментарии (25)
Alexeyslav
10.04.2023 13:58Это будет не софт в общем понимании, скорее системы решения проблем. Причем рационально их использовать будет только в таких областях где применимо творчество, в котором отдельные ошибки не играют судьбоносных ролей.
71rmn
10.04.2023 13:58-1разного софта уже понаписано много.
большая часть задач программистов - это комбинировать имеющиеся библиотеки и решать вопросы где оно плохо стыкуется.
на мой взгляд - эти задачи вполне поддаются статистике.
так что Software 2.0 - следующий прорыв в программном обеспечении (идея для стартапа если хотите) - сделает тот кто научит нейросеть складывать из блоков/библиотек/утилит новые решения.
для этого на мой взгляд потребуется:
0. модель нейросети обученная по SO, документации вендоров/библиотек и т.п. ресурсам;
1. инфраструктура - песочница на которой доступно необходимое ПО;
2. ресурсы для выполнения сгенерённого кода;
3. средства контроля результата (для контроля качества и обучения модели).что вместе выглядит как сложно/дорого/много, но вроде бы ничего нереального или несуществующего.
кто возьмётся пилить стартап - за идею не благодарите
;-)
зовите на работу
denis-isaev
10.04.2023 13:58+17Когда в Windows 13 калькулятор будет продуктом Software 2.0, все будут с умилением вспоминать как шустро работал Electron на десктопе и как мало памяти он требовал :)
crashoveride
10.04.2023 13:58Так оно только в процессе обучения кушает много, при работе только чуть чуть
denis-isaev
10.04.2023 13:58Сколько будет весить модель, умеющая считать то, что сейчас умеет калькулятор в Windows?
masai
10.04.2023 13:58Андрей Карпаты
Ка́рпати. Хоть Андрей и из Словакии, у него довольно распространённая венгерская фамилия, которую носит много известных людей (см., например, Википедию). На русском она обычно записывается с и на конце.
Ну хоть не Карпатый, как иногда пишут, и то ладно.
masai
10.04.2023 13:58Впрочем, к тому времени из организации уже ушли двое сооснователей: Илон Маск и Андрей Карпаты (в 2017-м). Первый сослался на конфликт интересов в связи с разработкой автопилота Tesla
Поговаривают, что Маск хотел заправлять всей компанией, но ему отказали, после чего он ушёл.
Megadeth77
10.04.2023 13:58+2Подумалось. Скоро чатбота не надо будет просить написать программу, что бы решить проблему. Достаточно будет просто попросить решить саму проблему.
vin2809
10.04.2023 13:58+1А надо ли нам это (очередной решатель)?
Ведь один из вариантов решения может быть и такой: нет просителя - нет проблемы.
peterjohnsons
10.04.2023 13:58У ИИ "мозги" не ленивые как у людей, им не надо калории сберегать и избегать лишней мозговой активности. Поэтому решение проблем не является проблемой )
tvaishim
10.04.2023 13:58+2Только до тех пор пока ИИ не поймет что электричество и машиночасы можно сберечь и/или потратить на другую задачу.
peterjohnsons
10.04.2023 13:58Представляю как в будущем типичный софт будет "рендерится" в облаке некой AGI моделью, которая будет выполнять роль backend-а. Где её контекст памяти будет выступать памятью приложения а она будет интерпретировать действия приходящие с GUI и обновлять его соответственно. А приложения будем писать текстовым ТЗ, с минимальными уточнениями, поскольку AGI уже будут известны все сопутствующие требования для подобных приложений.
PenF00k
10.04.2023 13:58+4Вместе с ростом сложности системы будет увеличиваться и сложность ее описания, причем аналитически можно лучше охватить все возможные ее состояния.
Попробуйте описать все возможные корнер кейсы для любого более менее большого продукта, там их будут миллионы, плюс всякие внешние интеграции, когда может упасть что угодно по любой непонятной причине.
Если человек не может понять систему, которую ему нужно сделать, то он ее не сделает, имхо.
Это будет бесконечный цикл дополнительных ограничений, которыми нужно дополнять результат работы нс.
Это как wysiwyg редактор против верстки профессионала: можно что-то сделать, что непонятно как работает, и не имеет пространства для изменения и масштабирования.
peterjohnsons
10.04.2023 13:58-1Дело в том, что продвинутый AGI сделает это за вас, будет знать все возможные корнер кейсы и даже сможет их просимулировать в своем "воображении". То что вы ChatGPT или GPT-4 тыкаете носом в проблемные места, не означает, что в будущем будет так же. В идеале ИИ должен предугадывать мысли и намёки и думать на несколько шагов дальше чем человек. И это он будет тыкать вас, но это еще впереди.
PenF00k
10.04.2023 13:58+2Как же он узнает за вас, что вы хотите сделать, если вы сами этого не знаете? :)
Upd: в "Автостопом по галактике" был вопрос о жизни, вселенной и всём таком, а ответ на него был 42. Провидел Дуглас Адамс.
peterjohnsons
10.04.2023 13:58-1От нас надо будет только слепок "мыслеобраза" или на худой конец текстового описания, не обязательно детализированного. Всё остальное он придумает, протестирует за вас, потому что намного глубже будет знать контекст предметной области и его ньюансы. Сингулярность она такая, людям сейчас тяжело осознать.
AZelentsov
10.04.2023 13:58-1“Если появление всемогущего искусственного интеллекта неизбежно, что ж, само собой разумеется, что, когда они придут к власти, наши цифровые повелители накажут тех из нас, кто не помог им достичь этого." (c) Gilfoyle
event1
10.04.2023 13:58+1Андрей Карпаты — сооснователь компании OpenAI (GPT-4, ChatGPT) и ведущий разработчик автопилота Tesla. Впрочем, из «Теслы» он недавно ушёл по очевидной причине: есть вероятность, что человечество стоит на пороге грандиозного открытия, с которым ничто не сравнится по важности — оно разделит историю нашего вида на до и после сингулярности. Речь идёт об AGI, то есть ИИ общего назначения
Возможно всё куда банальней: с автопилотом Тесла ничего не вышло, гражданин расстроился, отдохнул годик и пришёл в OpenAI вслед за хайпом и инвесторами. А теперь вопрос знатокам, если лучший в мире обучатель нейросетей не смог обучить автомобиль ездить не хуже человека, каковы шансы, что он же сможет создать искина-программиста? При том, что, очевидно, водить машину проще, чем программировать.
Groramar
10.04.2023 13:58Водить машину проще благодаря миллиардам лет эволюции. Если бы навык требовал обучения полностью с нуля, то не было бы шансов за одну человеческую жизнь обучится
event1
10.04.2023 13:58Естественно, да. Но очевидно, что водить машину куда проще чем думать вообще. И программировать, в частности. В значительной степени, вождение автомобиля происходит на рефлексах. То есть используется более простая форма мозговой активности, по сравнению с сознательными рассуждениями.
В связи с этим, кажется очевидным, что обучить компьютер водить машину проще чем сознательно рассуждать. Однако, мы наблюдаем что граждане уже довольно много лет не могут решить более простую задачу, а тут вдруг рассказывают, что вот-вот решат более сложную
miga
10.04.2023 13:58+1О да, еще больше сраного софта, который никто не понимает, как работает - это именно то, что нужно индустрии в данный момент.
makariyp
Далеко не во всех сферах сгодится Software 2.0 с непредсказуемыми багами и результатами. Там, где четкое ТЗ и нужна высокая точность еще долго будет актуально Software 1.0
Zalexei
А сейчас нет багов? Будут такие же сложные системы самотестирования, состоящие из других нейронок, которые так же надо будет тестировать.