Аппаратное обеспечение искусственного интеллекта, следующий большой шаг в развитии искусственного интеллекта

Искусственный интеллект или ИИ, как мы все знаем, - это область компьютерных наук, которая штурмом захватила мир. Можно легко возразить, что ИИ - это то, чем является промышленная революция 20 века. Это наблюдается почти во всех цифровых потребительских товарах и научных приложениях, от разработки новых материалов до анализа генома. Хотя работа этой технологии кажется сложной, все машинное обучение (ML), которое представляет собой процесс, посредством которого применяется ИИ, можно грубо свести к математической функции, которая оптимизируется с помощью большого набора данных. Процесс оптимизации - это то, что мы называем обучением, и в этом заключается проблема следующего этапа ИИ.

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

«Узкое место фон-Неймана»

Стоимость ИИ

Вот пример, который находит отклик у сообщества NLP (обработка естественного языка). Глубокое обучение (DL), которое является подветвью ML, - это метод, используемый в NLP, поскольку он может обнаруживать закономерности в данных без явного упоминания. Использовать эту технику довольно интуитивно, поскольку язык не имеет строгой структуры в использовании и, следовательно, строгие шаблоны слов не могут быть сформированы. При обучении этих моделей DL с заданным числом параметров соответствующие затраты указаны ниже.

Данные на рисунке 1 получены от исследователей из лабораторий AI21, которые количественно оценили стоимость обучения моделей BERT разного размера в Википедии и Книжном корпусе (15 ГБ), где они получили стоимость одного обучающего прогона и типичного полностью загруженного Стоимость. Поскольку нам необходимо обучать модель за несколько прогонов, затраты на обучение быстро растут. Несмотря на то, что это специфично для НЛП, эта проблема распространяется на все области машинного обучения.

Высокая стоимость обучения во многом связана с расходом энергии. Можно сказать, что большая часть этой потребляемой энергии используется для сохранения памяти (посредством обновления DRAM) и перемещения данных из основной памяти во вторичную память.

Это узкое место фон-Неймана.

В архитектуре фон-Неймана память существует отдельно от вычислительных элементов, как показано на рисунке 2,

Поскольку большая часть данных находится во вторичной памяти, их приходится многократно перемещать из памяти в ЦП, и обратно потребляется значительная часть энергии и часто замедляется обработка, поскольку ЦП ожидает прибытия данных. В дополнение к этому, основная память должна постоянно обновляться, так как основная память является энергозависимой. Чтобы получить количественное представление, в этом исследовании [2] сделан вывод о том, что до 40% энергии тратится на перемещение данных между иерархиями памяти в процессоре ARM на типичном смартфоне, где перемещение больших объемов данных даже не является основной целью. Распространяя эту аналогию на нашу проблему, мы можем легко понять, где тратится большая часть используемой энергии. Это не только очень неэффективно с точки зрения энергопотребления, но также является медленным, поскольку часто ЦП ожидает прибытия данных.

Вычисления в памяти

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

Достижение этой цели сопряжено с множеством проблем. Первым из них является разработка технологии быстрой энергонезависимой памяти (NVM), которая компактна и эффективна для хранения данных. Основная причина перемещения данных из вторичной памяти в основную память (RAM) связана с медленным временем доступа. Типичные диапазоны времени доступа показаны на рисунке 3.

Это область, в которой мемристоры могут улучшить производительность. Мемристор - это, по сути, резистор, который может изменять свое сопротивление в зависимости от истории заряда, прошедшего через него. Отсюда и название «Мемристор» или «Память-резистор». Следует отметить, что мемристор - это всего лишь математическая конструкция, а не что-то конкретное, как магнит. Любое устройство, удовлетворяющее условиям этой конструкции, можно назвать мемристором.

Это устройство было впервые разработано профессором Леоном Чуа. Профессор Чуа создал математические основы теории нелинейных цепей, которые легли в основу его классического учебника 1969 года «Введение в теорию нелинейных сетей». В результате этой работы профессор Чуа сделал интересное наблюдение, которое привело к открытию мемристора как математического объекта, о котором было сообщено в 1971 году.

Он математически исследовал свойства этого нового модельного элемента нелинейной схемы и обнаружил, что это, по сути, резистор с памятью - это устройство, которое изменяет свое сопротивление в зависимости от количества заряда, проходящего через устройство, и поэтому он назвал это гипотетическим Элемент схемы М мемристор. Вывод, который не зависел от какого-либо физического механизма, который мог бы связывать поток и заряд, и не был постулирован. Более того, определение мемристора не требовало причинности. Другими словами, математическая связь между потоком и зарядом могла быть результатом какой-то другой причины - любого механизма, который привел к ограничению, воплощенному в уравнении

dɸ = M dq

приведет к устройству со схемными свойствами мемристора. Первый мемристор был изготовлен HP Labs в 2008 году, и с тех пор был достигнут значительный прогресс, и многое еще предстоит сделать. На сегодняшний день существует 8 основных типов мемристоров в зависимости от свойств, используемых при создании этого устройства. [4]

Синий блок на рисунке 4 (a) является символом мемристора, а типичное соотношение I-V мемристора показано на рисунке 4 (b). Эта защемленная петля гистерезиса является отличительной чертой мемристоров.

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

Ускорители машинного обучения

Хотя In-Computing улучшит всестороннюю скорость вычислений, оказалось, что свойство переменного сопротивления мемристоров очень полезно при разработке аппаратных ускорителей для машинного обучения.

Нейронные сети, которые представляют собой класс алгоритмов машинного обучения, чаще всего используются в приложениях компьютерного зрения. Типичная нейронная сеть показана на рисунке 5. Кружки называются узлами, и они расположены по слоям. Первый уровень - это ввод или просто то, где мы предоставляем наши данные, а последний слой - это то, где мы получаем вывод. В выходном слое каждый узел представляет какой-то атрибут и принимает двоичное значение, представляющее, имеют ли данные атрибуты (т. Е. Nk = 1 или 0). Помимо входного слоя, значение каждого узла в слое представляет собой взвешенную сумму всех узлов в слое, предшествующем ему, как показано стрелками на рисунке 6.

Примечание.

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

Например, в приложении для обнаружения автомобилей на входе будут значения пикселей изображения, а на выходе - независимо от того, присутствует автомобиль или нет. Чтобы обучить эту нейронную сеть, мы настраиваем веса (W1, W2, W3 и т. Д.), Ведущие к каждому узлу, с помощью стандартного подхода, предлагаемого алгоритмом.

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

Ускоритель ML предназначен для использования мемристоров для реализации весов в нейронной сети, используя значение проводимости (G) мемристора в качестве величины веса. Поскольку проводимость мемристора можно варьировать, цель обучения будет заключаться в соответствующей настройке этих весов для получения наиболее точного результата. В такой системе на входе можно принять напряжение, а на выходе - ток (поскольку произведение проводимости и напряжения есть ток). Это может. Осуществляется через решетку поперечин, как показано на рисунке 7.

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

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

Несколько заключительных замечаний.
Это первая статья, которую я когда-либо написал, и я надеюсь, что вы узнали что-то новое. Я все еще изучаю область нейроморфных вычислений, это область, которая занимается аппаратным обеспечением ИИ. Я увлечен созданием более быстрого и эффективного оборудования, с помощью которого мы можем реализовать все более сложные алгоритмы искусственного интеллекта, которые, в свою очередь, улучшат производительность в реальном времени. Следуйте за мной здесь, если вы хотите больше контента, относящегося к тому же, поскольку я планирую делиться тем, что я узнаю, как можно чаще.

Если у вас есть предложения, я буду рад их выслушать, напишите мне по адресу
[email protected]

Ссылки и источники

  1. Почему глубокое обучение - дорогое дело
    https://analyticsindiamag.com/deep-learning-costs-cloud-compute/
  2. Д. Пандиян и К. Ву, «Количественная оценка затрат энергии на перемещение данных для возникающих рабочих нагрузок смартфонов на мобильных платформах», Международный симпозиум IEEE 2014 г. по характеристике рабочих нагрузок (IISWC), Роли, Северная Каролина, 2014 г., стр. 171–180, < BR /> DOI: 10.1109 / IISWC.2014.6983056
  3. Системы памяти: обзор и тенденции
    http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.118.9348
  4. Мемристоры
    https://en.wikipedia.org/wiki/Memristor#Implementations
  5. Мемристорные сети
    ISBN 978–3–319–02630–5
    https://www.springer.com/in/book/9783319026299
  6. Иелмини, Д., Вонг, Х.П. Вычисления в памяти с резистивными коммутационными устройствами. Нат. Электрон 1, 333–343 (2018).
    https://doi.org/10.1038/s41928-018-0092-2
  7. Intel Loihi
    https://www.intel.in/content/www/in/en/research/neuromorphic-computing.html