Андрей Карпаты. Software 2.0. Непонятный софт будущего

Друзья, с момента основания проекта прошло уже 20 лет и мы рады сообщать вам, что сайт, наконец, переехали на новую платформу.

Какое-то время продолжим трудится на общее благо по адресу https://n-n-n.ru.
На новой платформе мы уделили особое внимание удобству поиска материалов.
Особенно рекомендуем познакомиться с работой рубрикатора.

Спасибо, ждём вас на N-N-N.ru

Блог компании RUVDS.com. Автор: Анатолий Ализар. Когда мы говорим о современных разработках в области нейросетей и машинного обучения, то первое имя, которое приходит на ум — это Андрей Карпаты. Молодой словак быстро стал звездой в данной области и одним из главных авторитетов по части конкретного программирования систем. Это тот человек, который обучал Джона Кармака, в частности.

Андрей Карпаты — сооснователь компании 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, который работает на этой модели.

kar1.pngОригинальная модель 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 всего за четыре дня обучения.

kar2.png

В феврале 2023 года Карпаты объявил о возвращении в OpenAI.

kar3.png

«Я присоединяюсь к OpenAI (снова :)). Как и многих других людей из сферы ИИ и за её пределами, меня очень вдохновляет влияние их работы, и я лично получил от неё большую пользу. Потенциал будущего особенно интересен; мне очень приятно снова влиться в работу и присоединиться к разработке», — написал Андрей.

Таким образом, он снова вернулся в научную лабораторию, где трудился в 2015–2017 гг.

Software 2.0. Непонятный софт будущего

Перед уходом из OpenAI в 2017 году Карпаты написал интересную статью Software 2.0https://karpathy.medium.com/software-2–0-a64152b37c35, в которой рассказал об использовании нейросетей в программировании.

По его мнению, нейросети совершат фундаментальный сдвиг в разработке, позволив создавать принципиально более сложное ПО, недоступное для понимания человеку, как показано на иллюстрации ниже.

kar4.png

Классический стек Software 1.0 написан на понятных языках типа Python и C++. Он состоит из явных инструкций для компьютера, созданных программистом. Написав каждую строку кода, программист определяет конкретную точку в пространстве программы с некоторым желаемым поведением.

В отличие от этого, Software 2.0 будет написано на гораздо более абстрактном, недружественном человеку языке, например, в виде весов нейронной сети. Человек не будет принимать активного участия в написании кода, потому что весов очень много (в типичных сетях миллионы), а кодировать непосредственно в весах довольно сложно.

Программа будет выглядеть примерно таким образом (фрагмент):

kar5.png

Задача программиста заключается не столько в написании кода, сколько в определении некоторой желаемой цели поведения программы. Например, «удовлетворить набор пар примеров на входе и выходе» или «выиграть партию в Go». Программист устанавливает цели и создаёт грубый скелет кода (т. е. архитектуру нейронной сети), который определяет подмножество программного пространства для поиска, а дальше использовать имеющиеся в его распоряжении вычислительные ресурсы для поиска в этом пространстве программы, которая работает.

«В случае нейросетей мы ограничиваем поиск непрерывным подмножеством программного пространства, где процесс поиска может быть сделан (что несколько удивительно) эффективным с помощью обратного распространения и стохастического градиентного спуска», — пишет Карпаты.

kar6.png

Таким образом, Software 1.0 есть исходный код, написанный человеком (например, несколько файлов .cpp), который компилируется в двоичный файл, выполняющий полезную работу.

Подробнее
Пожалуйста, оцените статью:
Ваша оценка: None Средняя: 5 (1 vote)
Источник(и):

Хабр