普林斯顿大学的研究人员介绍了MeZO:一种记忆效率高的零阶优化器,可以微调大型语言模型(LLM)

随着生成式人工智能在过去几个月的巨大成功,大型语言模型正在迅速发展。这些模型正在为一些显著的经济和社会转型做出贡献,其中最好的例子是由OpenAI开发的著名的ChatGPT,自发布以来已经拥有数百万用户,数量呈指数级增长。这个基于自然语言处理(NLP)和自然语言理解(NLU)的聊天机器人允许用户像人类一样生成有意义的文本。它可以有意义地回答问题,总结长段落,完成代码和电子邮件等。PaLM、Chinchilla、BERT等其他LLM在人工智能领域也表现出了很好的性能。

微调预训练语言模型一直是许多与语言相关的任务的流行方法。微调允许这些模型适应专业领域,融入人类指令,并满足个人偏好。它基本上是使用较小的、面向特定领域的数据集来调整已经训练过的LLM的参数。随着语言模型的参数越来越多,微调在反向传播过程中计算梯度变得需要更多的计算和内存资源。由于涉及缓存激活、梯度和梯度历史的存储,内存使用量显著高于推理所需的内存使用量。

最近,普林斯顿大学的研究人员提出了一种解决内存问题的方法。称为MeZO,一种内存高效的零阶优化器,这是传统ZO-SGD方法的一种改进,它仅使用损失值的差异估计梯度,并且可在原地运行,使得使用与推理相同的内存印记微调语言模型成为可能。该团队专注于MeZO中的零阶方法,因为ZO方法可以使用仅两个前向传递来估计梯度,使它们在内存效率方面更加高效。

MeZO算法特别设计用于优化具有数十亿个参数的大型语言模型。该团队提到的一些主要贡献是:

  1. MeZO通过修改ZO-SGD方法和几个变体开发而来,可以在任意大小的模型上原地运行,几乎没有内存开销。
  1. MeZO已经被证明与PEFT和全面参数调整(如LoRA和prefix tuning)兼容。
  1. MeZO可以提高非可微目标,如准确性或F1分数,同时仍然利用与推理相同的内存量。
  1. 充分的预训练确保MeZO的每步优化率和全局收敛率取决于特定的景观条件数,即有效本地秩,而不是大量参数,这与以前的ZO下限相反,后者表明收敛率可能根据参数数量缓慢。
  1. 实验表明,在各种模型类型(如掩蔽LM和自回归LM)和下游任务(如分类、多选和生成)的测试中,该模型从350M扩展到66B。
  1. 在实验中,MeZO在OPT-13B上表现优于零-shot、ICL和线性探测,甚至在7项测试中的表现比微调还要好或类似,尽管消耗的内存比RoBERTa-large或正常微调少约12。

评估结果显示,MeZO能够使用单个Nvidia A100 80GB GPU训练一个300亿个参数的模型,而反向传播仅能在相同的内存限制下训练一个27亿个参数的LM。总之,MeZO是一种内存高效的零阶优化器,可以有效地微调大型语言模型。