Развертывание модели PyTorch в GCP, что привело к превышению лимита памяти - PullRequest
1 голос
/ 12 октября 2019

Я обучил языковую модель, используя transformer-lm , которая использует PyTorch. Я хотел бы развернуть полученную модель в облачной платформе Google в качестве облачной функции. Облачные функции ограничены 2 ГБ памяти.

Проблема заключается в том, что загрузка модели приводит к ошибке, так как используется слишком много памяти (превышен лимит памяти). Файл model.pt составляет 1,32 ГБ, и я использую

torch.load(model_path / 'model.pt', map_location='cpu')

для загрузки модели. Есть ли способ, чтобы я) сжать модель? II) не загружать полную модель сразу? или любая другая возможность заставить его работать на GCP?

1 Ответ

1 голос
/ 15 октября 2019

Облачные функции запускают свои собственные экземпляры сервера при запуске. Если вызванная функция не используется через некоторое время, этот экземпляр завершается. Однако, если вы вызовете его снова, пока экземпляр еще работает, тот же экземпляр вместе с элементами в вашей среде выполнения будет использоваться снова. Это может привести к сбою вашей функции.

Чтобы избежать этого, вы можете захотеть внедрить Сборщик мусора . В Python вы можете использовать для этого модуль gc . В частности, вы можете попробовать функцию gc.collect(), чтобы очистить память.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...