参数的数量和量化决定了模型的大小,这是使用LLM的一个主要限制。
要使用 LLM,我们必须将模型放入内存中。使用 32 位浮点 (FP32),1 个参数需要 4 字节 RAM。
使用 16 位量化(BFLOAT16 或 FP16),我们可以将其减少到 1 个参数的 2 字节 RAM。
对于 8 位整数 (INT8),我们需要 1 字节的 RAM 用于 1 个参数。
因此,在内存中存储 10 亿 (1B) 个 LLM 参数需要大约 4GB 内存(32 位全精度)、2GB 内存(16 位半精度)和 1GB 内存(8 位精度)。
举例来说,我的 GeForce 2060 显卡有 6 GB 的内存,可以容纳大约 1.5B 参数@32 位,或 3B 参数@16 位,或 6B 参数@8 位。
但是,仅加载 CUDA 内核就会消耗 1-2GB 的内存。因此,实际上,您无法仅使用参数填满整个 GPU 内存。
训练 LLM 需要更多的 GPU RAM,因为优化器状态、梯度和前向激活每个参数都需要额外的内存 [3]。
选择 LLM 时,请查看 GPU 有多少 GB 的内存,然后选择合适的模型。使用 1B 参数 = 2GB@16 位或 1GB@8 位作为经验法则。
欢迎你分享你的作品到我们的平台上. http://www.shxcj.com 或者 www.2img.ai 让更多的人看到你的才华。
创作不易,觉得不错的话,点个赞吧!!!