ReLoRa 在你的GPU上预训练大型语言模型
ReLoRa 在GPU上预训练语言模型
LoRa但连续多次复位
2021年,胡等人提出了低秩适配器(LoRa)用于LLMs。该方法通过仅训练少量添加参数(低秩网络),同时保持LLM的原始参数(高秩网络)冻结,显著降低了微调大型语言模型(LLMs)的成本。
使用LoRa,我们仍然需要一个现有的预训练模型来进行微调,即由于低秩限制,它无法从头开始预训练一个良好的LLM。这使得预训练对于大多数个人和组织来说是负担不起的。
为了降低这个成本,Lialin等人(2023)提出了ReLoRa。这是对LoRa的修改,允许从头开始预训练LLMs。
在本文中,我首先解释ReLoRa的工作原理。然后,我分析并评论了描述ReLoRa的科学论文中呈现的结果。在最后一节中,我将展示如何在您的计算机上设置和运行ReLoRa。
关于许可证的说明:描述ReLoRa的科学论文在arXiv上发表,并以CC BY 4.0许可证分发。ReLoRa的源代码在GitHub上发布,并以Apache 2.0许可证分发,允许商业使用。
ReLoRa:从低秩到高秩网络
要理解ReLoRa的工作原理,我们首先必须仔细研究LoRa。
LoRa通过添加两组不同的可训练参数A和B来工作,这些参数在训练后与预训练模型的原始冻结高秩网络合并。
这似乎是显而易见的,但重要的是要理解A和B之和的秩要高于它们各自秩的总和。这可以形式化如下:
LoRa只训练了这两组参数。然而,如果我们能够连续多次将它们复位、训练并合并回原始的高秩网络,我们将能够随着时间的推移增加网络的总秩。换句话说,我们将获得一个更大的模型。
为什么LoRa不执行这些复位操作?
因为要使这些复位操作有用需要克服一些重要的障碍…