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

Китайская компания Baidu, развивающая одноимённую поисковую систему, объявила об открытии исходных текстов своих наработок в области глубинного машинного обучения. В настоящее время опубликован предварительный выпуск ПО PaddlePaddle (PArallel Distributed Deep LEarning), финальная версия которого ожидается 30 сентября. Код открыт под лицензией Apache 2.0.

В качестве преимущества PaddlePaddle перед ранее открытыми разработами компаний Google, Microsoft, Facebook и Amazon, называется существенное упрощение использования системы и гибкость в адаптации для решаемых задач. PaddlePaddle позиционируется как универсальная система машинного обучения, подходящая для различных сценариев применения. По заявлению разработчиков, для создания программы перевода при использовании PaddlePaddle потребовалось написать в четыре раза меньше кода, чем при использовании доступных аналогов. В настоящее время PaddlePaddle уже применяется в более 30 различных продуктов и сервисов Baidu, охватывая области от поиска, до финансов и здравоохранения. Опубликованные демонстрационные примеры охватывают такие области как классификация изображений, анализ тональности текста, выработка рекомендаций и генерация текста.

Основные особенности PaddlePaddle:

  • PaddlePaddle поддерживает широкий спектр архитектур нейронных сетей и алгоритмов оптимизации. При помощи PaddlePaddle можно достаточно просто сконфигурировать сложные модели, такие как нейронные сети для машинного перевода;
  • Эффективность. Возможность задействовать все ресурсы гетерогенных систем с оптмизиацией на различных уровнях, включая память, архитектуру и коммуникации. Например, математические операции оптимизируются при помощи инструкций SSE/AVX, библиотек BLAS (MKL, ATLAS, cuBLAS) и адаптированных вычислительных ядер для CPU/GPU. Другим примером может быть создание выскооптимизированых рекурентных сетей, которые могут работать с последовательностями произвольной длины без промежуточного заполнения (padding). Поддерживаются оптимизированные локальные и распределённые методы обучения для моделей с разреженными данными в пространстве высокой размерности;
  • Масштабируемость. Возможность построения распределённых систем обучения, в которых тренировка моделей может быть разнесена на несколько узлов кластера с привлечением многих CPU и GPU, и задействованием высокоскоростных коммуникаций для увеличения производительности параллельной обработки данных;
  • Простота развёртывания новых решений. В Baidu система применяется для решения таких задач, как предсказание интенсивности кликов, классификация больших коллекций изображений, распознавание символов (OCR), ранжирование при поиске, определение компьютерных вирусов, вывод рекомендованного контента и т.п. API доступен для языков Python и С++.