Harnessing the Power of LLMs in Practice - A Survey on ChatGPT and Beyond
基本信息
博客贡献人
鲁智深
作者
JINGFENG YANG; HONGYE JIN; RUIXIANG TANG; XIAOTIAN HAN; QIZHANG FENG; HAOMING JIANG; BING YIN; XIA HU
标签
Computing methodologies → Natural language processing; Natural language generation; Machine translation; Large Language Models; Neural Language Processing; Practical Guide; ChatGPT
摘要
本文为在下游自然语言处理 (NLP) 任务中使用大型语言模型 (LLM) 的从业者和最终用户提供了全面实用的指南。 我们从模型、数据和下游任务的角度提供对 LLM 使用的讨论和见解。 首先,我们对当前的 GPT 和 BERT 风格的 LLM 进行了介绍和简要总结。 然后,我们讨论了预训练数据、训练数据和测试数据的影响。 最重要的是,我们详细讨论了大型语言模型在各种自然语言处理任务中的使用和非使用情况,例如知识密集型任务、传统的自然语言理解任务、自然语言生成任务、涌现能力和注意事项 用于特定任务。 我们展示了各种用例和非用例,以说明 LLM 在现实场景中的实际应用和局限性。 我们还尝试了解数据的重要性以及与每个 NLP 任务相关的具体挑战。 此外,我们探讨了虚假偏差对 LLM 的影响,并深入研究了其他基本考虑因素,例如效率、成本和延迟,以确保全面了解在实践中部署 LLM。 这份综合指南旨在为研究人员和从业者提供使用 LLM 的宝贵见解和最佳实践,从而使这些模型能够在广泛的 NLP 任务中成功实施。 可以在 GitHub - Mooler0410/LLMsPracticalGuide: A curated list of practical guide resources of LLMs (LLMs Tree, Examples, Papers) 找到定期更新的 LLM 实用指南资源精选列表。
1 介绍
我们的工作结构如下。首先,我们的工作通过讨论最重要的模型(如 GPT 和 BERT 架构)提供了对 LLMs 的简要介绍。然后,我们深入探讨从数据角度影响模型性能的关键因素,包括预训练数据、训练/调整数据和测试数据。最后且最重要的是,我们深入研究各种具体的NLP任务,提供对 LLMs 适用性的见解,包括知识密集型任务、传统的 NLU 任务和生成任务,以及这些模型具有的新兴能力和具有挑战性的现实情景。我们提供详细的示例,以突出 LLMs 在实践中的成功案例和局限性。 为了分析大型语言模型的能力,我们将它们与微调模型进行比较。目前,LLMs 和微调模型没有普遍认可的定义。考虑到实用性,在我们的文章中,它们的定义如下:LLMs 是在没有针对特定任务的数据进行调整的情况下,在大量数据集上预先训练的巨大语言模型;微调模型通常是较小的语言模型,也是预先训练的,然后在较小的特定任务数据集上进行进一步的调整,以优化其在该任务上的性能。
2 大语言模型模型结构
本节简要介绍最先进的 LLMs。 这些模型的训练策略、模型架构和用法各不相同。 为了更清楚地了解 LLM 领域,我们将它们分为两类:编码器-解码器或仅编码器语言模型和仅解码器语言模型。
2.1 BERT-style语言模型
由于自然语言数据很容易获得,并且已经提出了无监督训练范式以更好地利用极大的数据集,这激发了自然语言的无监督学习。 一种常见的方法是在考虑周围上下文的同时预测句子中的掩码词。 这种训练范式被称为掩蔽语言模型(MLM)。 这种类型的训练使模型能够更深入地理解单词与使用它们的上下文之间的关系。 这些模型使用 Transformer 架构等技术在大型文本语料库上进行训练,并在许多 NLP 任务(例如情感分析和命名实体识别)中取得了最先进的结果。
2.2 GPT-style语言模型
尽管语言模型在体系结构中通常与任务无关,但这些方法需要对特定下游任务的数据集进行微调。 研究人员发现,扩大语言模型可以显着提高少样本甚至零样本的性能 。 为获得更好的 few-shot 和 zero-show 性能,最成功的模型是自回归语言模型,它是通过在给定前面的单词的情况下生成序列中的下一个单词来训练的。最近的突破是 ChatGPT,它专门针对对话任务改进了 GPT-3,从而为各种现实世界的应用程序带来更具交互性、连贯性和上下文感知的对话。
3 大语言模型数据
在本节中,我们将讨论数据在为下游任务选择合适的模型方面发挥的关键作用。 数据对模型有效性的影响从预训练阶段开始,一直持续到训练和推理阶段。
注1
(1) LLMs 在面临分布外数据的下游任务(例如对抗性示例和域转移)中比微调模型具有更好的泛化能力。
(2) 当使用有限的注释数据时,LLMs 优于微调模型,并且当有大量注释数据可用时,两者都是合理的选择,具体取决于特定的任务要求。
(3) 建议选择在与下游任务相似的数据字段上预训练的模型。
3.1 预训练数据
预训练数据在大型语言模型的开发中起着举足轻重的作用。 作为 LLMs 卓越能力的基础 ,预训练数据的质量、数量和多样性显着影响 LLMs 的性能 。预训练数据的重要性在于它能够为语言模型提供对单词知识、语法、句法和语义的丰富理解,以及识别上下文和生成连贯响应的能力。简而言之,在为下游任务选择 LLM 时,建议选择在类似数据领域预训练的模型。
3.2 微调数据
传在为下游任务部署模型时,必须根据注释数据的可用性考虑三个主要场景:零、少量和丰富。 在本节中,我们简要概述了适用于每个场景的适当模型。
Zero annotated data: 在注释数据不可⽤的情况下,在零样本设置中使⽤ LLMs 被证明是最合适的⽅法。
Few annotated data: 在这种情况下,少样本示例直接合并到 LLMs 的输⼊提示中,称为上下⽂学习,这些示例可以有效地指导 LLMs 泛化到任务。
Abundant annotated data: 对于特定任务可⽤的⼤量注释数据,微调模型和 LLM 都可以考虑。
疑难解答:
- 为什么llms的零样本或少量样本能力可以通过scaling的方法提升?
在自然语言处理中,LLMs的零/少样本能力是指模型在仅有零个或者很少数量的训练样本的情况下,能够进行有效预测和推理的能力。“Scaling” 指的是通过增加模型的规模、参数和计算资源来改进模型的性能。通过增加模型的规模,例如使用更多的层、更多的参数或更大的计算资源,LLM可以更好地学习并表示文本中的复杂模式和语义。这种增加模型规模的方法通常可以提高LLM的零/少样本能力,使其在处理未知领域或少见任务时表现更好。因此,通过扩大LLM的规模,我们可以进一步提高它的零/少样本能力。- 为什么llms可以满足于一些隐私方面的约束?
传统上,涉及敏感数据的自然语言处理任务通常需要将数据发送到云端进行处理,这可能引发隐私风险。但是,具备一定规模的LML可以在本地设备上运行,使得敏感数据可以在用户的控制下进行处理,而不必暴露给第三方。这种本地执行的方式可以通过在移动设备或本地服务器上部署和运行LLM来实现。这样,用户的输入和数据可以在设备上进行加密和处理,而无需将其发送到外部服务器。这种方式有助于保护用户的隐私,因为敏感信息不会离开用户的设备。
3.3 测试数据
在为下游任务部署 LLMs 时,我们经常面临测试/用户数据与训练数据之间的分布差异所带来的挑战。 这些差异可能包括领域转移、分布外的变化,甚至是对抗性的例子。 这些挑战极大地阻碍了微调模式在实际应用中的有效性。 它们适合特定的分布并且泛化到 OOD 数据的能力很差。 然而,LLMs 在面对这种情况时表现得很好,因为它们没有明确的拟合过程。
4 NLP任务的的实用指南
4.1 传统NLU任务
传统的 NLU 任务是 NLP 中的一些基础任务,包括文本分类、命名实体识别 (NER)、文本推断等。 它们中的许多被设计为在更大的人工智能系统中充当中间步骤,例如用于知识图谱构建的 NER。
注2
(1)在传统的 NLU 任务中,微调模型通常是⽐ LLMs 更好的选择,但 LLMs 可以提供帮助,同时需要强⼤的泛化能⼒。
可用与不可用案例
不适⽤于llms的任务:⽂本分类,信息检索,命名实体识别,依赖解析
适⽤于llms的任务:杂项⽂本分类
4.2 生成任务
生成任务要求模型对输入的内容或要求有全面的理解,并具有一定的创造力。 这就是 LLMs 所擅长的。
注3
(1)由于其强大的生成能力和创造力,LLMs 在大多数生成任务上都表现出优势。
可用与不可用案例
适⽤于llms的任务:摘要任务,机器翻译,开放式⽣成
不适⽤于llms的任务:资源丰富的翻译任务和资源极少的翻译任务
4.3 知识密集型任务
知识密集型NLP任务是指强烈依赖背景知识、特定领域专业知识或一般现实世界知识的一类任务。这些任务超越了简单的模式识别或语法分析。它们高度依赖于记忆和对现实世界中特定实体、事件和常识的正确运用。
注4
(1) LLM 因其⼤量的现实世界知识⽽擅⻓知识密集型任务。
(2) 当知识要求与他们所学的知识不匹配时,或者当他们⾯临只需要上下⽂知识的任务,在这种情况
下,经过微调的模型可以像 LLM ⼀样⼯作。
可用与不可用案例
不适⽤于llms的任务:机器阅读理解
适⽤于llms的任务:闭卷问答任务,⼤规模多任务语⾔理解
4.4 与规模相关的能力
扩大LLMs的规模可以极大增强预训练语言模型的能力,随着模型的扩展,模型通常在一系列任务中变得更有能力。
注 5
(1)随着模型规模指数级增长,LLMs尤其擅长算术推理和常识推理等推理。
(2)随着LLMs的扩展,模型涌现出很多其他能力,比如文字处理和逻辑能力。
(3)在许多情况下,性能并不随着规模的增加而稳步提高,这是由于我们对大型语言模型的能力随着它们的扩展如何变化的理解有限。
4.4.1 在推理方面的可用案例
推理涉及理解信息、进行推断和做出决策,是人类智能的重要方面。现有的推理任务可以分为常识推理和算数推理。
算数推理:LLMs的算数推理能力极大受益于模型的规模。对于GPT-3,当参数数量超过13B,两位数相加的能力才会变得明显。在没有外部工具的干预下,LLMs在执行基本计算时可能会偶尔出错,但是思维链提示(CoT prompting)可以显著提高LLMs的计算能力。
常识推理:常识推理不仅需要LLMs记住事实知识,还需要LLMs对事实进行多步骤推理。随着模型规模的增长,常识推理的能力也在逐渐增加。
4.4.2 新兴能力的可用案例
大规模模型赋予模型一些前所未有的能力,称为新兴能力。LLMs的新兴能力是指在小规模模型中不存在但在大规模模型中存在的能力。这意味着这些能力无法通过在小规模模型上的性能提升来预测,一旦模型的规模超过一定范围,该模型在某些任务上会突然获得出色的性能。新兴能力通常是不可预测的,结果也是令人惊讶的。处理单词操作体现出典型的新兴能力,例如给定模型一个单词的反向拼写,输出原始单词。
4.4.3 不可用案例和理解
尽管在大多数情况下,更大的模型带来更好的性能。但在某些任务上,随着LLMs的大小增加,性能开始下降。此外LLMs还会出现U型现象,即模型性能随着模型规模增加先提高后降低。从某种意义上讲,U型现象表明小规模模型和大规模模型采用了不同的内部机制进行预测,从这个角度上分析,U型现象可能是由于模型的新兴能力导致的逆向转变。
4.5 其他任务
本节探讨了以前讨论无法涉及到的其他任务,以更好地了解LLMs的优缺点。
注6
(1)在与LLMs预训练目标和数据相差比较大的任务中,微调模型或指定模型仍然有其用武之地。
(2)LLMs在模仿人类、数据注释和生成方面非常出色。它们也可以用于NLP任务的质量评估,并具有可解释性等额外的好处。
4.5.1 不可用案例
由于目标和训练数据的差异,LLMs通常在某些任务中表现不佳。比如在涉及预测一个连续的值而不是离散标签的回归任务中,它们表现不佳的主要原因是语言建模目标和回归任务目标之间的内在差异。
4.5.2 可用案例
LLMs非常擅长模仿人类,充当聊天机器人并执行各种任务。LLMs可以充当良好的注释工具,也可以充当数据生成器。LLMs也可以用于某些自然语言生成任务的质量评估,例如总结和翻译。此外,LLMs的CoT推理能力可以展示LLMs如何达到预测结果,这是一个好的实例级别的解释,同时也提高了性能。
4.6 现实世界的“任务”
模型在现实世界中面临三个方面的挑战:
噪声/非结构化输入: 现实世界的输入数据可能包含拼写错误、口语化、混合语言等问题。
学术界未正式定义任务: 现实世界某些任务定义不明确,且可能同时存在多种任务。
遵循用户指示: 模型需要了解用户意图并提供符合这些意图的输出。
本质上,现实世界中这些挑战来自于用户的请求与为特定任务设计的数据集有着不同的分布。
注7
(1)与微调的模型相比,LLMs更适合处理现实世界的场景。然而,在现实世界中评估模型的有效性仍然是一个有待解决的问题。
(2)处理这些现实世界的情况需要应对模糊性、理解上下文和处理噪声的输入。与经过微调的模型相比,LLMs更适合处理这些情况,因为它们已经在涵盖各种写作风格、语言和领域的多样化数据集上进行了训练。
(3)真实场景的一个主要问题是如何评估模型的性能,在没有任何形式化任务或者指标情况下,模型有效性只能通过人工标注者的反馈。
5 其他考虑因素
尽管LLMs适用于各种下游任务,其效率和可信度等因素也需要考虑。有三点需要注意:
(1)如果对成本敏感或者对延迟有高要求,考虑轻量级微调模型;
(2)零样本学习不能从特定任务的数据中学习捷径,但是LLMs仍然有这个问题;
(3)与LLMs相关的安全问题需要重视,LLMs可能输出有害的或者有偏的输出。
5.1 效率
在实际部署中,性能、成本和延迟都是重要考虑因素,而不仅仅是模型的性能,需要平衡效率和有效性之间的关系。
成本:模型的训练成本很高,训练一次GPT-3 175B的成本需要460万美元,此外电力开销,硬件成本也是非常很高。用户使用ChatGPT的API也需要一定的费用,因此,如果无高昂成本的用户,小型微调模型是更合理的选择。
延迟:延迟是考虑LLMs在实际应用中的一个关键因素。推理时间是衡量延迟的常用指标,它高度依赖于模型大小、架构和token的长度。在不能接受高延迟的场景,大型LLMs可能不合适。
参数高效微调:可以在保持预训练LLMs大部分参数不变的情况下,调整模型的一小部分参数,这样可以保持模型性能同时大大降低计算和存储成本。
5.2 可信度
由于LLMs涉及到医疗、金融、法律等领域,需要确保它们产生可靠的输出。
鲁棒性和校准性:LLMs的准确性和鲁棒性有很强的相关性。然而,在调整了额外的特定于应用程序的任务数据后,zero-shot的鲁棒性变得更差。这可能是由于过拟合,由于模型的复杂性和下游任务的训练样本有限,导致通用性差。因此,当鲁棒性和准确性是关键因素时,微调模型不是最佳选择。
为何模型在zero-shot情况下会过拟合?
参考论文《Finetuned Language Models Are Zero-Shot Learners》
Instruction Tuning:多任务,经过多任务精调后,可以用于其他任务的zero-shot(Prompt tuning都是针对一个任务的,比如做个情感分析任务的prompt tuning,精调完的模型只能用于情感分析任务,而经过Instruction Tuning多任务精调后,可以用于其他任务的zero-shot)
公平性和偏差:LLMs已经被证实会表现出不同的影响,使社会偏见长期存在并导致歧视。
虚假偏差:捷径学习问题在预训练和微调范式下的各种自然语言理解任务中都存在,模型高度依赖微调数据中输入和标签之间的虚假相关性进行预测。相比之下,LLMs并没有直接在微调数据集上进行训练,这使得它们不太可能学习到微调数据集中存在的快捷特征,从而增强了模型的泛化能力。然而,LLMs并不是绝对正确的,在上下文学习过程中可能会表现出一些快捷学习,例如,GPT-3在文本分类和信息提取任务上的few-shot学习中,LLMs偏爱从预训练语料库中普遍存在的答案。
5.3 安全性挑战
幻觉问题:LLMs可能产生幻觉,或无意义或不真实的内容,在各种应用中对信息的质量和可靠性产生显著负面影响。这会给产生依赖的用户带来虚假的信息,在许多领域中,如医疗、金融等场景会产生严重的后果。
有害内容:由于LLMs生成文本的连续性、可信性,来自LLMs的有害内容会造成重大危害,如仇恨言论、歧视、煽动暴力等。
我们将术语“toxicity”,定义为粗鲁、不尊重或不合理的语言,可能让人不愿继续对话。toxicity一般比仇恨言论的说法更宽泛,后者可能违法法律或平台制定的言论规则。
隐私问题:LLMs可能会泄露用户的隐私。
6 结论与未来挑战
有效使用LLMs需要了解它们的能力,以及在不同应用场景任务的局限性。本文为LLMs处理下游任务提供了实践指导,首先讨论了LLMs的架构,接着探索LLMs在不同任务上的适用,最后对其效率和可信度等因素进行分析。LLMs的未来挑战有:
(1)在真实世界的“数据集”上对模型进行评估。
(2)模型对齐。确保日益强大的模型与人类价值观保持一致。
(3)安全对齐。模型的安全性是模型构建过程中不可或缺一部分。
(4)规模扩大下的性能预测。可以模拟规模对模型性能的影响。
总结
这是一篇全面对大规模语言模型介绍的文章,从数据、任务、性能、效率等角度详细阐述了LLMs的适用场景以及未来的发展,通过阅读可以对大模型领域有所了解。
BibTex
@article{yang2023harnessing,
title={Harnessing the power of llms in practice: A survey on chatgpt and beyond},
author={Yang, Jingfeng and Jin, Hongye and Tang, Ruixiang and Han, Xiaotian and Feng, Qizhang and Jiang, Haoming and Yin, Bing and Hu, Xia},
journal={arXiv preprint arXiv:2304.13712},
year={2023}
}