Что такое нейронный процессор
Кратко об архитектуре нейроморфных процессоров: взгляд изнутри
Исследователи из IBM опубликовали заявку на патент со структурой нейроморфных чипов TrueNorth. Мы решили взглянуть на этот документ и рассказать, как устроен процессор IBM.
О проекте TrueNorth
TrueNorth — это нейроморфный процессор, разработанный в 2014 году компанией IBM при поддержке DARPA. Термин «нейроморфный» обозначает, что архитектура чипа основывается на принципах работы человеческого мозга.
Такое устройство эмулирует работу миллионов нейронов с отростками — дендритами и аксонами. Первые отвечают за восприятие информации, а вторые — за её передачу. При этом все нейроны соединены между собой синапсами — специальными контактами, по которым передаются электрические сигналы (нервные импульсы).
По словам разработчиков из IBM, задачей TrueNorth является ускорение обучения нейросетей. Нейроморфным процессорам, в отличие от классических, не нужно каждый раз обращаться к памяти (или регистрам) и извлекать оттуда данные — вся информация уже хранится в искусственных нейронах.
Как выглядит чип изнутри
TrueNorth изготовлен по 28-нанометровому техпроцессу. Процессор содержит 5,4 млрд транзисторов и 4096 ядер. Каждое ядро снабдили планировщиком задач, SRAM-памятью и маршрутизатором. Такая структура позволила смоделировать работу миллиона нейронов и 256 миллионов синапсов.
В своем патенте компания IBM приводит следующую схему:
Принципы работы чипа можно представить на примере сверточных нейросетей для распознавания изображений. Процессор — это слой нейронов. Когда нейрон идентифицирует данные, например, контур фигуры, то формируется импульс. Каждый такой импульс, условно, обозначает один пиксель изображения.
Далее, первый слой нейронов передает данные следующему слою (посредством все тех же импульсов). Так, слой за слоем сеть распознает изображение — сперва контуры и детали, а затем — всю картинку.
Обычные языки не подходят для программирования нейросинаптических ядер. Поэтому в IBM разработали специальный язык Corelet. Он обладает базовыми свойствами ООП: инкапсуляция, наследование и полиморфизм и основан на MATLAB. С его помощью ядра определяют как классы, чтобы управлять их работой было проще. Пример кода разработчики привели в своей презентации (стр. 17).
Похожие решения
Над нейроморфными процессорами трудятся не только в IBM. Компания Intel с 2017 года разрабатывает чип Loihi. В его составе 130 тысяч искусственных нейронов и 130 млн синапсов. В этом году ИТ-гигант закончил производство экспериментального образца по 14-нм техпроцессу. По результатам первых тестов, чип распознает 3D-данные под разным углом, за пару секунд усваивает набор данных для обучения.
Еще один похожий проект разрабатывает компания Brainchip. Их система Akida содержит 1,2 млн нейронов и 10 млрд синапсов. Процессор оснастили интерфейсами для распознавания изображений, аудиоданных и аналоговых сигналов. Схема устройства системы представлена на сайте проекта.
Для каких задач подойдут нейрочипы
Подобны технологии призваны ускорить обучение сверточных нейронных сетей, «заточенных» под распознавание изображений. Например, в 2017 году исследователи протестировали TrueNorth и DVS-камеру (Dynamic Vision Sensor), принцип действия которой напоминает работу сетчатки глаза. Нейронная сеть распознала десять жестов с точностью 96,5%.
Кроме того, на базе процессора будут создавать системы киберзащиты. Исследователи из IBM уже предложили концепцию решения True Cyber Security, которое обнаруживает вторжения в компьютерную сеть в 90% случаев (в 80% из них определяет и тип атаки).
По замыслу разработчиков нейропроцессоров, системам МО на базе этой технологии не придется постоянно подключаться к сети для обучения, так как все алгоритмы будут реализовываться локально. Это свойство позволит применять чип в смартфонах, ЦОД и умных устройствах на базе систем ИИ.
Исследователям еще предстоит разработать решения, которые позволили бы легко программировать чип для выполнения конкретных задач. Специализированный ЯП является лишь первым шагом для развития всей экосистемы. Потому о масштабном внедрении технологии в пользовательские устройства говорить не приходится.
Нейроморфные вычисления и их успехи
Вот уже лет сто, а то и больше, человечество мечтает, размышляет, пишет, поёт, снимает фильмы о машинах, которые могут думать, рассуждать и, подобно нам, обладают разумом. Произведения литературного и кинематографического искусства — начиная с романа «Едгин», опубликованного в 1872 году Сэмюэлем Батлером, со статьи Эдгара Аллана По «Игрок в шахматы Мельцеля», с фильма «Метрополис» 1927 года — продемонстрировали миру идею, в соответствии с которой машины могут думать и рассуждать как люди. Причём, в этой идее нет ни магии, ни ещё чего-то фантастического. Те, кого захватывала эта идея, вдохновлялись автоматонами из глубокой древности и работами философов — таких, как Аристотель, Раймунд Луллий, Томас Гоббс и многих, многих других.
Идеи философов о человеческом разуме привели к вере в то, что рациональное мышление можно описать, пользуясь алгебраическими или логическими механизмами. Позже, с появлением электронных приборов, компьютеров и закона Мура, человечество попало в состояние постоянного ожидания того, что вот ещё немного — и появится машина, разум которой сравним с человеческим. Некоторые объявляли разумные машины спасителями человечества, а некоторые видели в этих машинах источник великого бедствия, так как полагали, что появление на Земле второй разумной сущности приведёт к уничтожению первой, то есть — людей.
Свет компьютеризированных систем искусственного интеллекта ярко вспыхивал в истории человечества уже несколько раз. Это было в 1950-х, в 1980-х и в 2010-х годах. К сожалению, за обоими предыдущими ИИ-бумами следовала «ИИ-зима». Искусственный интеллект не оправдывал возложенных на него ожиданий и выходил из моды. В том, что наступали эти «зимы», часто винили недостаток вычислительной мощности, неправильное понимание устройства человеческого мозга, или рекламную шумиху и необоснованные домыслы, которыми была окутана тема ИИ. В разгар сегодняшнего «ИИ-лета» большинство исследователей, работающих в сфере искусственного интеллекта, основное внимание уделяют использованию постоянно увеличивающейся доступной им вычислительной мощности для увеличения глубины создаваемых ими нейронных сетей. «Нейронные сети», несмотря на своё многообещающее название, хотя и созданы под влиянием знаний о нейронах головного мозга человека, похожи на сети настоящих нейронов лишь на поверхностном уровне.
Некоторые исследователи полагают, что уровня общего умственного развития, соответствующего человеческому, можно достичь, просто добавляя всё больше и больше слоёв к упрощённым моделям головного мозга, вроде свёрточных нейронных сетей, и скармливая им всё больше и больше данных. Это направление развития ИИ подпитывают те невероятные вещи, на которые способны такие сети, возможности которых постоянно понемногу возрастают. Но нейронные сети, которые, в буквальном смысле слова, творят чудеса, всё же, являются узкоспециализированными системами, умеющими добиваться превосходных успехов лишь в решении какой-то одной задачи. ИИ, который божественно играет в игры Atari, не способен, если человек не оснастит его этими возможностями, писать музыку или размышлять о погодных закономерностях. Более того — качество входных данных очень сильно влияет на качество работы нейронных сетей. Их возможности по формированию логических заключений ограничены. В некоторых сферах применения нейронных сетей это приводит к неудовлетворительным результатам. Есть мнение, что, например, рекуррентные нейронные сети никогда не смогут достичь того уровня общего умственного развития и гибкости, которые характерны для людей.
Но, в то же время, некоторые исследователи пытаются построить что-то, больше похожее на человеческий мозг. Они для этого, как вы, наверное, уже догадались, стремятся к созданию как можно более точных моделей мозга. Учитывая то, что мы живём в эпоху золотого века компьютерных архитектур, похоже, что сейчас — самое время создать что-то новое в сфере аппаратного обеспечения компьютеров. Подобное «железо» уже, на самом деле, создают. Это — нейроморфное аппаратное обеспечение.
Что такое нейроморфные вычисления?
«Нейроморфный» — это модный термин, который используется в применении к любым программам или устройствам, которые пытаются сымитировать деятельность мозга. Хотя человечество ещё очень многого не знает о мозге, за несколько последних лет в этой сфере достигнуты кое-какие замечательные успехи. Одной из широко принятых теорий, касающихся мозга, является гипотеза, в соответствии с которой неокортекс (в широком смысле — место, где принимаются решения и обрабатывается информация) состоит из миллионов кортикальных колонок или модулей. Отдельные системы мозга, такие, как гиппокамп, имеют узнаваемую структуру, которая отличает их от других частей мозга.
То же самое справедливо и для неокортекса, который сильно отличается в плане структуры, например, от заднего мозга. В неокортексе имеются области, отвечающие, как известно, за выполнение различных функций — таких, как зрение и слух, но мозговое вещество, из которого сформирован неокортекс, в плане структуры, выглядит весьма однородным. Если перейти на более абстрактную точку зрения, то получится, что части неокортекса, ответственные за зрение, очень похожи на те, что отвечают за слух. Но, в то же время, системы заднего мозга сильно отличаются одна от другой, их структура зависит от их функций. Этот подход к пониманию устройства мозга привёл к появлению гипотезы Вернона Маунткасла, в соответствии с которой имеется некий центральный алгоритм, или некая центральная структура, благодаря которым неокортекс решает свои задачи. Кортикальная колонка — это своего рода логическая единица коры головного мозга. Она обычно состоит из 6 слоёв, причём, в пределах колонки, вертикальных связей между этими слоями гораздо больше, чем горизонтальных связей между отдельными колонками. Это значит, что подобную логическую единицу можно несколько раз скопировать и сформировать благодаря этому искусственный неокортекс. У этой идеи есть хорошие перспективы в свете технологий создания сверхбольших интегральных схем. Наши производственные процессы весьма эффективны в деле создания миллионов копий неких структур на маленькой площади.
Хотя рекуррентные нейронные сети (RNN, Recurrent Neural Network) относятся к полносвязным сетям, настоящий мозг придирчиво относится к вопросу о том, что с чем должно быть соединено. Распространённой наглядной моделью нейронных сетей является пирамида, состоящая из отдельных слоёв. Нижний слой извлекает признаки из входных данных, а каждый последующий слой извлекает из того, что подаётся на его вход, всё более абстрактные признаки. Анализ лучше всего исследованных систем мозга показывает, что в этих системах существует широкое разнообразие иерархических структур, в которых имеются обратные связи. В пределах этих иерархических структур существуют обратные и прямые связи, соединяющие, не обязательно по порядку, различные уровни этих структур. Такой вот «пропуск уровней» можно считать нормой, но не жёстким правилом, а это свидетельствует о том, что именно структура связей может быть ключом к тем свойствам, которые демонстрирует мозг человека.
Это привело нас к следующей общепринятой точке зрения: большинство нейронных сетей используют метод «интегрировать-и-сработать» с утечками. В RNN каждый узел испускает сигнал на каждом временном шаге работы сети, а настоящие нейроны испускают сигналы лишь тогда, когда мембранный потенциал нейрона достигает порогового значения (в реальности, правда, всё несколько сложнее). Есть искусственные нейронные сети, в которых учтена эта особенность, и которые более точно, с биологической точки зрения, имитируют работу мозга. Это — так называемые импульсные нейронные сети (Spiking Neural Networks, SNN). Модель, соответствующая методу «интегрировать-и-сработать» с утечками не так точна, с биологической точки зрения, как другие модели — вроде модели Хиндмарша — Роуз или модели Ходжкина — Хаксли. В рамках этих моделей учитываются функции нейротрансмиттеров и синаптических щелей. Но реализация таких моделей требует значительной вычислительной мощности. То, что нейроны испускают сигналы не всегда, означает, что числа должны быть представлены в виде последовательностей потенциалов действия нейронов, а конкретные значения должны быть соответствующим образом закодированы.
Как далеко продвинулись нейроморфные вычисления?
Несколько групп исследователей занимаются непосредственным моделированием нейронов. Например — это делается в рамках проекта OpenWorm: создана модель нервной системы круглого червя Caenorhabditis elegans, состоящая из 302 нейронов. Сейчас цель многих подобных проектов заключается в увеличении количества моделируемых нейронов, в повышении точности моделей, в оптимизации производительности программ. Например, в рамках проекта SpiNNaker создан суперкомпьютер начального уровня, позволяющий, в реальном времени, моделировать работу огромного количества нейронов. А именно, каждое процессорное ядро суперкомпьютера может обслуживать 1000 нейронов. В конце 2018 года проектом достигнут рубеж в 1 миллион ядер, а в 2019 году было объявлено о гранте на постройку подобной машины второго поколения (SpiNNcloud).
Многие компании, правительственные организации и университеты занимаются поиском необычных материалов и технологий для создания искусственных нейронов. В этой связи можно вспомнить о мемристорах, о спин-трансферных осцилляторах, о магнитных переключателях на основе джозефсоновских переходов. Хотя в моделях эти технологии и выглядят весьма многообещающими, огромная пропасть лежит между парой десятков смоделированных нейронов (или нейронов, размещённых на небольшой экспериментальной плате) и тысячами, если не миллионами нейронов, которые необходимы для достижения машиной реальных человеческих возможностей.
Другие исследователи (они работают, например, в IBM, Intel, BrainChip, в некоторых университетах) пытаются создать аппаратные реализации SNN, опираясь на существующие технологии, в частности — на технологию CMOS. Одна из таких платформ разработана Intel и представлена нейроморфным процессором Loihi, на основе которого можно создавать достаточно крупные системы.
Нейроморфная система, использующая 64 чипа Loihi для моделирования 8 миллионов нейронов
В первой половине 2020 года специалистами Intel была опубликована работа, в которой шла речь об использовании 768 чипов Loihi для реализации алгоритма поиска ближайшего соседа. Машина, имитирующая работу 100 миллионов нейронов, показала многообещающие результаты, продемонстрировав задержки, выглядящие лучше, чем в системах с большими, заранее рассчитанными индексами, и давая возможность добавлять в набор данных новые записи за время O(1).
Есть ещё крупномасштабный проект Human Brain Project, цель которого — лучше понять биологические нейронные сети. В нём имеется система, называемая BrainScaleS-1, при создании которой применяются цельнопластинные интегральные схемы, использующая для имитации нейронов аналоговые и смешанные сигналы. BrainScaleS-1 состоит из 12 пластин, каждая из которых моделирует 200000 нейронов. Подобная система следующего поколения, BrainScaleS-2, сейчас находится в разработке. Ожидается, что она будет готова в 2023 году.
Проект Blue Brain Project нацелен на создание как можно более точной копии мозга мыши. Хотя речь идёт и не о человеческом мозге, опубликованные в рамках этого проекта исследования и модели бесценны в деле продвижения человечества к созданию нейроморфных искусственных нейронных сетей, способных найти реальное применение.
В результате можно сказать, что мы находимся в самом начале пути к созданию чего-то такого, что способно решать какие-то реальные задачи. А главным препятствием на этом пути является тот факт, что мы до сих пор не обладаем достаточными знаниями о том, как устроен наш мозг, и о том, как он обучается. Когда речь идёт о нейронных сетях, размеры которых сравнимы с размерами нашего мозга, одной из самых сложных задач оказывается обучение таких сетей.
Нужны ли человечеству нейроморфные аппаратные устройства?
Что если человечеству не нужно нейроморфное аппаратное обеспечение? Например, алгоритм обратного обучения с подкреплением (Inverted Reinforcement Learning, IRL) позволяет машинам создавать функцию вознаграждения, не заостряя внимание исследователей на нейронных сетях. Просто наблюдая за чьими-либо действиями можно выяснить цель этих действий и воссоздать их через найденную функцию вознаграждения, которая обеспечивает воспроизведение наиболее эффективных действий эксперта (сущности, за которой осуществляется наблюдение). Проводятся дальнейшие исследования, касающиеся работы с экспертами, поведение которых не является оптимальным, с целью выяснения того, что они делали, и того, что они стремились сделать.
Многие продолжат продвигаться в сфере нейроморфных вычислений, применяя уже существующие сети, сравнительно простые, с использованием улучшенных функций вознаграждения. Например, в свежей статье о копировании частей мозга стрекозы с использованием простой трёхслойной нейронной сети, показано, что систематизированный подход, основанный на хороших знаниях моделируемого объекта, способен дать отличные результаты. Хотя рассмотренные в статье нейронные сети не показывают столь же замечательных результатов, что и стрекозы, живущие в своей среде, трудно сказать, не является ли это следствием того, что стрекозы, в сравнении с другими насекомыми, обладают гораздо лучшими «лётными возможностями».
Каждый год мы видим всё новые и новые успехи техник глубокого обучения. Кажется, что выйдут ещё одна-две публикации, и эта сфера из интересной превратится в потрясающую воображение, а потом — в нечто такое, что и в голове не укладывается. Люди не умеют предсказывать будущее. Может — так всё и будет. А может — и нет. Возможно, если человечество продолжит двигаться в том же направлении — оно найдёт что-то новое, лучше поддающееся обобщению, которое можно будет реализовать средствами существующих нейронных сетей глубокого обучения.
Что делать тем, кому интересны нейроморфные вычисления?
Если вы хотите заняться нейроморфными вычислениями — учитывайте то, что многие проекты, упомянутые в этой статье, являются опенсорсными. Используемые в них наборы данных и модели можно найти на GitHub и на других подобных площадках. Среди таких проектов можно отметить, например, потрясающие NEURON и NEST. Многие энтузиасты нейроморфных вычислений рассказывают о своих экспериментах на OpenSourceBrain. А ещё, например, можно создать собственное нейроморфное «железо» — вроде NeuroBytes (если вас интересует именно тема «железа» — взгляните на этот обзор 2017 года).
В результате можно сказать, что, хотя нейроморфным вычислениям предстоит пройти ещё долгий путь, их будущее выглядит многообещающим.
Занимались ли вы нейроморфными вычислениями?
Зачем в мобильные процессоры вставляют нейронные сети
Зачем в мобильные процессоры вставляют нейронные сети
Виртуальные голосовые ассистенты стали прорывной технологией в мире программного обеспечения. В их основу легли искусственный интеллект, нейронные сети и различные алгоритмы глубокого обучения, позволяющие помощникам самостоятельно обучаться. Теперь искусственный интеллект пришел в процессоры и начинает развиваться на аппаратном уровне. Это выглядит намного более впечатляюще, чем вы можете себе представить.
Компания Apple представила в этом году свой новый флагманский процессор для мобильных устройств — Apple A11 Bionic со встроенной нейронной системой, предназначенной для отдельной работы с искусственным интеллектом.
Технологический гигант Huawei стал первым среди конкурентов после Apple, кто показал аналогичную разработку — Kirin 970 может похвастаться специальным процессором нейронной обработки. По слухам, Samsung тоже ведет работу над подобным чипом. Ожидается, что таким будет следующий флагман линейки Exynos и, возможно, он дебютирует в Galaxy S9.
Другие известные производители, включая Intel, NVIDIA и прочих также работают над процессорами, поддерживающими работу с искусственным интеллектом. Искусственный интеллект быстро набирает популярность и все больше проникает в привычные для нас технологии, выводя их функциональность на новый уровень и в то же время упрощая работу с ними.
Но, как это обычно бывает, производители смартфонов используют различные маркетинговые уловки, чтобы выставить себя в лучшем свете. Сегодня мы разберемся, существует ли искусственный интеллект в мобильных чипах на самом деле и как это работает в действительности.
ИИ как мозг мобильного процессора
Как бы они не хотели, сегодняшние даже самые передовые проекты в этой области не так близки к тому, как об этом заявляют. В реальности все намного скучнее, чем можно подумать. По сути, все текущие процессоры со встроенным искусственным интеллектом просто делают программные задачи более эффективными за счет машинного обучения.
Процессоры с искусственным интеллектом делают программные задачи типа машинного обучения более эффективными, не более того.
Существует важное различие между искусственным интеллектом и машинным обучением, о котором стоит рассказать.
Искусственный интеллект (AI) — это очень широкая концепция, используемая для описания машин, которые могут «думать как люди» или иметь какую-то форму искусственного мозга с возможностями, очень похожими на наши собственные.
Машинное обучение, в свою очередь, является лишь частью компьютерной программы, разработанной с целью обработки данных и принятия решения на основе результатов. На основе этих же результатов машинное обучение может даже прогнозировать будущие исходы, но до возможностей настоящего искусственного интеллекта ему очень далеко.
В помощь машинному обучению также приходят нейронные сети. Это компьютерные системы, предназначенные помогать программам на основе машинного обучения сортировать данные и позволяющие компьютерам классифицировать их подобными людям способами. Речь о таких процессах, как определение местоположения по картинке или определение марки и цвета автомобиля. Нейронные сети и машинное обучение умны, но они определенно не разумны.
Что касается искусственного интеллекта, то в данном случае маркетинговые отделы производителей завышают ожидания. ИИ — это не мозг процессора, а только один из его компонентов. Он повышает производительность и эффективность задач, которые сегодня связаны с умными помощниками. В основном работа ИИ в чипе отвечает за качественное распознавание голоса и изображений, но есть и другие варианты использования.
Нейронные сети — новые типы вычислений (NPU)
Возможно, самый большой вопрос, на который предстоит ответить: почему компании внезапно внедрили искусственный интеллект в АО? В чем заключается работа ИИ в процессоре? Почему именно сейчас?
Наверняка вы заметили, что в этом году популярность нейронных сетей, машинного обучения и гетерогенных вычислений значительно возросла. О них говорят везде и всюду, как о будущем мира технологий.
Все это связано с развитием вариантов использования NPU для пользователей смартфонов. Для них эти технологии помогают расширять уже известные возможности. Обработка аудио, изображений и голоса, прогнозирование человеческой деятельности, обработка языков, ускорение результатов поиска, расширенное шифрование данных — и это еще неполный список того, в чем сегодня задействованы системы ИИ.
Это новый уровень вычислений, требующий больше мощности. Большинство современных 64-битных процессоров не особенно хорошо справляется с искусственным интеллектом. 8- и 16-битная математика с плавающей запятой, сопоставление шаблонов, поиск базы данных, манипуляции с битовыми полями и высокопараллельная обработка — вот лишь некоторые примеры, которые работают быстрее на специализированном оборудовании, чем на ЦПУ общего назначения.
Чтобы учесть рост вычислений и новых вариантов использования, имеет смысл разработать процессор нового типа, который лучше подходит для таких задач. Именно поэтому ИИ теперь внедряется в мобильные чипы для смартфонов. Он даст разработчикам базовый уровень для программного обеспечения нового поколения.
Эффективность — это ключ
Новые чипы с искусственным интеллектом не просто обеспечивают большую вычислительную мощность. Они также создаются для повышения эффективности в трех основных областях: размер кристалла, уровень вычислений и энергоэффективность.
Сегодняшние системы на чипе топового класса комплектуются десятками компонентов, начиная от драйверов для дисплея и заканчивая встроенным модемом связи. Все это должно вписаться в один маленький кристалл без ограничений по мощности, не обходясь при этом в кругленькую сумму (читайте о законе Мура для получения дополнительной информации). Разработчики процессоров должны придерживаться этих правил при внедрении новых возможностей типа обработки нейронными сетями и собственной системы искусственного интеллекта.
Выделенный процессор искусственного интеллекта (NPU) в системе на чипе смартфона разработан для вычислительной энергоэффективности и определенного подмножества математических задач.
Вместо создания новых, более мощных ядер лучше разработать отдельный выделенный компонент, который может эффективно обрабатывать определенный набор задач.
Мы видели подобное уже много раз за всю историю развития процессоров (вспомните дополнительные модули с плавающей точкой в первых чипах и, например, процессор обработки сигналов Hexagon DSP во флагманских моделях Qualcomm). Сейчас DSP не так популярны из-за быстрой смены вычислительной мощности, однако повышение энергоэффективности и машинное обучение восстанавливают этот спрос.
Что в итоге?
Не стоит сомневаться по поводу заявленных возможностей искусственного интеллекта и нейронных сетей в процессорах нового поколения. Они действительно сделают наши смартфоны умнее, но о настоящем искусственном интеллекте внутри мобильного устройства речи не идет.
Например, Huawei уже рекламирует свой следующий флагман Mate 10 не как смартфон, а как «интеллектуальную машину». Без злых шуток в сторону Apple с ее A11 Bionic не обошлось, но что значит это словосочетание? На деле Mate 10 окажется таким же iPhone 8 — флагманским смартфоном с процессором, умеющим работать с искусственным интеллектом. Huawei переигрывает.
А что думают читатели Pixel Story о процессорах на базе ИИ? Выведут ли они производительность и эффективность современных смартфонов на новый уровень? Пишите в комментариях!