متشوق من https://github.com/mallorbc/gptneox20b_huggingface. يدير الاستدلال لـ GPT Neox 20b و OPT-30B
من الناحية المثالية لديك واحدة أو أكثر من وحدات معالجة الرسومات التي يبلغ مجموعها 48 جيجابايت من VRAM أو أكثر.
ومع ذلك ، حتى لو لم يكن بإمكانك تشغيل النموذج ، فسوف يستغرق الأمر وقتًا أطول بكثير.
على سبيل المثال ، سيستغرق الركض مع واحد 3090 بدلاً من دقيقتين حوالي 10 دقائق لإنشاء 100 رمز مقابل 10-30 ثانية إذا قمت بتشغيله واحدًا واحدًا.
إذا لم يكن لديك ما يكفي من VRAM ، فأنت بحاجة إلى التأكد من أن لديك كمية كافية من ذاكرة الوصول العشوائي للتعويض عنها.
إذا كنت ترغب في تنزيل الأوزان بالطريقة التي أقوم بها ، فأنت بحاجة إلى ما لا يقل عن 50 جيجابايت من VRAM لأوزان Float16 أو Bfloat16. إذا كنت ترغب في استخدام BFLOAT16 ، فيجب عليك التأكد من دعم وحدة المعالجة المركزية و GPU.
يتطلب واحدة أو أكثر من وحدات معالجة الرسومات التي مجموعها 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 ما لم يتمكن وحدة المعالجة المركزية/وحدة المعالجة المركزية/وحدة المعالجة المركزية/وحدة المعالجة المركزية. قد ترغب في سلوك مختلف.