ChatGPT-3 找出运行LLM模型的一般规范

cwtwac6a  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(166)

我有三个问题:
给定以十亿为单位的LLM参数计数,您如何计算运行模型需要多少GPU RAM?
如果您有足够的CPU RAM(即没有GPU)你能运行这个模型吗,即使它很慢
你能在混合的GPU-RAM和CPU-RAM中运行LLM模型(如h2ogpt,open-assistant)吗?

olqngx59

olqngx591#

多少vram?

推理通常在float 16中运行,这意味着每个参数2个字节。对于一个7 B参数模型,你需要大约14 GB的内存来以float 16精度运行它。通常训练/微调在float 16或float 32中完成。推理通常在float 16中马上就能很好地工作。在某些情况下,模型可以被量化并在int 8或更小的范围内有效运行。

如果有足够的RAM,你能在CPU上运行模型吗?

通常是的,但取决于模型和库。可能会发生某些层未为CPU实现。

您可以在CPU/GPU混合模式下运行吗?

许多库现在支持在CPU上运行某些层,在GPU上运行其他层。例如,Huggingface Transformers库支持将图层自动Map到所有设备,这意味着它将尝试最大限度地填充GPU,并将其余部分卸载到CPU。为此,在加载模型时将device_map设置为auto。

from transformers import AutoModelForCausalLM, AutoTokenizer   
tokenizer = AutoTokenizer.from_pretrained("OpenAssistant/stablelm-7b-sft-v7-epoch-3")
model = AutoModelForCausalLM.from_pretrained("OpenAssistant/stablelm-7b-sft-v7-epoch-3",
                                             device_map="auto")

相关问题