平衡低成本目标编辑和灾难性遗忘

218次阅读
没有评论

大家好,今天,我们要一起探讨的是 Microsoft Research 最近的一篇研究:大型语言模型的终身模型编辑。这篇文章讲述了如何在保持低成本的同时,进行有效的模型修正,避免模型出现灾难性的遗忘。让我们一起深入了解一下。🧐

🎯 问题的根源

首先,我们来看看为什么需要对大型语言模型(LLMs)进行修正。LLMs 在许多复杂任务中有着广泛的应用,但它们有时会出现不可预测的错误,或者传播偏见语言。这些错误往往随着底层数据或用户行为的变化而产生。这就需要对这些模型和它们支持的实际应用进行有针对性的、成本有效的修复。

我们可能会想到使用重复预训练或微调来实现这些修复。然而,这些解决方案通常在计算上过于昂贵。例如,LLAMA 1 的训练需要在 2048 个 A100 GPU 上进行 21 天,其成本超过 240 万美元。LLMs 的微调需要比许多研究实验室能够持续并负担得起的 GPU 更大。此外,我们甚至还不清楚应该向数据语料库添加或删除哪些数据,以便在不影响无关输入的情况下纠正特定行为。

📝 模型编辑的提出

为了在不进行昂贵训练的情况下保持 LLMs 的更新,人们最近提出了模型编辑作为对大模型进行有针对性更新的范例。大多数模型编辑器一次更新一个模型,注入一批修正。但错误通常会随时间序列性地被发现,并且必须快速纠正。换句话说,当模型被部署时,必须进行终身模型编辑,即遇到一个流的错误并必须立即对其进行处理。这需要进行许多连续的编辑,在这种设置下,现有的编辑器已知会失败。成功在这里意味着按序纠正所有的编辑,而不遗忘旧的修复,也不会降低对无关输入的性能。

那么,什么是编辑呢?在一篇题为《带有离散键值适配器的 GRACE 终身模型编辑》的文章中,作者考虑了三种类型的编辑:

  1. 更新事实知识。例如,我们有一个预先训练的问答模型:我们输入问题,模型返回答案。但随着世界的变化,这些答案会过时。因此,编辑是一个包含问题(例如,“美国总统是谁?”)和问题的正确答案(例如,“拜登”)的元组或有序值序列。
  2. 跟上翻转标签。分类任务中的基础真相可能会随时间变化。如果只有特定类型的数据被重新标记,那么目标编辑就尤为重要。在这种情况下,编辑是一个配对输入(例如,法院文件)和一个新标签(例如,主题)。
  3. 缓解 LLMs 中的捏造和不连贯。使用 LLMs 的一个关键挑战是避免它们生成与现实无关的语言。因此,当它们创建出有问题的输出时,模型的编辑将包含这样的元组:一个输入(例如,一个启动语句)和一个从模型的输出中提取的错误片段(例如,一个错误的预测)。

🧪 终身模型编辑的挑战与解决方案

我们已经知道,错误往往会随时间序列性地被发现,并且必须快速纠正。这就需要进行许多连续的编辑,这是一项挑战。在这种情况下,现有的编辑器已知会失败。它们可能会遗忘旧的修复,或者对无关输入的性能产生影响。

为了解决这个问题,研究者们提出了一种名为 GRACE 的新型模型编辑方法。这个方法采用了离散的键值适配器,能够处理连续的编辑。它能够在不遗忘旧的修复,也不会降低对无关输入的性能的情况下,按序纠正所有的编辑。

这种方法的关键在于,它不直接更改模型的参数,而是在模型上添加一个小型的键值存储。每次编辑时,该方法都会将编辑的“键”和“值”添加到存储中。然后,在模型进行预测时,该方法会检查存储中是否存在与当前输入匹配的键。如果存在,模型就会使用存储中的值来修改其预测。

这种方法的优势是,它能够在处理新的编辑时,保留对旧编辑的记忆,从而避免了灾难性的遗忘。此外,由于键值存储的规模远小于模型本身,因此,这种方法的计算和存储成本也相对较低。

总结一下,大型语言模型的终身模型编辑是一个非常重要且具有挑战性的问题。这在保持模型更新,提高预测准确性,同时也降低了训练和维护的成本。通过微调、模型编辑等方法,我们可以使模型更加适应变化的世界,并为我们提供更准确、更贴近现实的预测。希望你们能从这次的讲解中有所收获,下次课我们再见!👋🏻

正文完
 
评论(没有评论)