原文:Navigating the Large Language Model revolution with Paperspace - James Skelton。
在这篇文章中,我们尝试通过解释相关的关键术语和即将发布的模型,来概览快速扩展的大型语言模型(LLM)生态系统。
过去的几个月见证了人们期待已久的AI研究大爆发。5年前出现的生成预训练变换器(GPT)模型的,可以说是铺就了这条道路的第一块石头。从那里开始,人类语音生成的发展几乎就只是时间问题。随着OpenAI的ChatGPT和GPT4,以及在过去的半年里像Bard这样的主要竞争者和像LLaMa这样的开源替代品进入公共领域,现在比以往任何时候都更需要每个人熟悉这些令人印象深刻的新技术。
本文首先将从讨论GPT架构开始,并简洁地解释为什么这种架构已经成为任何NLP/NLU任务的默认架构。接下来,我们将讨论一些关于LLM的主要术语,如LoRA微调方法、人类反馈的强化学习(RHLF),以及用于更快、更低成本的微调的量化方法,如QLoRA。我们将简要概述在自己项目上使用表现最好的NLP模型来结束这一部分,包括Alpaca、LLaVa、MPT-7B和Guanaco。
GPT模型是在2018年的《通过生成式预训练改进语言理解》(Improving Language Understanding by Generative Pre-Training)中由Rashford等人首次介绍的一种LLM。这些来自OpenAI的研究人员试图创建一个模型,该模型接受自然语言提示作为输入,结合对内容的理解来预测出最佳可能的响应。GPT模型实现这一点的方式不是一次生成整个文本序列,而是将每个称为"token"的单词作为生成下一个token的指导输入。这允许以一个局部化的上下文生成一个文本句子,防止句子离其输入过远。
此外,内置在transformer中的自我注意机制使模型能够在生成响应时关注输入序列的不同部分,因此它可以将部份注意力集中在预测最重要的句子部分。"自我注意通过为每个输入令牌计算一组注意权重来工作。然后,权重显示每个令牌与其他令牌的相关性。然后,transformer使用注意权重为输入的最重要部分分配更多的重要性,并为较不相关的部分分配较少的重要性。"
通用GPT循环如下,一个令牌以及一个表示其在句子中的位置的位置编码作为输入,然后它通过一个dropout层,然后通过N个transformer块层(上图右所示)。一个transformer块由自我注意、规范化和前馈网络(即,MLP或Dense)层组成。这些结构一起工作来确定和输出最可能的新令牌。
这个过程循环,直到GPT模型预测最可能的新令牌是句子结束符为止。这可以进一步扩展以生成完整的段落,而且超过一个单独的句子在GPT模型的新版本中尤其常见。当在足够的数据上进行训练时,这种长期、上下文驱动的生成能力使GPT模型在文本合成任务上效果无与伦比。
这一部分涵盖了我们认为值得了解的LLM的微调方法。
我们将讨论的第一种技术是低秩适应(LoRA)。大型语言模型的低秩适应(LoRA)是一种训练/微调LLM的巧妙方法,显著减少了训练所需的显存。为了实现这一点,LoRA将现有的模型权重与秩分解权重矩阵对合并。然后,这些新的权重成为唯一在训练的变量,而剩余的权重保持冻结。
因为更新矩阵代表的参数比原始权重少得多,所以这允许显著降低训练成本,而不会显著降低训练效果。此外,通过将这些权重添加到这些模型的注意层,我们可以根据需要调整这种附加权重的效果。
大型语言模型中的强化学习人类反馈(LLM RLHF),是指使用强化学习和人类反馈的组合来训练大型语言模型(LLM)的方法。强化学习是一种机器学习,其中算法通过试错学习做决策。在LLM领域中,强化学习可以通过对其生成的文本的质量提供反馈来优化LLM的性能。
在像Chat GPT这样的大型语言模型中,RHLF的事件序列可以简洁地分解为以下几步:
在足够的数据上训练一些生成预训练transformer模型
训练一个奖励模型,该模型接受一系列文本,并返回一个标量奖励,该奖励应数值表示人类的偏好,即人类对他们识别效果的打分
使用人类反馈训练的强化学习模型微调模型。
这样,LLM可以超越纯粹的机器学习的效果,在训练过程的后期引入额外的人类知识。在实践中,这可以大大提高模型响应的人性化和交互性。
QLoRA是一种高效的LLM微调方法,它显著地减少了显存需求,足以在单个48GB的GPU上微调一个65B参数模型,同时保持完整的16位微调任务性能。QLoRA是基于LoRA方法改造引入了一个量化步骤,尽管它只是最近发布的,但其效果使其值得包含在这篇文章中。QLoRA与LoRA非常相似,有几个主要的区别。
如上图所示,QLoRA与它的前身LoRA有几个明显的区别。区别具体是QLoRA方法将变压器模型量化为4位精度,并使用CPU中的分页优化器处理任何过量的数据峰值。在实践中,这使得可以以显著降低的内存需求微调一个LLM,如LLaMA。
在过去的半年里,GPT模型在开源社区的流行,可以广泛地归因于Meta的LLaMa模型的普及。虽然它们不可用于商业用途,但它们对填写简单表格的研究人员公开可用。这种可用性导致了基于LLaMa模型的开源项目的大幅增加。在这一部分,我们将简要地看一下在过去的半年里发布的一些最重要的微调过的LLaMa模型。
LLaMa-Alpaca是第一个找到突出地位的微调项目。这个项目由斯坦福的研究人员运行,使用了OpenAI的text-davinci-003生成的52k指令-响应序列,创建了一个强大的指令跟随数据集。
项目背后的研究团队很快发现,他们的模型在一个比GPT-3.5/GPT-4小得多的模型上实现了接近SOTA的结果。他们使用5个学生对他们新训练的模型和原始的text-davinci-003模型进行了双盲比较。双盲对比发现,结果非常相似,表明Alpaca在训练参数的一小部分上实现了几乎相同的能力。
Alpaca的发布导致了一系列在类似数据集上训练的替代品,并添加了额外的模式,如视觉。
LLaVA(Large Language-and-Vision Assistant)是第一个也是最突出的试图将LLaMA微调与视觉理解合并的项目。这使得模型可以接受多模态输入,并生成表现出对文本和视觉输入都有理解的深思熟虑的响应。
他们的实验显示,LLaVA具有令人印象深刻的多模态聊天能力,有时表现出与多模态GPT-4在未见过的图像/指令上的类似行为。在一个合成的多模态指令跟随数据集上,它被发现与GPT-4相比有85.1%的相对得分。此外,当在Science QA上微调时,LLaVA和GPT-4的协同作用达到了最高精度92.53%。
作者已经利用类似的指令调整策略扩展了这个项目,创建了LLaVA-Med。LLaVA模型的这种适应性和扩展性,能够覆盖新的和复杂的主题,无论是在文本还是在视觉上,都表明LLaVA是一个值得关注的模型,因为开发还在继续。
我们现在最喜欢的开源项目之一,MosaicML预训练transformer系列代表了这个LLM革命带来的一些最大发展。与我们今天讨论的其他项目不同,它是在没有LLaMA的情况下开发的,因此不必继承其商业许可。这使得它可能是现在最好的可用的开源LLM,可以与调整过的LLaMa 7B模型相比。
MPT-7B的表现极好。如上图所示,它在各种测试中的性能与LLaMa-7B的性能相当。
MPT-7B是一个从头开始在1T令牌的文本和代码上训练的transformer。它有三个变体:
聊天:这可能是读者最熟悉的模型类型,这个模型设计用来输出和人类聊天一样的响应。
指令:这是这些模型的另一个常见原型,如在Alpaca、Vicuna等中看到的,指令模型能够解释复杂的指令并返回准确预测的响应。
故事写作:故事写作模型在长篇文学作品的序列上进行训练,能够准确地模仿作者的风格进行长篇故事生成。
为QLoRA论文引入的,用于自然语言适应上下文感知全语言输出的生成通用助手(Generative Universal Assistant for Natural-language Adaptive Context-aware Omnilingual outputs - Guanaco)。Guanaco是一个基于Meta的LLaMa 7B模型构建的先进的指令跟随语言模型。
在Alpaca模型的初始52K数据集的基础上,Guanaco受到了额外的534,530个条目的训练,涵盖了英语、简体中文、繁体中文、日语、德语,以及各种语言和语法任务。这种丰富的数据使Guanaco在多语言环境中表现出色,并扩展了模型的能力,以覆盖更广泛的语言环境。
在这篇文章中,我们涵盖了一系列与LLM革命相关的主题,以帮助理解这些复杂的系统。总体来说,我们正处于AI的NLP领域的快速增长中。这是最好的时机,参与其中,建立理解,并为自己和自己的商业利益捕获这些技术的力量。