要使用拥抱脸模型,什么是分片(与检查点相同)?我需要全部吗?

问题描述 投票:0回答:1

我想将其用于零样本 QA 模型:https://huggingface.co/nvidia/NVLM-D-72B/tree/main 当我使用以下命令下载它时,它开始下载 46 个分片。上面的链接中有46个bin文件。我需要全部吗?我还可以做什么来使用这个模型进行零样本 QA?

path = "nvidia/NVLM-D-72B" model = AutoModel.from_pretrained( path, torch_dtype=torch.bfloat16, low_cpu_mem_usage=True, use_flash_attn=False, trust_remote_code=True).eval()

我尝试运行代码,它的磁盘空间太大。我有能力做到,但我想知道是否需要这样做?

nvidia huggingface-transformers large-language-model huggingface
1个回答
0
投票

分片基本上是共享检查点,当模型太大而无法装入内存时,有利于使用,请查看https://huggingface.co/docs/accelerate/v0.19.0/en/usage_guides/big_modeling#分片检查点。换句话说,它们是经过训练的模型参数,您确实需要所有这些参数才能使用模型。

如果您查看 https://huggingface.co/nvidia/NVLM-D-72B/blob/main/model.safetensors.index.json,您将看到它将 80 个主层的每个子层映射到该文件它发现于。

关于所需的内存,您可以查看此工具来估计内存使用情况:https://hf-accelerate-model-memory-usage.hf.space/。您会发现,以默认 float32 精度运行模型需要大约 300 GB。如果你想减少它,你应该考虑量化,这会大大降低这一点,请查看https://huggingface.co/docs/accelerate/usage_guides/quantization

© www.soinside.com 2019 - 2024. All rights reserved.