Мыслящие машины Дженсена Хуанга: История Nvidia и мировой ИИ-революции - Стивен Витт
Хинтон дал Суцкеверу и Крижевскому амбициозное задание: научить компьютер видеть с помощью графических процессоров Nvidia. CUDA уже применялась в лаборатории Хинтона. В 2008 году он поручил аспирантам Абдельрахману Мохамеду и Джорджу Далю создать модуль распознавания речи с использованием дорогостоящего сервера Nvidia. К началу 2009 года нейронная сеть Мохамеда и Даля не уступала лучшим существующим математическим моделям. Хинтон был поражен. В том же году, выступая на конференции, посвященной нейронным информационным системам, он заявил коллегам, что будущее ИИ за нейронными сетями, работающими на базе процессоров, производящих параллельные вычисления, так что им стоит бросить все, чем они занимаются, и приобрести графические процессоры Nvidia. После выступления Хинтон отправил в Nvidia электронное письмо: «Я только что посоветовал тысяче экспертов по машинному обучению купить ваши видеокарты. Может, вы предоставите мне одну бесплатно?»
Nvidia отказала. Хотя компания работала над множеством приложений для суперкомпьютеров, она не занималась разработкой ИИ. Более того, «машинного обучения» даже не было в списке потенциальных сфер применения параллельных вычислений, предложенном Кирком в его учебнике. Иногда группа CUDA даже не отвечала Хинтону на его письма. Предубеждение против нейронных сетей было весьма стойким. На вводных курсах по ИИ все еще можно было услышать утверждение, что нейронные сети неспособны выполнять даже простые логические функции, хотя этот вопрос был решен при помощи метода обратного распространения ошибки десятилетия назад.
Хинтон понимал, что единственный способ привлечь внимание Nvidia – не просто сравняться с конкурентами, а превзойти их. Крижевский и Суцкевер казались наиболее подходящими специалистами в его группе для достижения этой цели. У этих двоих было много общего, хотя Суцкевер не считал Крижевского другом в буквальном смысле: Крижевский был слишком замкнутым человеком. Но они были настроены на одну волну, и даже Хинтон иногда с трудом их понимал. Бывало так, что Хинтон задавал вопрос, они обсуждали его на русском, а затем выдавали ответ, который неизменно оказывался точным.
Хинтон поручил Крижевскому и Суцкеверу создать систему распознавания изображений на основе сверточной нейронной сети, использующей математические фильтры для выделения ключевых деталей на снимках. Он призывал их мыслить масштабно: ему нужна была не просто победа, а триумф. Крижевский, не имевший подобного опыта работы, очень быстро освоил методы параллельного программирования: его мозг моментально усвоил концепцию «поездки в Starbucks из всех точек сразу». «Он лучше всех умел заставить графический процессор строить сверточные нейросети, – говорит Хинтон. – Он просто волшебник».
К началу 2012 года Крижевский адаптировал классическую учебную модель распознавания изображений для платформы CUDA. Графическому процессору понадобилось всего 30 секунд на ее обучение. Когда Крижевский показал результат Суцкеверу, тот не мог сдержать восторг: скорость вычислений была невероятной, в сотни раз больше, чем все, с чем он сталкивался ранее. Суцкевер изначально верил в потенциал нейросетей. Он считал, что они – самый очевидный способ функционирования искусственного интеллекта. «Если допустить, что искусственный нейрон подобен биологическому, то ИИ должен уметь все, что умеем мы, – говорит Суцкевер. – А если выяснится, что нейроны можно ускорять, то получается, что мы обучаем искусственный мозг».
Прежде этот подход всегда упирался в аппаратные возможности, но графический процессор был способен всего за полминуты сделать то, на что машине с процессором Intel потребовался бы час, а природе – сотни тысяч лет. Суцкевер сразу понял, что необходимо использовать все доступные вычислительные мощности, чтобы ускорить эту синтетическую эволюцию. Это понимание сыграло существенную роль в развитии технологии. «Илья обладает способностью на лету схватывать то, к чему другие приходят постепенно», – замечает Хинтон.
Двое аспирантов скинулись, чтобы собрать самый мощный компьютер, какой могли себе позволить. Средств у них было немного: они смогли приобрести лишь два графических процессора GeForce GTX 580 примерно по 500 долларов каждый. Вожделенные GeForce походили на реквизит фильма «Чужой»: каждая видеокарта, весящая около полутора килограммов, была помещена в черный корпус с зеленой отделкой и с круглым отверстием для мощного вентилятора, охлаждавшего процессор. Под корпусом на черной плате в окружении радиаторов скрывалась огромная микросхема Nvidia с 3 миллиардами транзисторов, сгруппированных в 32 параллельных ядра. Именно такая мощь была нужна Крижевскому. Это была та самая армия мотоциклистов, кухонный комбайн, толпа танцующих транзисторов.
Крижевский установил оба графических процессора в системный блок в своей спальне и загрузил их задачами на неделю. («На самом деле немалые счета за электричество оплачивали его родители», – замечает Хинтон.) Наконец-то появился тот самый потребитель, о котором мечтал Хуанг: программист, настолько ограниченный в финансах, что вынужден проводить свои эксперименты на перепрофилированном графическом ускорителе. Странный одиночка, о котором даже коллеги знали немногое. Настоящий безумный ученый. Иконоборец. Человек, которому было суждено создать для CUDA поистине революционное приложение.
Для обучения своей нейросети Крижевский использовал базу данных ImageNet, созданную преподавательницей информатики из Стэнфорда Фэй Фэй Ли. Недовольная ограниченностью общедоступных баз данных, Ли разработала свой собственный подход, наняв работников Amazon Mechanical Turk, чтобы они вручную отобрали более 15 миллионов изображений в 22 000 категорий. База ImageNet была в сотни раз больше любой аналогичной, и хотя научные консультанты Ли сомневались в целесообразности такого огромного труда, это было именно то, что нужно Крижевскому. Его сеть состояла примерно из 650 000 нейронов, что сопоставимо с нервной системой пчелы. Для обучения столь масштабной нейросети требовался огромный объем данных.
Сначала нейроны в сети Крижевского были соединены в случайном порядке, но по мере обучения они образовывали сложный и строго упорядоченный узор. В течение наносекунд сеть обрабатывала случайно выбранное изображение и пыталась отнести его к одной из тысяч категорий. Это мог быть скат, шотландский терьер или гольф-кар. Сеть никогда прежде не работала с этими изображениями, поэтому при определении категории она могла только делать предположения – и чаще всего ошибалась. Однако даже подобная ошибка позволяла сети определить, чем это изображение не является (например, что это точно не скат).
Сеть обрабатывала информацию, перенастраивая связи между нейронами методом обратного распространения ошибки, предложенным Хинтоном. Это была самая сложная часть процесса, так как для нее требовалось многократное повторение операции умножения матриц, которую ученые сравнивали со сборкой невообразимо большого кубика Рубика. Более ранние попытки обучения нейронных сетей часто терпели крах именно на этом этапе, но у Крижевского была CUDA и мощь архитектуры параллельных вычислений GeForce. Как только все математические расчеты завершались (за мельчайшую долю секунды), сеть приступала к обработке следующего изображения, а их были тысячи, а потом и миллионы.
Чтобы «видеть», нейросеть


