Forked von https://github.com/mallorbc/gptneox20b_huggingface. Läuft die Schlussfolgerung für GPT neox 20b und opt-30b
Idealerweise haben Sie einen oder mehrere GPUs mit insgesamt 48 GB VRAM oder mehr.
Selbst wenn Sie es nicht tun können, können Sie das Modell trotzdem ausführen, es dauert nur viel länger.
Zum Beispiel würde das Laufen mit einem 3090 statt zwei etwa 10 Minuten dauern, um 100 Token gegenüber 10-30 Sekunden zu erzeugen, wenn Sie es um einen zwei GPUs betreiben.
Wenn Sie nicht genug VRAM haben, müssen Sie sicherstellen, dass Sie genug RAM haben, um das auszugleichen.
Wenn Sie die Gewichte so herunterladen möchten, wie ich es tue, benötigen Sie ungefähr mindestens 50 GB VRAM für das Float16- oder Bfloat16 -Gewicht. Wenn Sie BFLOAT16 verwenden möchten, müssen Sie sicherstellen, dass Ihre CPU und GPU sie unterstützen.
Benötigt einen oder mehrere GPUs, die in 70 GB VRAM oder mehr insgesamt insgesamt sind. Ähnlich wie bei GPT-NeOX passt das Modell weiterhin in die CPU, aber die OptdeCoderLayer wird unter Verwendung von CPU-Inferenz schmerzlich langsam.
pip3 install -r requirements.txt
python3 main.py # for GPT NeoX 20B
# or alternatively
python3 main_opt.py # for OPT-30B
Es gibt zwei Flaggen, die jeder mit -h gesehen werden kann
Verwenden Sie das Flag --fp16 , um die Gewichte im Float16 -Modus zu laden und zu speichern.
Verwenden Sie das Flag --bf16 , um die Gewichte im Bfloat16 -Modus zu laden und zu speichern.
Verwenden Sie Bloat16, wenn Sie können, wie es besser ist.
Beim Laufen wird das Modell immer an Bfloat16 gegossen, es sei denn, Ihre GPU/CPU kann es nicht verarbeiten. Sie können ein anderes Verhalten wünschen.