-
Notifications
You must be signed in to change notification settings - Fork 443
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GPT3XL: generation doesn't work #42
Comments
С такой ошибкой сталкивался когда были не те версии llvm и тритона |
Да и да. Сейчас начал пробовать поставить triton==0.3.0 и вместе с ним llvm-10-dev. Пока уперся в то, что для версии 0.3 нужно сменить версию питона, в 3.6.5 проблемы с cmath библиотекой. Раз пока не понятно в чем дело, возможно подскажете на каких версия CUDA точно работает? |
Установка triton==0.3.0 и вместе с ним llvm-10-dev ничего не изменило, по прежнему модель нормально загружается с но так же падает при попытке ее вызвать |
Triton точно должен быть более ранней версии как указано. также мы тестили только на llvm-9-dev. У нас cuda 10.1. |
Вот странно, та же версия CUDA, что и у меня. Ок, я откачу triton до 0.2.3 и llvm-9-dev. Не знаю пока на что думать, может дело в версии питона, хотя вряд ли конечно. Ошибка связана с CUDA + triton. Спасибо за информацию! На всякий случай, сам pytorch CUDA видит, тензоры на GPU создает нормально. Что-то triton специфическое. |
|
Actually, it works on Titan RTX with CUDA 11.1 and Deepspeed built from 'sparse-attn-cuda11’ branch. Doesnt work on 3090 (and A100, probably), because Deepspeed aren’t using the unreleased version of Triton. Triton has very early support of latest GPUs. |
Получил такую же ошибку. Какое-нибудь решение удалось найти? |
@KyrmyzyOleg Насколько я понял, Triton имеет очень ограниченную поддержку GPUs, судя по комментариям выше. Точно работает на V100 и возможно на Titan RTX. Все остальные потребительские видеокарты не поддерживаются |
Печально всё. Под colab, значит, не запустить. |
@avostryakov dev версия Тритон поддерживает новые видеокарты. Я собрал Deepspeed из бранча |
Спасибо за информацию! Я еще почитал описание Triton. Заявляют поддержку карт с Compute Capability 7+. А это карты от RTX 2080 и выше. Так что мои GTX 1080ti не будут поддерживаться |
Расскажите пожалуйста поподробнее. У меня видюха 3090, и я поставил старую куду 10.1 как рекомендовано к этому репозиторию. И даже арех собрал с поддержной старой архитектуры 7.0.
Может я что-то не так делаю? |
Cuda 10.x не работает на новых видеокартах. Нужно ставить CUDA 11.1. |
@mgrankin А какую версию pytorch нужно использовать? Версия 1.8.1+cu111 даёт ошибку: |
Так, я обновил transformers до последней версии и теперь у меня другая ошибка:
Такое ощущение что в чекпоинте нету весов для разряжённого sparse слоя. |
В ранней версии лэйаут разряженной матрицы генерировался каждый раз заново. В текущей версии они генерируют его один раз и затем сохраняют/загружают. (Кажется, там присутствовал некоторый рандом, от которого пытались избавиться выставляя seed случайных чисел. От этого когда теперь можно избавиться при желании.) Что бы корректно загрузить модель достаточно указать |
Спасибо за помощь, но теперь у меня уже во время генерации такая ерунда выплыла: Может это потому что у меня версия тритона не та что вы указывали в переписке (той дев версии уже нет в репозитории) а немного поновее (triton==1.0.0.dev20210509)? P.S. нашел в обсуждении репы DeepSpeed deepspeedai/DeepSpeed#902 упоминание что похже на то что авторы тритона изменили АПИ удалив старую версию из pip. Стоит вопрос о том чтоб авторы данной доработки в DeepSpeed доработали свой коммит под новый тритон. |
@mgrankin Я перепроверил нотбук с генерацией текста, там есть такая ячейка:
И как раз на ней сейчас идёт ошибка:
Вы можете что-нибудь сказать на этот счёт? Куда вообще стоит копать? |
Попытался поставить старый питон, но что на 3.6 что на 3.7 выдаёт при загрузке следующее :
Может я на правильном пути и тут можно что-то исправить? |
Проблема решена. Оказывается triton динамически грузил библиотеку куды libcuda.so а у меня она была установлена как libcuda.so.1. Линкование исправило проблему. |
@exelents так у вас в итоге заработало с новой версией triton? Что нужно сделать для линкования правильной библиотеки? |
Я создал симлинк c /usr/lib/x86_64-linux-gnu/libcuda.so.1 на до этого не существовавший путь /usr/lib/x86_64-linux-gnu/libcuda.so и данная проблема с "dlsym unable to load function" ушла |
И да, у меня стоит версия тритона triton==0.4.0, помню что новая, которая на 1.0 начинается не подходила. |
@exelents спасибо, буду пробовать. Для будущих поколений тут отпишусь. |
А можно подробнее? Какая версия torch, какая версия triton? Собирали deepspeed из ветки, или какой версии? Очень хочу запустить на 3090, памяти на 2080 очень мало. Потому что triton 0.4.0 удалили. Какая версия Питона? |
@megamen32 у меня заработало с triton==0.4.2
|
|
@Artyrm Но ведь cuda 10.x не работает для 3090. Или это не важно? Но ведь pytorch ругаеться что sm_38 не поддерживается в этой версии torch. |
@megamen32 по 3090 не могу сказать, я в Colab, там P100. Но вот Экселенц написал выше, что у него Cuda 11.1, и у него заработало ещё раньше меня и на своём железе. |
@exelents
Ошибка:
Вот прекрасный вывод ds_report
|
@megamen32 судя по ошибке, я бы попробовал для начала с отключенным fp16 запустить, памяти вроде должно хватить. Или ключ вроде fp16=False должно быть возможным куда-то передать, ну или прямо в исходниках найти, где ключ задаётся. А вы попробовали запускать с минимальными отличиями конфигурации от приведённых в примере? Вроде например triton=0.4.2 , а версии остального те же? Кстати, Deepspeed = 0.5.0 у меня тоже что-то ломает, остался на 0.4.5 пока. |
@Artyrm Точно тоже самое если закомментить
Проблема в тритоне. Я даже находил в их коммитах что-то по поводу autotune и matmul
|
@megamen32 мельком глянул стек ошибки - похоже какая-то проблема с операцией matmul для sparce attention в deepspeed. В файле DeepSpeed-triton3/deepspeed/ops/sparse_attention/init.py
Закомментить
В файле DeepSpeed-triton3/deepspeed/ops/sparse_attention/sparse_self_attention.py
Закомментить
PS и пересобрать DeepSpeed Ну и в принципе поискать по проекту, не добавили ли они нигде еще импортов MatMul и Softmax. |
Пардон, обновил инструкцию редактирования для init.py, ошибочка вышла. |
Заработало вы гений! @exelents . Завтра выложу полный скрипт. Огромное спасибо!!! |
@megamen32 , @exelents , есть новости? У меня ошибки как в изначальном посте, |
@mgrankin , скажите, пожалуйста, а их можно перегенерировать, что ли? |
@avostryakov , а Вам удалось запустить? |
@kuraga Вот полный скрипт.
Правда я помню там еще проблемы с установкой apex бывают. Вроде я их так подправлял.
П.С Я совсем новичок в этих ваших bash. Но может даже этот плохой скрипт кому-то пригодиться |
@megamen32 , спасибо большое! По идее должно работать. Но, увы, без fp16 Alenush/rugpt3simplification_rsse#2 (comment) |
Поставил все так же как в этом ноутбуке у себя локально: https://github.com/sberbank-ai/ru-gpts/blob/master/examples/ruGPT3XL_generation.ipynb
Модель нормально загружается в память, но при обращении к модели падает:
gpt("Кто был президентом США в 2020? ").logits
Единственное мое подозрение, что у меня стоит две версии CUDA 9.2 и 10.1. Я везде настроил пути на 10.1, но возможно все же triton смотрит на 9.2. Возможно вы сталкивались с такой ошибкой?
Возможно нужно поставить CUDNN? У меня для 10.1 не стоит
The text was updated successfully, but these errors were encountered: