fbpx
  • NVIDIA выпустили обертку над PyTorch для обучения моделей

    Neural Modules (NeMo) — это библиотека от NVIDIA для обучения нейросетевых моделей. NeMo основана на PyTorch. NeMo делится на коллекции моделей для задач из отдельных сфер. Сейчас доступны две коллекции: nemo_asr для распознавания речи и nemo_nlp для обработки естественного языка.

    Ключевым юнитом в библиотеке является “нейронный модуль” (Neural Module). Разработчики называют так черный ящик, который принимает на вход данные, а на выходе отдает предсказания на основе входных данных. Входные и выходные данные в нейронных модулях проверяются на соответствие типам с помощью “нейронного типа” (Neural Type).

    Приложение, построенное на основе NeMo, — это направленный ациклический граф (DAG). DAG состоит из связанных модулей и позволяет обращаться к различным модулям через API.

    Разработчики выпустили видеодемонстрацию работы библиотеки. Помимо демонстрации возможностей библиотеки, есть тьюториалы по работе с библиотекой для решения NLP задач и задач анализа речи.

    Ключевые концепции и опции

    Среди составных частей библиотеки:

    • Класс NeuralModule реализует нейронный модуль;
    • NmTensor представлет функции активации, которые находятся между портами нейронных модулей;
    • NeuralType представляет типы портов модулей и NmTensors;
    • NeuralFactory нужна, чтобы создавать нейронные модули и контролировать обучение;
    • Lazy execution — при описании функции активации между нейронными модулями, операция не исполнится, если не вызвать (such as optimizer.optimize(…);
    • Collections — NeMo делится на коллекции моделей для задач из отдельных сфер. Сейчас доступны две коллекции: nemo_asr для распознавания речи и nemo_nlp для обработки естественного языка