- PVSM.RU - https://www.pvsm.ru -
Когда мы говорим о современных разработках в области нейросетей и машинного обучения, то первое имя, которое приходит на ум — это Андрей Карпаты [1]. Молодой словак быстро стал звездой в данной области и одним из главных авторитетов по части конкретного программирования систем. Это тот человек, который обучал Джона Кармака [2], в частности.
Андрей Карпаты — сооснователь компании OpenAI [3] (GPT-4, ChatGPT) и ведущий разработчик автопилота Tesla [4]. Впрочем, из «Теслы» он недавно ушёл по очевидной причине: есть вероятность, что человечество стоит на пороге грандиозного открытия, с которым ничто не сравнится по важности — оно разделит историю нашего вида на до и после сингулярности. Речь идёт об AGI, то есть ИИ общего назначения. Если так, то сейчас нет смысла работать больше ни над чем.
Андрей Карпаты родился в Братиславе (Словакия) в 1986 году и эмигрировал в Канаду в возрасте 15 лет.
В 2009 году завершил обучение в университете Торонто (информатика/физика + математика), в 2011-м — аспирантуру в университете Британской Колумбии (машинное обучение для робототехники), а в 2015 году защитил диссертацию, посвящённую конволюционным/рекуррентным нейронным сетям и их применению в компьютерном зрении, обработке естественного языка и их пересечении.
Разработал и стал основным лектором первого курса по глубокому обучению в Стэнфордском университете — CS 231n: «Конволюционные нейронные сети для распознавания образов» [5]. С годами этот класс стал из самых больших в Стэнфорде, а в первые годы вообще рос в геометрической прогрессии: 150 студентов в 2015 году, 330 в 2016-м, 750 в 2017-м.
Попутно Андрей прошёл три стажировки в Google Brain в 2011 году (самообучение нейросети по видеоматериалам), затем в Google Research в 2013 году (обучение с учителем по видеоматериалам YouTube) и в DeepMind в 2015 году (глубокое обучение с подкреплением).
В 2015 году стал сооснователем [6] научной лаборатории OpenAI [3], которая сейчас известна всему миру благодаря генератору изображений DALL-E [7], большой языковой модели GPT-4 [8] (вышла 14 марта 2023 года) и чат-боту ChatGPT [9], который работает на этой модели.
Оригинальная модель GPT, иллюстрация из научной статьи от 11 июня 2018 года [10]
Изначально OpenAI планировалась как некоммерческая организация, которая будет «свободно сотрудничать» с университетами и исследователями со всего мира. Однако в 2019 году для некоммерческой корпорации была зарегистрирована коммерческая дочерняя компания OpenAI Limited Partnership (OpenAI LP) с ограничением на 100-кратный максимальный размер прибыли.
Впрочем, к тому времени из организации уже ушли двое сооснователей: Илон Маск и Андрей Карпаты (в 2017-м). Первый сослался на конфликт интересов в связи с разработкой автопилота Tesla [4], а второй перешёл на работу как раз в Tesla в качестве ведущего разработчика этого автопилота, над которым и трудился шесть лет, с перспективой создания полностью автономной системы Full Self-Driving [11].
После шестилетнего напряжённого труда Андрей ушёл в саббатикал, уволился из Tesla, а последние полгода занимался только записью обучающих видеороликов на YouTube [12] по созданию нейросетей, с пошаговыми инструкциями и фрагментами исходного кода на Github [13] (эти видеоролики с примерами рекомендуются всем начинающим).
В рамках этой обучающей активности в начале 2023 года Андрей выложил в опенсорс NanoGPT [14] — максимально простой код (300 строк train.py [15]
и 300 строк model.py [16]
) для обучения/настройки GPT среднего размера. Код написан на основе minGPT [17] в обучающих целях, чтобы любой мог обучить нейросеть с нуля на приемлемом оборудовании. Всё предельно понятно (с пошаговыми инструкциями на видео). В частности, текущий train.py
воспроизводит GPT-2 (124 млн) с OpenWebText на одном узле 8XA100 40GB всего за четыре дня обучения.
В феврале 2023 года Карпаты объявил [18] о возвращении в OpenAI.
«Я присоединяюсь к OpenAI (снова :)). Как и многих других людей из сферы ИИ и за её пределами, меня очень вдохновляет влияние их работы, и я лично получил от неё большую пользу. Потенциал будущего особенно интересен; мне очень приятно снова влиться в работу и присоединиться к разработке», — написал Андрей.
Таким образом, он снова вернулся в научную лабораторию, где трудился в 2015–2017 гг.
Перед уходом из OpenAI в 2017 году Карпаты написал интересную статью Software 2.0 [19], в которой рассказал об использовании нейросетей в программировании.
По его мнению, нейросети совершат фундаментальный сдвиг в разработке, позволив создавать принципиально более сложное ПО, недоступное для понимания человеку, как показано на иллюстрации ниже.
Классический стек Software 1.0 написан на понятных языках типа Python и C++. Он состоит из явных инструкций для компьютера, созданных программистом. Написав каждую строку кода, программист определяет конкретную точку в пространстве программы с некоторым желаемым поведением.
В отличие от этого, Software 2.0 будет написано на гораздо более абстрактном, недружественном человеку языке, например, в виде весов нейронной сети. Человек не будет принимать активного участия в написании кода, потому что весов очень много (в типичных сетях миллионы), а кодировать непосредственно в весах довольно сложно.
Программа будет выглядеть примерно таким образом (фрагмент):
Задача программиста заключается не столько в написании кода, сколько в определении некоторой желаемой цели поведения программы. Например, «удовлетворить набор пар примеров на входе и выходе» или «выиграть партию в Go». Программист устанавливает цели и создаёт грубый скелет кода (т. е. архитектуру нейронной сети), который определяет подмножество программного пространства для поиска, а дальше использовать имеющиеся в его распоряжении вычислительные ресурсы для поиска в этом пространстве программы, которая работает.
«В случае нейросетей мы ограничиваем поиск непрерывным подмножеством программного пространства, где процесс поиска может быть сделан (что несколько удивительно) эффективным с помощью обратного распространения и стохастического градиентного спуска», — пишет Карпаты.
Таким образом, Software 1.0 есть исходный код, написанный человеком (например, несколько файлов .cpp
), который компилируется в двоичный файл, выполняющий полезную работу.
В Software 2.0 исходный код состоит из:
В процессе обучения нейросети набор данных преобразуется в бинарную конечную нейросеть. В большинстве практических приложений архитектуры нейросетей и системы обучения станут стандартизированным товаром, поэтому большая часть «разработки» примет форму «курирования, выращивания, массирования и очистки помеченных наборов данных».
Это в корне меняет парадигму программирования, с помощью которой мы итеративно разрабатываем наше программное обеспечение. По мнению Карпаты, команды разработчиков разделяется на две группы:
Программное обеспечение (1.0) пожирает мир, а теперь ИИ (2.0) пожирает программное обеспечение.
Переход с 1.0 на 2.0 мы сейчас видим во многих отраслях, где начинают активно применяться нейросети.
В недавнем посте «Глубокие нейросети 33 года назад и 33 года спустя» [20] Карпаты экстраполировал развитие нейросетей с 1989 до 2055-го. Он предложил посмотреть на нейросети 1989 года с крошечными датасетами и представить, что точно так же будущие исследователи будут смотреть на нейросети 2023 года. Они будут казаться игрушечными и обучаться за одну минуту на личном ПК или смартфоне.
Датасеты станут примерно в 10 миллионов раз больше, чем у наших детских экспериментов типа GPT-4 или GPT-5, которую некоторые нетерпеливые инвесторы уже сравнивают с AGI [21].
Даже если архитектура нейросетей остаётся примерно такой же, увеличение количества параметров даёт качественный результат в функционировании моделей. Например,
Коннектом [24]
Несложно посчитать, что количественная разница между
Андрей Карпаты считает, что в наиболее экстремальной экстраполяции через несколько десятилетий нам вообще не понадобится обучать новые нейросети:
«В 2055 году мы будем просить выросший в десять миллионов раз мегамозг нейронной сети выполнить какую-нибудь задачу, проговорив (или подумав) её на родном языке. И если вы попросите достаточно вежливо, он подчинится. Да, вы по-прежнему сможете обучать нейронные сети… но зачем это будет нужно?»
Судя по всему, технологии в этой области развиваются гораздо быстрее, чем предполагалось. Возможно, наши современники станут свидетелями самой важной революции в истории человечества. И не последняя роль в этом принадлежит разработчикам моделей для обучения нейросетей, в том числе Андрею Карпаты.
Если когда-нибудь сбудется сюжет фильма «Терминатор» и будущие поколения пришлют в прошлое машину, чтобы изменить историю, то именно Андрей может стать главной целью для этой машины.
Автор: Анатолий Ализар
Источник [32]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/383985
Ссылки в тексте:
[1] Андрей Карпаты: https://karpathy.ai/
[2] обучал Джона Кармака: https://habr.com/ru/company/ruvds/blog/721150/
[3] OpenAI: https://openai.com/
[4] автопилота Tesla: https://www.tesla.com/autopilot
[5] CS 231n: «Конволюционные нейронные сети для распознавания образов»: http://cs231n.stanford.edu/
[6] стал сооснователем: https://openai.com/blog/introducing-openai
[7] DALL-E: https://openai.com/blog/dall-e/
[8] GPT-4: https://openai.com/product/gpt-4
[9] ChatGPT: https://chat.openai.com/chat
[10] научной статьи от 11 июня 2018 года: https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf
[11] Full Self-Driving: https://www.youtube.com/watch?v=tlThdr3O5Qo
[12] обучающих видеороликов на YouTube: https://www.youtube.com/@AndrejKarpathy
[13] фрагментами исходного кода на Github: https://github.com/karpathy
[14] NanoGPT: https://github.com/karpathy/nanoGPT
[15] train.py: https://github.com/karpathy/nanoGPT/blob/master/train.py
[16] model.py: https://github.com/karpathy/nanoGPT/blob/master/model.py
[17] minGPT: https://github.com/karpathy/minGPT
[18] объявил: https://twitter.com/karpathy/status/1623476659369443328
[19] Software 2.0: https://karpathy.medium.com/software-2-0-a64152b37c35
[20] «Глубокие нейросети 33 года назад и 33 года спустя»: https://habr.com/ru/post/724286/
[21] сравнивают с AGI: https://twitter.com/blader/status/1640217165822578688
[22] мозг: http://www.braintools.ru
[23] мозг мушки-дрозофилы: https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B7%D0%B3_%D0%B4%D1%80%D0%BE%D0%B7%D0%BE%D1%84%D0%B8%D0%BB%D1%8B
[24] Коннектом: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%BD%D0%B5%D0%BA%D1%82%D0%BE%D0%BC
[25] статистике Metaculus: https://www.metaculus.com/questions/3479/date-weakly-general-ai-is-publicly-known/
[26] Джастин Танни: https://habr.com/ru/company/ruvds/blog/682150/
[27] Джей Фриман (saurik): https://habr.com/ru/company/ruvds/blog/688716/
[28] Михал Залевски: https://habr.com/ru/company/ruvds/blog/695386/
[29] 1: https://habr.com/ru/company/ruvds/blog/701556/
[30] Марк Руссинович: https://habr.com/ru/company/ruvds/blog/710268/
[31] Юрки Алакуйяла: https://habr.com/ru/company/ruvds/blog/713648/
[32] Источник: https://habr.com/ru/companies/ruvds/articles/728056/?utm_source=habrahabr&utm_medium=rss&utm_campaign=728056
Нажмите здесь для печати.