Я пытаюсь обучить модель PyTorch FLAIR в AWS Sagemaker. При этом возникает следующая ошибка:
RuntimeError: CUDA out of memory. Tried to allocate 84.00 MiB (GPU 0; 11.17 GiB total capacity; 9.29 GiB already allocated; 7.31 MiB free; 10.80 GiB reserved in total by PyTorch)
Для обучения я использовал класс sagemaker.pytorch.estimator.PyTorch.
Я пробовал с разными вариантами типов инстансов от ml.m5, g4dn до p3 (даже с 96 ГБ памяти). В ml.m5 возникает ошибка с CPUmemoryIssue, в g4dn с GPUMemoryIssue и в P3 с GPUMemoryIssue в основном потому, что Pytorch использует только один графический процессор объемом 12 ГБ из 8 * 12 ГБ.
Ничего не получилось завершить это обучение, даже при локальной попытке с машиной с ЦП и полученной следующей ошибкой:
RuntimeError: [enforce fail at ..\c10\core\CPUAllocator.cpp:72] data. DefaultCPUAllocator: not enough memory: you tried to allocate 67108864 bytes. Buy new RAM!
Сценарий обучения модели:
corpus = ClassificationCorpus(data_folder, test_file='../data/exports/val.csv', train_file='../data/exports/train.csv')
print("finished loading corpus")
word_embeddings = [WordEmbeddings('glove'), FlairEmbeddings('news-forward-fast'), FlairEmbeddings('news-backward-fast')]
document_embeddings = DocumentLSTMEmbeddings(word_embeddings, hidden_size=512, reproject_words=True, reproject_words_dimension=256)
classifier = TextClassifier(document_embeddings, label_dictionary=corpus.make_label_dictionary(), multi_label=False)
trainer = ModelTrainer(classifier, corpus, optimizer=Adam)
trainer.train('../model_files', max_epochs=12,learning_rate=0.0001, train_with_dev=False, embeddings_storage_mode="none")
P.S .: Я смог обучить ту же архитектуру с меньшим набором данных на моем локальном компьютере с графическим процессором с 4 ГБ памяти GTX 1650 DDR5, и это было действительно быстро.