Bifurado desde https://github.com/mallorbc/gptneox20b_huggingface. Ejecuta inferencia para GPT NEOX 20B y OPT-30B
Idealmente, tiene una o más GPU que totalizan 48 GB de VRAM o más.
Sin embargo, incluso si no lo hace, aún puede ejecutar el modelo, solo llevará mucho más tiempo.
Por ejemplo, correr con un 3090 en lugar de dos tomaría alrededor de 10 minutos para generar 100 tokens frente a 10-30 segundos si lo ejecutas dos GPU.
Si no tiene suficiente VRAM, debe asegurarse de tener suficiente RAM para compensarlo.
Si desea descargar los pesos como lo hago, necesita aproximadamente al menos 50 GB de VRAM para los pesos Float16 o BFloat16. Si desea usar BFLOAT16, debe asegurarse de que su CPU y GPU lo admitan.
Requiere una o más GPU que totalizan en 70 GB de VRAM o más. Similar a GPT-NEOX, el modelo aún se ajustará a la CPU, pero el OptDecoderLayer es dolorosamente lento usando la inferencia de la CPU.
pip3 install -r requirements.txt
python3 main.py # for GPT NeoX 20B
# or alternatively
python3 main_opt.py # for OPT-30B
Hay dos banderas, cada una se puede ver con -h
Use el indicador --fp16 para cargar y guardar los pesos en el modo Float16.
Use el indicador --bf16 para cargar y guardar los pesos en modo BFLOAT16.
Use BFLOAT16 cuando pueda, ya que sea mejor.
Cuando se ejecuta, el modelo siempre se lanzará a BFLOAT16 a menos que su GPU/CPU no pueda manejarlo. Puede desear un comportamiento diferente.