Каков наилучший способ использования многопроцессорного логического процессора для моделей PyTorch? - PullRequest
2 голосов
/ 20 марта 2019

Я должен произвести модель ответа на вопрос PyTorch BERT.Процесс загрузки процессора очень медленный для меня, так как для каждого запроса модель должна оценивать 30 выборок.Из результатов этих 30 выборок я выбираю ответ с максимальной оценкой.Мне будет слишком дорого использовать графический процессор для вывода.

Можно ли использовать для этого многопроцессорный / параллельный вывод процессора?Если да, то как лучше это делать?Если Нет, есть ли облачная опция, которая выставляет мне счет только за запросы графического процессора, которые я делаю, а не за непрерывный запуск экземпляра графического процессора?

Ответы [ 2 ]

2 голосов
/ 20 марта 2019

Вы можете попробовать следующее:

Используйте Intel Pytorch для лучшей производительности. См. https://github.com/intel/pytorch для установки Pytorch с оптимизированными функциями Intel.

Вы можете использовать библиотеки Intel Optimized Python. при создании вашей среды убедитесь, что вы передаете канал Intel. Например: conda create -n env_name python = 3.6 -c intel . Также вы можете установить определенные библиотеки с каналом Intel.

Другой вариант - попробовать использовать многоузловое распределенное обучение с использованием Horovod для PyTorch. Для получения дополнительной информации см. Ссылку https://github.com/horovod/horovod#pytorch.

0 голосов
/ 21 марта 2019

Еще один возможный способ повысить производительность - максимально уменьшить модель.

Одним из наиболее перспективных методов являются квантованные и бинаризованные нейронные сети.Вот некоторые ссылки:

  1. https://arxiv.org/abs/1603.05279
  2. https://arxiv.org/abs/1602.02505
...