Локальное открытие сохраненной модели transformers

#python #nlp #huggingface-transformers

#питон #нлп #обнимашки-трансформеры

Вопрос:

У меня есть сохраненная модель трансформаторов, использующая BertModel.from_pretrained('test_model')

Я обучил эту модель с помощью графических процессоров Google colab

Затем я хочу открыть его, BertModel.from_pretrained('test_model/') но у меня нет графического процессора на моем локальном компьютере. Я понимаю это:

 /home/seiji/.local/lib/python3.8/site-packages/torch/cuda/__init__.py:52: UserWarning: CUDA initialization: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx (Triggered internally at  /pytorch/c10/cuda/CUDAFunctions.cpp:100.)
  return torch._C._cuda_getDeviceCount() > 0
 

Что мне делать? Я понятия не имею, как я могу открыть его с помощью процессора. И возможно ли это?

Ответ №1:

Лучшее, что вы можете сделать, это сохранить версию модели для процессора, то есть:

 model.cpu().save_pretrained("model_directory")
 

Все предварительно обученные модели Huggingface в любом случае сохраняются как модели CPU, и вам всегда нужно явно перемещать их в GPU.

PyTorch позволяет загружать модели GPU на CPU (см. https://discuss.pytorch.org/t/on-a-cpu-device-how-to-load-checkpoint-saved-on-gpu-device/349 ), но аргументы torch.load , которые вам нужно было бы установить, не предоставляются через API, поэтому вам нужно будет написать свой собственный from_pretrained метод.