К книге
Мыслящие машины Дженсена Хуанга: История Nvidia и мировой ИИ-революцииЧасть II. Глава 12 OIALO
57%
Часть II. Глава 12 OIALO
16

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

Катандзаро воспитывался в мормонской общине и через год после окончания школы отправился в Сибирь миссионером. В течение двух лет он говорил только на русском. «Я был невероятно предан своему делу», – вспоминает он. Там он прочел «Преступление и наказание» в оригинале, и это стало важным опытом для формировавшегося экзистенциалиста. Вернувшись, он получил диплом по русской литературе в Университете Бригама Янга. «Достоевский, безусловно, мой любимый писатель, – говорит Катандзаро. – Трое моих фаворитов – Достоевский, Толстой и Пушкин».

Параллельно он получил и вторую степень – по компьютерной инженерии, понимая, что гуманитарное образование окупится с меньшей вероятностью. В 2001 году его приняли на летнюю стажировку в Intel, где он трудился над разработкой микропроцессора, который должен был функционировать на частоте 10 миллиардов герц. Выполнив расчеты, он понял, что задача была скорее теоретической: такой процессор создать невозможно. Брайан предоставил полученные результаты старшим инженерам и услышал от них: «Наверняка вы сделали что-то не так. Создание такого микропроцессора – в наших ближайших планах».

Брайан был ошеломлен. Перепроверив свои вычисления, он еще раз убедился в верности выводов. Транзисторы становились все меньше, закон Мура переставал работать, но в Intel это игнорировали. «Я ведь был всего лишь стажером, – вспоминает он. – Но я видел, что традиционные принципы конструирования архитектуры процессора перестают работать».

Катандзаро считал, что нужен принципиально новый подход к разработке микросхем. В середине 2000-х вместе с несколькими коллегами он основал лабораторию параллельных вычислений в Калифорнийском университете в Беркли. Там он изучил существующие приложения для параллельных вычислений. Проблема заключалась в том, что на тот момент вычислительных мощностей хватало даже самым требовательным клиентам: продав нефтяной компании суперкомпьютер, вы закрывали ее потребности на годы. Нужно было некое ненасытное приложение, требующее постоянного роста вычислительных мощностей. Что-то вроде приложения для непрерывной отрисовки 3D-графики. После нескольких дней мозгового штурма Катандзаро и его команда поняли, что это должно быть за приложение. «Решением был искусственный интеллект, – говорит он. – Я пришел к идее ИИ, двигаясь снизу вверх, я отталкивался от архитектуры микросхем. Я чувствовал, что разработка ИИ – самая важная вычислительная задача будущего».

Научные руководители Катандзаро в Беркли не особо приветствовали его увлечение искусственным интеллектом. Многим компьютерщикам идея создания ИИ казалась столь же сомнительной, как поиски снежного человека, а нейронные сети были главным объектом насмешек. «Бытовало мнение, что мир вычислительных технологий полон странных людей, которые занимаются чем-то устаревшим и нелепым, что не имеет смысла и не работает», – рассказывает Катандзаро, приглаживая волосы рукой.

Мне понятно его разочарование: Катандзаро одним из первых осознал потенциал разработки ИИ с использованием параллельных вычислений, но преподаватели отговорили его от правильного выбора. Вместо этого Катандзаро погрузился в заумную математику и опубликовал несколько малозначимых научных статей. Работа над докторской диссертацией оказалась для него очень непростой. К этому времени у них с женой было трое детей, а стоимость аренды жилья в Кремниевой долине кусалась. В отчаянии он начал подавать заявки в разные компании на все доступные стажировки. За шесть лет Катандзаро поработал в восьми компаниях, с трудом зарабатывая деньги, позволявшие семье кое-как сводить концы с концами. Однако был и положительный момент: благодаря этим стажировкам он получил возможность заглянуть на кухню гигантов полупроводниковой индустрии.

В поисках постоянной работы Катандзаро поначалу вернулся в Intel. К тому времени руководство компании поняло, что Nvidia действительно представляет для них угрозу, и запустило проект Larrabee по созданию графического процессора, который должен был стать «убийцей GeForce». Катандзаро привлекли к работе над ним. Однако ожидания Intel не оправдались. Из-за разногласий внутри команды выпуск Larrabee неоднократно откладывался, и в итоге проект был закрыт. Катандзаро полагает, что на самом деле руководство компании не очень интересовали передовые вычислительные технологии. «Им было все равно, что производит Intel – хоть мыло», – говорит он.

Еще одним местом стажировки Катандзаро была Qualcomm, известная компания, разрабатывавшая микросхемы для мобильных устройств, расположенная в Сан-Диего. В Qualcomm дела шли хорошо, зарплату тоже платили достойную, но Катандзаро коробили постоянные попытки очернить конкурентов. «Мне все время говорили, что Nvidia – ужасное место для работы, а их гендиректор – настоящий тиран», – рассказывает он. Это противоречило личному опыту Катандзаро, который успел поработать в Nvidia. Именно он когда-то сказал, что общаться с Хуангом – все равно что совать палец в розетку, но при этом понимал, что этот человек не будет заниматься «продажей мыла». Хуанг был увлечен своим делом, и Катандзаро решил, что должен убедить его в необходимости использовать параллельные вычисления для создания ИИ. После получения докторской степени в 2011 году Катандзаро в качестве места работы выбрал Nvidia.

Катандзаро присоединился к растущему отделу Билла Дэлли Nvidia Research. По его словам, это было похоже на аспирантуру, «только масштабнее и куда интереснее». Атмосфера в коллективе была почти академической: исследователи могли заниматься тем, что их увлекало, и сотрудничать с другими отделами. Дэлли часто публиковал статьи о своих открытиях в научных журналах, не заботясь о финансовой выгоде. Многие из них были написаны в соавторстве с инженерами других компаний, например AMD и Intel. Такая открытость Дэлли удивляла многих, и не все коллеги ее одобряли, однако он ориентировался на долгосрочную перспективу и считал, что, пропагандируя свои достижения, сможет привлечь к совместной работе других ученых. «Они прочтут наши публикации и захотят работать с нами, – объяснял он. – Результаты говорят сами за себя».

Одним из таких ученых оказался Катандзаро. Изначально ему поручили изучать языки программирования, но вскоре он стал первым сотрудником Nvidia, специализирующимся на разработке ИИ. Узнав о прорыве в технологии нейронных сетей, Дэлли решил, что это направление нельзя упускать из виду. В 2012 году он отправил Катандзаро к своему коллеге Эндрю Ыну, стэнфордскому профессору, работавшему на Google. Ын разработал технологию, схожую с AlexNet, но применил для этого процессоры, имеющие стандартную архитектуру. Проект оказался дорогим: используя кластер из 2000 процессоров, Ын хотел научить нейросеть распознавать на видео кошек, загрузив в компьютер 10 миллионов записей с YouTube. Это потребовало больших затрат, расход энергии был колоссальным, но в итоге сеть Ына создала впечатляющую систему распознавания кошек, которую он представил прессе.

Об этом открытии начали писать СМИ, в июне 2012 года статья с результатами исследования появилась в The New York Times. Но для Дэлли было важно не то, что нейронная сеть может распознавать животных, а то, сколько ресурсов для этого потребовалось. Он поручил Катандзаро повторить эксперимент с кошками, но с использованием оборудования Nvidia. Катандзаро сумел добиться тех же результатов всего с 12 графическими процессорами.

События развивались с головокружительной быстротой. Все лучшие умы стекались в Кремниевую долину. Крижевский, Хинтон и Суцкевер, продав свой стартап компании Google, тоже перебрались из Торонто в Маунтин-Вью, где продолжили свои революционные исследования параллельных вычислений. Когда Крижевскому предложили в Google работать с массивным кластером процессоров, он отказался. Вместо этого Алекс установил в офисном шкафу обычный персональный компьютер с несколькими видеокартами Nvidia. Вскоре и другие разработчики Google начали отключаться от разросшегося до невероятных размеров архипелага дата-центров компании (на тот момент, вероятно, самого массивного компьютерного комплекса в мире) и использовать игровое оборудование, установленное непосредственно в стоящих под их столами системных блоках.

Катандзаро на волне перемен обратился к руководству Nvidia за дополнительными ресурсами, но вначале столкнулся с отказом. Из-за чувствительного характера и гуманитарного образования Брайан не вписывался в привычный образ сотрудника Nvidia. «Оценка моей работы оставляла желать лучшего, – признается он. – Да и зарплата тоже». Но несмотря на отсутствие поддержки, Брайан продолжал трудиться над разработкой библиотеки программного обеспечения cuDNN, необходимой для развития нейронных сетей на платформе CUDA.

Сначала работа шла тяжело. Катандзаро, будучи академическим ученым, не имел практического опыта программирования. К тому же у него появился четвертый ребенок, из-за чего он постоянно не высыпался. Возникли проблемы со здоровьем, а от лекарств Брайан чувствовал себя «каким-то тупым». Когда он в начале 2013 года представил свой прототип cuDNN команде разработчиков Nvidia, его подвергли жесткой критике. Катандзаро начал сомневаться в себе и до сих пор, вздыхая, вспоминает полученную на аттестации оценку «необходимо совершенствоваться». «Мне кажется, мои руководители не считали, что я занимаюсь чем-то важным, – говорит он. – И у меня ничего не клеилось».

Катандзаро решил обсудить свои идеи с Хуангом. Казалось, что технология нейронных сетей не была у того в приоритете; на конференции GTC в марте 2013 года Хуанг говорил о прогнозировании погоды и о мобильной графике, ни словом не упомянув нейросети. (Он все еще находился в поисках своего стиля и на этой конференции впервые появился в нелепой кожаной куртке.) К удивлению Катандзаро, Хуанга заинтересовали его идеи. После их разговора Хуанг выделил в своем плотном графике целые выходные на изучение материалов об искусственном интеллекте, в котором раньше разбирался не слишком хорошо. Вскоре состоялась еще одна встреча, и Катандзаро был поражен, обнаружив, что босс уже разбирается в нейронных сетях не хуже него, а то и лучше.

Увлекшись CUDA, Хуанг завел корабль компании далеко в неизведанные воды. Десять лет он стоял на капитанском мостике, всматриваясь в горизонт в ожидании земли, и теперь ему казалось, что он открыл Атлантиду. Хуанг с головой погрузился в изучение и обсуждение новой технологии, и чем больше он узнавал, тем сильнее разгорался его энтузиазм. К середине 2013 года Дженсен испытывал невероятное воодушевление, граничащее с одержимостью. Он пригласил Катандзаро в конференц-зал (который все еще использовал как свой офис) и заявил, что проект cuDNN – самый важный за всю двадцатилетнюю историю компании. Все старые диаграммы, формулы и графики на стенах были стерты, а на доске красовалась загадочная аббревиатура OIALO. Как объяснил Хуанг, это означало Once in a Lifetime Opportunity, то есть «возможность, выпадающая раз в жизни». Он предложил ошарашенному Катандзаро поучаствовать в мысленном эксперименте. «Представьте, – сказал он, – что я построил восемь тысяч сотрудников Nvidia на парковке. Вы можете выбрать любого из них для своей команды».

Хуанг далеко не всегда так быстро проникался новыми идеями. «С параллельными вычислениями нам потребовалось немало усилий, чтобы убедить Дженсена, – вспоминает Кирк. – То же случилось с CUDA. Нам пришлось поработать над обоснованием целесообразности проекта». Но в случае искусственного интеллекта на Хуанга как будто снизошло озарение. «Он понял это мгновенно, раньше всех, – говорит Кирк. – Он увидел, чем это все может стать. Действительно увидел первым».

Хуанг утверждает, что просто рассуждал логически. «Увидев, как система справляется с абсолютно неструктурированной задачей "зрительного" распознавания, я сразу задался вопросом, чему еще ее можно научить», – сказал он. И ответил: «Всему». Хуанг пришел к выводу, что нейронные сети могут произвести настоящую революцию и нужно использовать CUDA, чтобы застолбить рынок необходимого для них оборудования. Он объявил о полной переориентации компании. «В пятницу вечером он разослал всем электронное письмо, в котором сообщал, что мы полностью переходим на глубокое обучение и больше не являемся компанией, специализирующейся на графическом оборудовании, – рассказывает Грег Эстес, вице-президент Nvidia. – К утру понедельника мы стали компанией по разработке ИИ. Я не преувеличиваю, все было именно так».

Незадолго до этого Хуангу исполнилось пятьдесят. Несмотря на появившуюся седину, он сохранил юношеский задор и энергично носился по коридорам компании, то и дело останавливаясь, чтобы расспросить сотрудников об их работе. По мере роста компании Хуанг ввел практику устраивать ежеквартальные выступления перед всем коллективом. Он мог спонтанно говорить более двух часов на излюбленные темы: о концепции планирования «со скоростью света», о мифическом «еще не существующем миллиардном рынке» – и в первую очередь предупреждать об опасности бюрократического подхода.

Хотя Nvidia уже была крупной компанией, Хуанг поддерживал гибкую корпоративную структуру без жестко разграниченных подразделений и четкой иерархии. Высшее руководство, по сути, представлял только он сам; в Nvidia не было операционного, технического и маркетингового директоров, так же как и заместителей генерального. Не было даже управляющего персоналом. Вместо этого более 30 человек подчинялись ему напрямую, занимая гибкие универсальные должности «вице-президентов». Мысленный эксперимент с парковкой, который он предложил Катандзаро, отражал его уверенность в том, что компания способна в любой момент произвести радикальную реорганизацию. «Мне нужно, чтобы вы всегда были готовы ко всему, – говорил он своим менеджерам. – Неизвестно, в какой момент именно вам придется стать самыми важными людьми в компании».

В начале 2014 года таким «самым важным человеком» оказался Катандзаро, несмотря на то что он не вписывался в корпоративную культуру и часто получал не самые высокие оценки на аттестациях. Управляя командой инженеров, Катандзаро свел работу над cuDNN к ключевой задаче: ускорению эволюции нейросетей. В тканях человеческого мозга каждый нейрон образует в среднем около 1000 синаптических связей с соседними нейронами. Мозг может менять и настраивать их с помощью химических процессов, а нейронная сеть делает это методом умножения матриц.

При умножении матриц числа из одной сетки перемножаются с числами из другой, и таким образом создается третья. Правила заполнения новой сетки несложные, но по мере увеличения размеров матриц количество расчетов возрастает в геометрической прогрессии. Это делает параллельную обработку данных самой подходящей технологией для умножения матриц, однако до появления нейронных сетей никто в Nvidia всерьез этим не занимался.

Долгие годы за библиотеку матричного умножения CUDA отвечал Филипп Вандермерш – эксцентричный француз, приезжавший на работу на велосипеде. Предыдущие разработчики оставили проект незавершенным, и он привел библиотеку в порядок. На протяжении нескольких лет Вандермерш безуспешно пытался убедить исследователей глобального потепления обновить свои климатические симуляции, написанные древним кодом на языке Fortran, используя более современные решения. Но лишь немногие из них были готовы тратить на это время и силы. «Вообще, эти ребята в лабораториях иногда слишком ленивы», – жалуется он.

В случае с нейронными сетями издержки перехода отсутствовали. Почти весь код писался с нуля талантливыми и целеустремленными программистами, для которых производительность имела первостепенное значение. Это были именно те энтузиасты, о которых давно мечтал Хуанг: сообщество разработчиков нейросетей, объединившееся вокруг CUDA, на долгие годы стало надежной клиентской базой Nvidia. Вандермерш, выбранный из той самой «толпы на парковке», присоединился к команде Катандзаро в качестве ведущего специалиста в технической реализации проекта и оптимизировал библиотеку функций для задач ИИ. (По его словам, программированием по большей части тоже занимался он. «Можно сказать, что Катандзаро был Джобсом cuDNN, – говорит он, – а я Возняком».)

Программисты Nvidia творчески подошли к задаче ускорения операций с матрицами. Они быстро обнаружили, что большинство весов в нейронной сети попадают в промежуток от плюс одного до минус одного. Числами за пределами этого диапазона часто можно было пренебречь, что повышало скорость операций и уменьшало их объем. Кроме того, они увидели, что даже в этом промежутке не требуется идеальная точность. Так же как в мозге, нейроны в сети были «размытыми», а синаптические связи между ними – гибкими и изменчивыми. Поэтому в некоторых случаях достаточно было правильно определить знак.

В AlexNet было 650 000 нейронов и 630 миллионов синаптических связей. В таких масштабах отдельный синапс едва ли имел значение. Последовательный код бывает настолько капризным, что одна неправильно поставленная точка с запятой может привести к сбою всей системы. В нейронных сетях один ошибочный вес был всего лишь одной из миллионов точек данных. Поэтому при разработке cuDNN программисты Nvidia пересмотрели приоритеты в выборе между точностью и скоростью. По их мнению, в программном обеспечении для нейросетей выбор нужно было делать в пользу скорости.

AlexNet была сравнима по размерам с мозгом насекомого, но в будущем нейронные сети обещали стать гораздо больше. Было понятно, что по мере их разрастания обучение будет не единственной проблемой; так же важно обеспечить быстрое получение ответов (представьте оракула, который знает ответ на любой вопрос, но может произносить только одно слово в час). Хотя процесс инференции (вывода информации) требовал меньших вычислительных ресурсов, чем этап обучения, со временем он стал значимой частью функционирования библиотеки cuDNN.

Хуанг внимательно следил за успехами Катандзаро. Они встречались регулярно, и Хуанг постоянно извинялся, что никак не запомнит, как произносится его фамилия. В других компаниях библиотека cuDNN давно перешла бы в руки опытного продакт-менеджера, но в Nvidia курировать флагманский проект доверили Катандзаро, который никогда не разрабатывал коммерческое программное обеспечение и не имел опыта руководства командой. Порой Катандзаро сам сомневался, подходит ли он для этой роли. Особенно сложно ему было, когда приблизились сроки сдачи проекта. Не скупившийся на похвалу за хорошую работу Хуанг так же легко переходил к гневу и оскорблениям, если обязательства были сорваны. «С Дженсеном не всегда легко поладить, – признается Катандзаро. – Порой он внушает мне страх. Но я знаю, что он относится ко мне с любовью».

Ближе к дате запуска Катандзаро начало беспокоить другое. Его тревожило, что босс может попасть в старую как мир ловушку. Если и была сфера менее прибыльная, чем параллельные вычисления, то это, безусловно, ИИ. С 1950-х годов развитие технологии искусственного интеллекта переживало многократные взлеты и падения. Катандзаро прекрасно осознавал, насколько сложно будет внедрить искусственный интеллект в бизнес, и боялся подвести инвесторов. Однако делиться своими опасениями с Хуангом он не стал: уж очень хотелось использовать предоставленный шанс.

Хотя Катандзаро помнил о неудачном прошлом нейросетей, Уолл-стрит, похоже, уже обо всем забыла. Со времени краха экспертных систем в 1980-х годах прошло около тридцати лет, так что об этом уже не помнили даже самые въедливые аналитики фондового рынка. Вскоре на фоне шумихи вокруг нейронных сетей акции Nvidia начали расти, и Starboard Value перестала присылать письма. «Они удвоили свой капитал и исчезли», – говорит Кокс.

К началу 2014 года cuDNN была готова к работе. Хуанг представил новый продукт на конференции GTC 2014 и впервые за двадцать один год существования Nvidia открыто объявил, что компания занимается разработкой искусственного интеллекта. (На этот раз он отказался от кожаной куртки и щеголял в черных брюках и темно-синей рубашке поло. Новый наряд как бы подчеркивал его уверенность и силу.) Хуанг продемонстрировал сеть Ына и ее способность распознавать кошек и человеческие лица, затем рассказал о ранних разработках Nvidia в области ИИ и, опять допустив ошибку в произношении фамилии, передал слово Катандзаро, который показал, как AlexNet идентифицирует породы собак в Twitter. В режиме реального времени сеть определила далматинца, немецкую овчарку, венгерскую выжлу и керн-терьера. («Я даже не знал, что это за порода – керн-терьер», – смеется Катандзаро.) Было похоже, что все неудачи в развитии ИИ остались позади.

В конце выступления Хуанг представил партнеров компании, которые тестировали cuDNN в бета-версии. Среди них были Adobe, Facebook и Netflix. Google была слишком важным клиентом, чтобы упоминать о ней публично. За несколько недель до показа Google приобрела DeepMind – лондонскую компанию, основанную Демисом Хассабисом, Мустафой Сулейманом и Шейном Леггом. Они стремились создать первый в мире общедоступный искусственный интеллект (AGI) и разгадать загадку сознания. К моменту приобретения DeepMind разрабатывала AlphaGo – нейронную сеть, которой предстояло в 2016 году решить сложнейшую задачу: одолеть человека в японской игре го. Объединив усилия с группами Ына, AlexNet и DeepMind, Google закрепила за собой лидирующие позиции в отрасли.

По мере развития направления ИИ в Google разработчики начали требовать все больше графических процессоров. В конце 2014 года Google инициировала проект Mack Truck – секретную программу по созданию самого мощного в мире компьютера, выполняющего параллельные вычисления. Для него было закуплено более 40 000 GPU от Nvidia на сумму свыше 130 миллионов долларов. Крупнейший заказ, который когда-либо получала Nvidia. Но это было только начало. С развитием ИИ тяжелый период в продвижении параллельных вычислений закончился.

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

Предыдущая главаГлава 16 из 28Следующая глава