博客

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

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

    🎯 问题的根源

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

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

    📝 模型编辑的提出

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

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

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

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

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

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

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

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

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

  • 大语言模型的加速之道:思维骨架(Skeleton-of-Thought)

    大家好,欢迎收听我们的人工智能播客,我是你的主播,也是资深的人工智能专家。今天我们要聊的话题是:如何通过一种全新的方式——思维骨架(Skeleton-of-Thought,简称SoT),来加速大语言模型(LLM)的输出,并提高其结果质量。🚀

    💡大语言模型的痛点

    LLM,例如LLaMA和OpenAI的GPT-4,正在改变我们的技术领域。然而,对LLM的一个普遍抱怨是它们的运行速度。在许多情况下,从LLM获取答案需要很长时间,这限制了LLM在诸如聊天机器人、协同助手和工业控制器等延迟关键功能中的应用。⏱️

    🚀思维骨架的提出

    为了解决这一问题,微软研究院和清华大学的研究者提出了一种新的加速LLM生成的方法——思维骨架(SoT)。不同于大多数先前需要对LLM模型、系统或硬件进行修改的方法,SoT将LLM视为黑箱,因此可以应用于任何现成的开源(如LLaMA)或API基础(如OpenAI的GPT-4)模型中。🎁

    🚗SoT如何加速?

    SoT的想法源于LLM和人类处理信息的方式的区别。LLM按顺序生成答案,而人类在很多情况下,会先提炼出答案的骨架,然后添加细节来解释每一点。SoT就是按照这种人类的思维方式,将生成过程分为两个阶段:首先,SoT让LLM生成答案的骨架,然后再让LLM给出骨架中每一点的答案。🔍

    这种方法提供了一个新的加速机会,因为第二阶段的每一点的答案都可以并行生成,无论是本地模型(如LLaMA)还是API基础模型(如OpenAI的GPT-4)。对于API基础模型,我们可以对每一点发出并行的API请求。对于本地运行的模型,我们可以在一个批次中同时回答所有的点。💼

    ⚖️SoT的效果如何?

    我们在包括九个开源模型和三个API基础模型在内的12个最近发布的模型上测试了SoT。我们使用的是Vicuna-80数据集,该数据集包含80个问题,涵盖了编程、数学、写作、角色扮演等九个类别。

    结果显示,SoT在所有模型上都提供了显著的速度提升。特别是,SoT在12个模型中的8个模型上获得了超过2倍(最高达到2.39倍)的速度提升。此外,SoT在不明显降低答案质量的情况下实现了这种速度的提升。💪

    🌈SoT的未来

    SoT通过独立并行地扩展点,因此并不适合需要逐步推理的问题,比如数学和编程。为此,我们提出了一种SoT的扩展,叫做SoT with Router(SoT-R),它可以在适合的时候自适应地触发SoT。我们提出了一个路由器模型,该模型可以基于问题和答案的骨架,预测何时应使用SoT。实验显示,SoT-R在数学和编程问题上的性能超过了原始的SoT,并在所有测试集上达到了最好的性能。🎯

    对于未来,我们期待通过进一步的研究和开发,将SoT的应用范围扩大到处理更复杂的问题,同时继续提高其生成速度和答案质量。我们相信,随着技术的不断发展,大语言模型将在我们的日常生活中扮演越来越重要的角色,为我们提供更加智能、快速和准确的服务。✨

    在此,我要提醒大家,SoT的代码和演示已经在Github上开源,欢迎感兴趣的朋友们去查阅和使用。🌐

    以上就是今天播客的全部内容,希望大家对SoT有了更深入的理解。如果你有任何问题或者想法,欢迎在评论区留言。我们下期再见,祝大家每天都有新的收获!👋

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 沪ICP备2024052574号-1