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

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

Меня зовут Андрей Курганов, я один из разработчиков PuzzleLib, и здесь я хотел бы рассказать о нашем ноу-хау.

Что такое PuzzleLib?

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

Аналоги: TensorFlow от Google, Torch от Facebook, CNTK от Microsoft.

Что важно для фреймворка?

  • Алгоритмы: библиотека должна поддерживать классические нейронные алгоритмы, реализованные в виде вычислительных модулей.
  • Поддержка ЦП и ГП: обучение лучше с ГП, но поддержка ЦП может иметь решающее значение, когда невозможно использовать дорогие ГП.
  • Кросс-платформенность: очень важно иметь возможность использовать Deep Learning в различных операционных системах и процессорах, например на мобильных.
  • Скорость: обучение нейронной сети для работы с большими данными может занять несколько дней. Для рабочего процесса важно ускорение в 1,5–2 раза. Кроме того, в приложениях реального времени важна быстрая обработка данных (например, анализ видео на борту).

Преимущества PuzzleLib

  • Скорость сопоставима с Facebook Torch. Мы достигаем максимальной скорости, потому что используем только библиотеки NVIDIA для низкоуровневых вычислений и эффективное использование ресурсов процессора.
  • Мы поддерживаем вывод и обучение CPU и GPU.
  • Intel, ARM, Байкал, поддержка NVIDIA.
  • Фреймворк поддерживает все самые популярные операционные системы: семейство Linux, Windows, Mac OS, iOS и Android.
  • Мы реализовали методику автоматической оптимизации вычислений. В некоторых случаях это удваивает скорость обучения сети.
  • Реализовано более 60 нейронных модулей, позволяющих строить сверточные и рекуррентные нейронные сети, а также сети с настраиваемыми вычислительными графами. Список поддерживаемых модулей можно найти ниже.
  • Кривая обучения PuzzleLib намного короче.
  • PuzzleLib - это наша собственная запатентованная IP.

Модули PuzzleLib

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

Базовые модули:

  • Активация (Sigmoid, Tanh, ReLU, ELU, LeakyReLU, SoftMaxPlus)
  • AvgPool (1D, 2D, 3D)
  • BatchNorm (1D, 2D, 3D, ND)
  • Конв. (1D, 2D, 3D, ND)
  • CrossMapLRN
  • Деконв (1D, 2D, 3D, ND)
  • Выпадение (1D, 2D)
  • GroupLinear
  • InstanceNorm2D
  • KMaxPool
  • LCN
  • Линейный
  • LRN
  • MapLRN
  • MaxPool (1D, 2D, 3D)
  • MaxUnpool2D
  • Бассейн (1D, 2D, 3D)
  • RNN
  • SoftMax
  • SubtractNorm
  • Повышение дискретизации (2D, 3D)

Специальные модули:

  • Встроить
  • SpatialTf

Дополнительные модули:

  • Добавлять
  • Concat
  • Глубина
  • Сплющивать
  • Клей
  • Личность
  • MoveAxis
  • Mul
  • MulAddConst
  • NoiseInjector
  • Пенальти
  • Тиражировать
  • Изменить форму
  • Расколоть
  • Сумма
  • SwapAxes
  • Плитка
  • К списку
  • Транспонировать

Алгоритмы оптимизации, реализованные в PuzzleLib

Для обучения нейронной сети необходимо итеративно обновлять ее веса, используя алгоритм, называемый «оптимизатором». Для разных задач (например, регрессии, классификации текстов или изображений) нужны разные оптимизаторы.

  • АдаДельта
  • АдаГрад
  • Адам
  • Крючки
  • LBFGS
  • MomentumSGD
  • НестеровСГД
  • RMSProp
  • RMSPropGraves
  • SGD
  • СМОРМС3

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

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

Посетите официальный сайт SOVA

ИЛИ пообщайтесь с нами в Telegram.

Не забывай хлопать! Я очень старался написать эту статью, похвалите меня за это :-)