Інші платформи ML з GPU

PaddlePaddle (PArallel Distributed Deep LEarning) – це відкрита, ефективна, гнучка та масштабована платформа DL, яка спочатку була розроблена вченими та інженерами Baidu з метою застосування DL до багатьох продуктів Baidu [PaddlePaddle]. У Baidu, PaddlePaddle використовується в продуктах та послугах з великою кількістю користувачів, включаючи прогнозування click-through rate (CTR), масштабну класифікацію зображень, оптичне розпізнавання символів (OCR), рейтинг пошуку, виявлення комп’ютерних вірусів, рекомендації тощо. Підтримується широкий спектр архітектур нейронних мереж та алгоритмів оптимізації. Дозволяє легко налаштовувати складні моделі, такі як переклад за допомогою нейронних машин з механізмом уваги або складні зв’язки в пам’яті.

MatConvNet – це набір інструментів MatLab, що реалізує CNN для програм комп’ютерного зору [MatConvNet], розроблений командою з комп’ютерного зору в Оксфорді, а також іншими науково-дослідними установами. Це проста та інтегруюча підтримка MatLab GPU, що може запускати та вивчати CNN з аналогічними до найкращих результатами. Доступно багато з попередньо натренованих моделей CNN, наприклад VGG, AlexNet для класифікації зображень, сегментації, розпізнавання обличчя та розпізнавання тексту. Важливою особливістю MatConvNet є надання будівельних блоків CNN як простих у використанні команд MatLab. MatConvNet не підтримує RBM та DBN і не підтримує OpenMP та OpenCL. Іншою слабкою стороною продукту є пропрієтарний характер MatLab.

The NVIDIA Deep Learning SDK, який є частиною набору інструментів NVIDIA, пропонує потужні інструменти та бібліотеки для проектування та розгортання програм DL з підтримкою графічних процесорів. Вона включає бібліотеки для примітивів DL, відеоаналітики, лінійної алгебри, розріджених матриць та комунікацій multiGPU. Бібліотека Deep Neural Network (cuDNN) NVIDIA CUDA – це бібліотека прискорених GPU примітивів для глибоких нейронних мереж, вона прискорює навчання на широко використовуваних фреймворах DL, включаючи Caffe2, MATLAB, CNTK, TensorFlow, Theano, PyTorch та ін. Інструменти NVIDIA Deep SDK для навчання – це двигун глибокого навчання (TensorRT), глибоке навчання для відео аналітики (DeepStream SDK), лінійна алгебра (cuBLAS), операції з розрідженою матрицею (cuSPARSE) та комунікація між багатьма GPU (NCCL).

Розвиток фреймворків і бібліотек DL є досить динамічним з багатьма цікавими продуктами. Змінення трендів  використання фреймворків і бібліотек DL на кінець 2017 року зображено на мал. 7, запозиченому з https://towardsdatascience.com. Важко зробити прогноз у цій швидко мінливій екосистемі, але ми можемо побачити основні тенденції, що виникають у використанні фреймворків DL: 1) тенденція, підтримувана Google з використанням Keras для швидкого прототипування та Tensorflow для виробництва, і 2) тренд, що підтримується Facebook, який використовує Pytorch для прототипування та Caffe2 для виробництва.

Мал. 7 Стан відкритих джерел глибокого навчання на кінець 2017 року [Bakker 2017]

Велика кількість фреймворків з глибинного навчання ускладнює розробку інструментів в одних фреймворках та використання їх в інших структурах (сумісність кадрів). Open Neural Network Exchange [ONNX] намагається вирішити цю проблему, запровадивши відкриту екосистему для взаємозамінних моделей AI. ONNX розробляється спільно Microsoft, Amazon та Facebook як проект з відкритим кодом, і спочатку буде підтримувати фреймворки DL Caffe2, PyTorch, MXNet та Microsoft CNTK (мал. 8).

Мал. 8 ONNX Відкрита екосистема для взаємозамінних моделей AI