
在深入研究PEFT方法之前,重要的是要理解为什么完全微调的成本会非常高。
诸如GPT-2和BERT之类的第一批LLM现在可能被认为是小型的,但当它们发布时,我们从未处理过如此大型的模型。在分多个阶段发布后,OpenAI的GPT-2被提议分为小型、中型、大型和XL尺寸,分别包含1.37亿、3.8亿、8.12亿和16.1亿个参数。
BERT模型的大小相似:分别为1.1亿和3.36亿。虽然在消费级硬件上微调这些模型已经极具挑战性,但与最近的大型语言模型(LLM)的规模相比,这些规模根本不算什么。例如,最大的Llama 3模型有4050亿个参数。谷歌的Switch是有史以来提出的最大的LLM之一,拥有1.6T参数。
在本节中,我们将评估微调大型语言模型在 GPU 内存消耗方面的成本。请注意,我在本节中建立了一些公式,用于形式化和编写内存消耗估算器。
首先,我们将了解如何快速估算加载大型语言模型的精确内存消耗。然后,我们将估算为微调而创建的优化器状态和梯度的内存消耗。最后一个部分,我们将估算模型的激活内存消耗,这是最复杂的部分,也是最近似的部分,因为它没有考虑现代深度学习框架(如 PyTorch)中实现的任何优化。尽管如此,了解微调框架需要创建和存储什么来更新模型的参数仍然是有益的。
模型内存消耗
我们从 Llama 3.1 8B 开始举例。该模型以 bfloat16 参数进行

订阅专栏 解锁全文
593

被折叠的 条评论
为什么被折叠?



