Андрей Карпаты. Software 2.0. Непонятный софт будущего
Друзья, с момента основания проекта прошло уже 20 лет и мы рады сообщать вам, что сайт, наконец, переехали на новую платформу.
Какое-то время продолжим трудится на общее благо по адресу
На новой платформе мы уделили особое внимание удобству поиска материалов.
Особенно рекомендуем познакомиться с работой рубрикатора.
Спасибо, ждём вас на 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, который работает на этой модели.
Оригинальная модель 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.0https://karpathy.medium.com/software-2–0-a64152b37c35, в которой рассказал об использовании нейросетей в программировании.
По его мнению, нейросети совершат фундаментальный сдвиг в разработке, позволив создавать принципиально более сложное ПО, недоступное для понимания человеку, как показано на иллюстрации ниже.
Классический стек Software 1.0 написан на понятных языках типа Python и C++. Он состоит из явных инструкций для компьютера, созданных программистом. Написав каждую строку кода, программист определяет конкретную точку в пространстве программы с некоторым желаемым поведением.
В отличие от этого, Software 2.0 будет написано на гораздо более абстрактном, недружественном человеку языке, например, в виде весов нейронной сети. Человек не будет принимать активного участия в написании кода, потому что весов очень много (в типичных сетях миллионы), а кодировать непосредственно в весах довольно сложно.
Программа будет выглядеть примерно таким образом (фрагмент):
Задача программиста заключается не столько в написании кода, сколько в определении некоторой желаемой цели поведения программы. Например, «удовлетворить набор пар примеров на входе и выходе» или «выиграть партию в Go». Программист устанавливает цели и создаёт грубый скелет кода (т. е. архитектуру нейронной сети), который определяет подмножество программного пространства для поиска, а дальше использовать имеющиеся в его распоряжении вычислительные ресурсы для поиска в этом пространстве программы, которая работает.
«В случае нейросетей мы ограничиваем поиск непрерывным подмножеством программного пространства, где процесс поиска может быть сделан (что несколько удивительно) эффективным с помощью обратного распространения и стохастического градиентного спуска», — пишет Карпаты.
Таким образом, Software 1.0 есть исходный код, написанный человеком (например, несколько файлов .cpp), который компилируется в двоичный файл, выполняющий полезную работу.
- Источник(и):
- Войдите на сайт для отправки комментариев