Разветвлен от https://github.com/mallorbc/gptneox20b_huggingface. Запускает вывод для GPT Neox 20B и OPT-30B
В идеале у вас есть один или несколько графических процессоров, которые составляют 48 ГБ VRAM или более.
Однако, даже если вы этого не сделаете, вы все равно можете запустить модель, это займет гораздо больше времени.
Например, бег с одним 3090, а не двумя, потребуется около 10 минут, чтобы генерировать 100 токенов против 10-30 секунд, если вы запустили один два графических процессора.
Если у вас недостаточно VRAM, вам нужно убедиться, что у вас достаточно оперативной памяти, чтобы компенсировать его.
Если вы хотите загрузить веса так, как я, вам нужно примерно по крайней мере 50 ГБ VRAM для весов Float16 или BFLOAT16. Если вы хотите использовать Bfloat16, вам нужно убедиться, что ваш процессор и графический процессор поддерживают его.
Требуется один или несколько графических процессоров, которые всего в 70 ГБ VRAM или более. Подобно GPT-neox, модель по-прежнему будет вписаться в процессор, но Optdecoderlayer болезненно медленно с использованием вывода процессора.
pip3 install -r requirements.txt
python3 main.py # for GPT NeoX 20B
# or alternatively
python3 main_opt.py # for OPT-30B
Есть два флага, каждый из них можно увидеть с -h
Используйте флаг --fp16 , чтобы загрузить и сохранить веса в режиме Float16.
Используйте флаг --bf16 , чтобы загрузить и сохранить веса в режиме BFLOAT16.
Используйте BFLOAT16, когда вы можете, как лучше.
При запуске модель всегда будет подчиняться Bfloat16, если ваш графический процессор/процессор не сможет с этим справиться. Вы можете желать другого поведения.