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

Что же стоить за столь впечетляющими результатами? Ответ прост: огромные вычислительные мощности и сложные алгоритмы. В этой статье мы поговорим о том, как правильно подобрать аппаратное обеспечение для запуска нейронной сети, которая сможет помочь вашему бизнесу.

Составляющие аппаратного обеспечение для запуска нейронных сетей

Выбор процессоров для запуска нейросети

Начнем сборку железа с самого важного компонента — процессора. Существует множество видов процессоров, но не все подходят для быстрой и эффективной работы с нейросетями. Обычные CPU используемые в персональных компьютерах не подходят для работы нейронных сетей. Для работы вам понадобятся GPU и TPU.

GPU — графический процессор 

Ядра GPU — встроенные в большом количестве упрощенные версии более сложных ядер центрального процессора (CPU), благодаря им графический процессор имеет высокий уровень параллелизма и, следовательно, лучшую производительность. Изначально данные процессоры были созданы для общей графической обработки, но позже выяснилось, что они хорошо подходят для вычислительных операций, таких как умножение матриц, что напрямую связано с нейронными сетями.

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

cpu и gpu сравнение

ТPU — пример нейронного процессора (NPU)

NPU — альтернативный процессор GPU, созданный специально для аппаратного ускорения работы алгоритмов искусственных нейронных сетей, компьютерного зрения, распознавания по голосу, машинного обучения и других методов искусственного интеллекта. Нейронные процессоры разделяют на три категории:

  • нейроморфные (IBM TrueNorth, Cambricon, Cerebras);

  • тензорные (TPU, Intel Nervana NNP, Qualcomm Cloud AI 100);

  • процессоры машинного зрения (Intel Movidius Myriad 2, Mobileye EyeQ).

Самый известный из них является TPU — тензорное процессорное устройство, разработанное Google для использования с фреймворком TensorFlow. Когда в 2016 команда Google перешли к использованию глубокой нейронной сети для Google Translator, большой группе исследователей потребовались тысячи недель вычислений на GPU для обучения нейросети. Тогда и был разработан TPU, специально для ускорения вычислений линейной алгебры и выполнения быстрых и громоздких матричных умножений. На сегодня данный процессор — одно из самых передовых устройств для обучения нейронных сетей. 

Основные ошибки при выборе памяти для работы с нейросетями

  1. Покупка оперативной памяти со слишком высокой тактовой частотой

  2. Недостаточный объем оперативной памяти для работы нейронной сети. 

Важно! Объем оперативной памяти не влияет на производительность обучения сети, но обеспечивает комфортную работу с графическим процессором.

Если вы используете жесткий диск, убедитесь, что на нем достаточно свободного места. Многие говорят, что наличие SSD важно для быстрого ввода-вывода с большими наборами данных, но в действительности это не нужно, если вы храните данные, например, в файлах TFRecord в TensorFlow.

На что еще следует обратить внимание?

1. Материнская платы и шасси. Выбор материнской платы напрямую связан с количеством процессоров, которые вы планируете использовать. Получите материнскую плату (с поддержкой PCIe 3.0), которая поддерживает разъемы питания PCIe (8 + 6 контактов) с помощью одного кабеля. Это позволит вам добавить больше графических процессоров, в случаи нейронок - 4. Также дело обстоит с шасси. Убедитесь, что у него достаточно слотов PCIe для поддержки графических процессоров и других карт, которые вы можете установить. 1 графический процессор = 2 слота PCIe.

2. Охлаждение. Если не задуматься о способе охлаждения, можно столкнуться с проблемами высоких температур. Тогда графические процессоры будут работать медленнее (около 30%) или могут сгореть. Вы можете выбрать воздушное охлаждение, которое легко устанавливается, но работает  шумно. Или перейдите на охлажденную воду, которая является дорогой и представляет некоторые сложности для установки. Однако система с водяным охлаждением лучше, так как она будет поддерживать все компоненты в прохладном состоянии и практически не создает шума.

3. Электропитание.  Чем более высокая эффективность, тем лучше для вас. Для системы с 4 GPU потребуется от 1400 до 1600 Вт.

Какое аппаратное обеспечение нужно, чтоб развернуть нейронные сети? 3

Можно ли развернуть нейросеть на мобильном устройстве?

Выше мы писали о мощной компьютерной комплектации железа для запуска нейронных сетей. А затем задались вопросом: можно ли обучить нейросеть на смартфоне? 

Хотя смартфоны становятся все более и более мощными, они все еще имеют ограниченные вычислительную мощность, время автономной работы и объем памяти. А это — основные показатели, на которые нужно опираться при выборе аппаратного обеспечения. Однако сети разнятся по размеру входных данных и моделей. 

Чтобы сохранить сеть на диске, нужно записать значение каждого веса в сети. Сеть с параметрами в сотни миллионов (например, GoogLe-Net или VGG-16) может легко занять сотни мегабайт, что невозможно обеспечить на мобильном устройстве. Также следует помнить, что улучшение работы сети связано с получением и обработкой большого количества информации и вычисления будут требовать много времени и энергии.

Впрочем  использовать нейронные сети на смартфонах возможно. Существует два способа:

  1. Загружать исходную информацию на удаленный сервер, обрабатывать там и отправлять ответ обратно на смартфон. 
  2. Использовать NPU и обрабатывать информацию непосредственно на смартфоне.

Подтверждением тому служат телефоны со “смарт” или AI камерами, которые могут распознавать сцены, определяя, что находится на заднем плане, и регулируя настройки. 

Camera with AI

Готовые аппаратные решения для работы с нейросетями

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

Однако для массового производства роботов нецелесообразно подбирать каждый элемент “железа” отдельно. На помощь приходят готовые аппаратные решения. На сегодня самые популярные из них Google Сoral и NVidia Jetson nano.

Google Coral Edge TPU Dev Board

Компания Google разработала Coral Dev Board для быстрого создания прототипов оборудования для машинного обучения. Первое, что делает его уникальным — модуль Edge TPU. Этот модуль, известный как System On Module (SOM), находится на верхней части соединительной базовой платы и содержит все, что делает плату платой. Процессор, графический процессор, оперативная память, чип Wi-Fi и флэш-память — все это в одном съемном блоке, который можно быстро заменить. Основная плата содержит разъёмы для USB, LAN, HDMI, SD-карты, аудио и питания. Это означает, что технологии с коммерческим использованием в реальных условиях доступны тем, кто хочет использовать эту технологию дома. Вторая примечательная особенность — сопроцессор Google Edge TPU, о котором мы уже рассказали выше.

NVIDIA Jetson Nano 

Набор разработчика NVIDIA Jetson Nano — недорогой компьютер для разработок, связанных с искусственным интеллектом. Он невероятно энергоэффективен и потребляет всего 5 Вт. NVIDIA Jetson Nano может питаться от micro-USB и поставляется с широкими возможностями ввода-вывода, что облегчает разработчикам подключение разнообразного набора новых датчиков.

Также Jetson Nano поддерживается пакетом NVIDIA Jet Pack, доступным при помощи легко обновляемого образа SD-карты, что позволяет быстро и легко приступить к работе. Проверенный программный стек снижает сложность и упрощает разработки.

Более подробная разница между Google Сoral и NVidia Jetson nano представлена в сравнительной таблице:

Google Сoral Vs NVidia Jetson nano

Вывод: выбор аппаратного обеспечения для создания нейронной сети основывается на поставленных целях, ведь чем сложнее и обширней сеть, тем больше ресурсов для ее поддержания нужно. Однако результаты внедрения нейронок невероятно впечатляют. Кроме того, после выбора железа останется дело за малым — запустить и обучить нейросеть. Нужна помощь специалистов? Обращайтесь в Evergreen. Мы с удовольствием поможем вам с решением ваших задач.

21.11.2019
Рейтинг: 5 / 5 (1)