Closed exelents closed 3 years ago
Я дико извиняюсь, похоже сам нашел как забороть проблему. В файле pretrain_gpt3.py просто заменил оптимизатор:
# from apex.optimizers import FusedAdam as Adam
from deepspeed.ops.adam import DeepSpeedCPUAdam as Adam
Надеюсь больше не будет подводных камней.
@exelents добрый день. не могли бы подсказать, я файл pretrain_gpt3 изменил. Но ошибку все равно получаю. " module 'apex' has no attribute 'optimizers'"
На этапе теста
import deepspeed.ops.sparse_attention.sparse_attn_op
Не могли бы вы привести полный стек ошибки? А заодно какую команду вы запускаете?
@exelents в Colab это помогло мне продвинуться дальше, но теперь вылетает с такой ошибкой:
> number of parameters on model parallel rank 0: 1315737600
--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID 0 on node 7507dafadf1d exited on signal 4 (Illegal instruction).
--------------------------------------------------------------------------
А у вас без проблем всё заработало?
UPD Я подумал, Colab же периодически меняет окружение, возможно у меня что-то скомпилировано было для другого уже, попробую пересобрать, например apex. UPD2. Не помогает, да и там и там Intel(R) Xeon(R) CPU @ 2.20GHz оказался, так что вряд ли в этом было дело... UPD3. Переустановил Deepspeed, стало лучше - процесс прошёл дальше. Очевидно, выбивает по объёму памяти. Думаю, что делать. Память-то как раз расширенная на Colab.
tcmalloc: large alloc 5260378112 bytes == 0x56198f3ac000 @ 0x7fcff3687b6b 0x7fcff36a7379 0x7fcf4e3aa74e 0x7fcf4e3ac7b6 0x7fcfd1ef0fa2 0x7fcfd21dbbd3 0x7fcfd21b3207 0x7fcfd21ce2dc 0x7fcfd21aa78a 0x7fcfd21b3207 0x7fcfd21ce2dc 0x7fcfd229a0dd 0x7fcfd1ee7a25 0x7fcfd240dc97 0x7fcfd245c525 0x7fcfd1abe0ce 0x7fcfd21d76f3 0x7fcfd21b0fa2 0x7fcfd1abe0ce 0x7fcfd21d76f3 0x7fcfd22bdc06 0x7fcfe1f7ba47 0x5618812ca0a4 0x5618812c9da0 0x56188133e868 0x5618812cb65a 0x561881339d67 0x561881338c35 0x5618812cbfec 0x56188130cbc9 0x561881309ac4
--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID 0 on node 7507dafadf1d exited on signal 9 (Killed).
на счёт памяти - не подскажу, у меня-то как раз памяти много, с OOM не сталкивался.
А насколько много?
В Colab сейчас у меня GPU Tesla P100-PCIE 16GB и соответственно 24GB ОЗУ. Дотренировывать пытаюсь на жалких 100кБ текста.
Как-то досадно, ведь вроде бы выложен Colab ноутбук как раз с примером, и у меня вроде максимум того, что возможно на Colab...
PS читаю ваши комментарии на github у Deepspeed :)
Очень много. Б/у серверное железо с кучей оперы, гораздо больше чем на коллабе. Видюха RTX3090 на ней соответственно 24 ГБ памяти. Тренируете на deepspeed? Попробуйте конфиг дипспида поставить тот который я вам сейчас прикреплю. gpt3_xl_sparse_2048_offload.json.zip
Да, на Deepspeed, иначе бы offload в ОЗУ не получился (хотя я сейчас смотрю, есть вроде флаги отдельные у трейнера, например
cpu_optimizer ................ False
cpu_torch_adam ............... False
К сожалению, не помог конфиг. Для будущих поколений приложу что добавлено в сравнении с моим.
В любом случае, спасибо!
Добрый день. Недавно при попытке файнтюнить самую большую GPT3XL столкнулся с ошибкой нехватки памяти. Попытался в конфиге deepspeed включить режим cpu_offload и обломался - выдаётся ошибка, см стек по ссылке: https://gist.github.com/exelents/dd64ddd745bfa732a809a6b3e9af678d
RuntimeError: expected input to be on cuda
Вопрос - что нужно сделать чтоб данная модель завелась в режиме cpu offload и возможно ли это вообще?