Сьогодні нейронні мережі використовуються для розв’зку багатьох бізнес-задач, таких як, прогнозування продажів, дослідження клієнтів, перевірка даних та управління ризиками. Наприклад, у медицині оцінка кардіологічних захворювань, проведена нейронною мережею, виявилася точніше оцінки лікарів.
Що ж стоїть за настільки вражаючими результатами? Відповідь проста: величезні обчислювальні потужності та складні алгоритми. У цій статті ми поговоримо про те, як правильно підібрати апаратне забезпечення для запуску нейронної мережі, що зможе допомогти вашому бізнесу.
Почнемо збірку заліза з найважливішого компонента — процесора. Існує безліч видів процесорів, але не всі підходять для швидкої і ефективної роботи з нейромережами. Звичайні CPU, що використовуються у персональних комп'ютерах, не підходять для роботи нейронних мереж. Для роботи вам знадобляться GPU і TPU.
Ядра GPU — вбудовані у великій кількості спрощені версії більш складних ядер центрального процесора (CPU), завдяки їм графічний процесор має високий рівень паралелізму і, отже, кращу продуктивність. Спочатку такі процесори були створені для загальної графічної обробки, але пізніше з'ясувалося, що вони добре підходять для обчислювальних операцій, таких як, множення матриць, що безпосередньо пов'язано з нейронними мережами.
Залежно від поставленої задачі використовується різна кількість графічних процесорів. У роботі з нейронними мережами чотири GPU — максимум, який зазвичай знадобиться одному комп'ютеру. Перевага використання декількох GPU полягає у тому, що ви можете запускати кілька експериментів одночасно, по одному на кожному графічному процесорі, навіть якщо не виводити алгоритми паралельно. Таким чином ви не отримуєте прискорення, але отримуєте більше інформації про продуктивність, використовуючи різні алгоритми або параметри одночасно.
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, спеціально для прискорення обчислень лінійної алгебри та виконання швидкого і громіздкого множення матриць. На сьогодні, даний процесор — один із найбільш передових пристроїв для навчання нейронних мереж.
Купівля оперативної пам'яті з дуже високою тактовою частотою.
Недостатній обсяг оперативної пам'яті для роботи нейронної мережі.
Важливо! Об'єм оперативної пам'яті не впливає на продуктивність навчання мережі, але забезпечує комфортну роботу з графічним процесором.
Якщо ви використовуєте жорсткий диск, переконайтеся, що на ньому достатньо вільного місця. Багато хто говорить, що наявність SSD важливо для швидкого введення-виведення з великими наборами даних, але в дійсності це не потрібно, якщо ви зберігаєте дані, наприклад, в файлах TFRecord у TensorFlow.
1. Материнські плати і шасі. Вибір материнської плати безпосередньо пов'язаний із кількістю процесорів, які ви плануєте використовувати. Отримайте материнську плату (з підтримкою PCIe 3.0), що підтримує роз'єми живлення PCIe (8 + 6 контактів) за допомогою одного кабелю. Це дозволить вам додати більше графічних процесорів, в випадки нейронок 4. Те саме стосується шасі. Переконайтеся, що у нього достатньо слотів PCIe для підтримки графічних процесорів і інших карт, які ви можете встановити. 1 графічний процесор = 2 слота PCIe.
2. Охолодження. Якщо не подумати про спосіб охолодження, можна зіткнутися з проблемами високих температур. В цьому випадку графічні процесори будуть працювати повільніше (близько 30%) або можуть згоріти. Ви можете вибрати повітряне охолодження, що легко встановлюється, але працює шумно. Або перейдіть на охолоджену воду, яка є більш дорогою і представляє деякі труднощі для встановлення. Однак система з водяним охолодженням краще, бо буде підтримувати всі компоненти в холодному стані і практично не створюватиме шуму.
3. Електроживлення. Чим вища ефективність, тим краще для вас. Для системи з 4 GPU буде потрібно від 1400 до 1600 Вт.
Вище ми писали про потужну комп'ютерну комплектацію заліза для запуску нейронних мереж. А потім задалися питанням: чи можна навчити нейромережу на смартфоні?
Хоча смартфони стають все більш і більш потужними, вони все ще мають обмежені обчислювальну потужність, час автономної роботи й обсяг пам'яті. А це - основні показники, на які потрібно спиратися при виборі апаратного забезпечення. Однак і мережі різняться за розміром вхідних даних і моделей.
Щоб зберегти мережу на диску, потрібно записати значення кожного ваги в мережі. Мережа з параметрами в сотні мільйонів (наприклад, GoogLe-Net або VGG-16) може легко зайняти сотні мегабайт, що неможливо забезпечити на мобільному пристрої. Також слід пам'ятати, що поліпшення роботи мережі пов'язано з отриманням і обробкою великої кількості інформації і обчислення вимагатимуть багато часу й енергії.
Втім використовувати нейронні мережі на смартфонах можливо. Існує два способи:
Підтвердженням тому служать телефони зі "смарт" або AI камерами, які можуть розпізнавати сцени, визначаючи, що знаходиться на задньому плані, і регулюючи налаштування.
https://www.pocket-lint.com/
Машинне навчання, а саме використання нейронних мереж, безпосередньо пов'язане з розробкою роботів. Впровадження нейромереж забезпечує машині можливість самостійно пересуватися і минати об'єкти, розпізнаючи і оцінюючи оточення. І це тільки один із прикладів. Більше про використання нейронних мереж у робототехніці дивіться у відео:
Однак для масового виробництва роботів недоцільно підбирати кожен елемент "заліза" окремо. На допомогу приходять готові апаратні рішення. На сьогодні найпопулярніші з них Google Сoral і NVidia Jetson nano.
Компанія Google розробила Coral Dev Board для швидкого створення прототипів обладнання для машинного навчання. Перше, що робить його унікальним - модуль Edge TPU. Цей модуль, відомий як System On Module (SOM), знаходиться на верхній частині сполучної базової плати і містить все, що робить плату платою. Процесор, графічний процесор, оперативна пам'ять, чип Wi-Fi і флеш-пам'ять - все це в одному найманому блоці, що можна швидко замінити. Основна плата містить роз'єми для USB, LAN, HDMI, SD-карти, аудіо та живлення. Це означає, що технології з комерційним використанням у реальних умовах доступні тим, хто хоче використовувати дану технологію вдома. Друга примітна особливість - співпроцесор Google Edge TPU, про який ми вже розповіли вище.
Набір розробника NVIDIA Jetson Nano - недорогий комп'ютер для розробок, пов'язаних зі штучним інтелектом. Він неймовірно енергоефективний і споживає всього 5 Вт. NVIDIA Jetson Nano може харчуватися від micro-USB і поставляється з широкими можливостями введення-виведення, що полегшує розробникам підключення різноманітного набору нових датчиків.
Також Jetson Nano підтримується пакетом NVIDIA Jet Pack, доступним за допомогою легко оновлюваного образу SD-карти, що дозволяє швидко і легко приступити до роботи. Перевірений програмний стек знижує складність і спрощує розробки.
Більш детальна різниця між Google Сoral і NVidia Jetson nano представлена в порівняльній таблиці:
https://towardsdatascience.com/
Висновок: вибір апаратного забезпечення для створення нейронної мережі ґрунтується на поставленій меті, адже чим складніша й обширніша мережа, тим більше ресурсів для її підтримки потрібно. Однак результати впровадження нейронок неймовірно вражають. Крім того, після вибору заліза залишиться справа за малим - запустити і навчити нейромережа. Потрібна допомога фахівців? Звертайтеся в Evergreen. Ми із задоволенням допоможемо вам з рішенням ваших завдань.