01
引言
随着自然语言处理(NLP)的广泛应用以及聊天机器人、机器翻译等成熟商业化产品的推广,各种不同的任务面临着不同的要求,这意味着标准的 NLP 模型无法满足这些不同的要求。另一方面,对于近期的任务,机器需要深入理解意图并流畅地生成自然语言句子。随着深度学习的快速发展,基于深度神经网络的复杂 NLP 模型可以处理更复杂的问题。NLP 的未来似乎大有可为。然而,对于研究人员和从业人员来说,新的困难也在不断涌现。我们面临着更严峻的挑战:寻找高效的 NLP 模型、收集和标注高质量的数据集、提出可行的解决方案以应对有限的计算和存储资源。这些挑战不可能一蹴而就。首先预训练庞大的模型,其次微调或提示模型的两步法是可行的,并已成为新的标准方法。
出于个人喜好,我花了一些时间学习最近在 NLP 中使用的先进方法。NLP 被认为是相当复杂的问题。这些方法背后的基本思想可以转移到其他任务领域,例如物联网的多模式学习。
02
预训练技术
由于标注和收集大型数据集的成本很高,甚至对于某些狭窄领域的任务来说是不可行的,但大量无标注数据显然是可用的,例如维基百科。因此,在自然语言处理领域,在廉价的大规模无标注语料库上预先训练语言模型(PLM)会带来巨大的价值,这意味着 PLM 可以针对下游任务进行快速有效的微调;PLM 可以高效地进行模型初始化,并加速不同任务的收敛;PLM 可以在一定程度上避免目标领域的过拟合。
一般来说,PLM 可分为非上下文嵌入和上下文嵌入。非上下文嵌入法侧重于静态词嵌入,上下文信息非常有限,涉及的模型也相对简单,包括 NNLM 、word2vec (CBOW、Skip-Gram)、Glove。上下文嵌入法通过整合上下文信息来映射词标记,包括 CoVe、ELMo、GPT、BERT、XLNet。
通用 NLP 工作流程
预训练任务可分为经典语言建模、遮蔽语言建模、置换语言建模、去噪自动编码器、对比学习等。通过改进模型结构或整合更多的先验信息(如知识图谱),出现了各种增强型 BERT 或 GPT 扩展模型:例如:RoBerta 、ELECTRA、BART 、T5以及XLNet等。
03
微调技术
与以往的预训练嵌入特征提取技术相比,微调预训练语言模型(PLM)在自然语言处理的各种下游任务的迁移学习中显示出更有效、更强大的作用。一般采用的微调程序包括:第一步,在大量易于收集的无标记数据基础上预训练模型,这种方法被广泛应用于掩码语言建模(MLM);第二步,在下游任务或领域的特定标记数据上微调 PLM,这种方法采用标准损失函数,如交叉熵损失函数。
微调工作流程
由于 PLM 相对固定,需要更多的计算资源、更庞大的数据集、更高效的模型来更新,但微调可以提供快速的自适应模型,这对许多实际应用来说意义重大。因此,微调是非常有价值的,一些最新的先进方法可以进一步提高微调性能,包括自适应微调、行为微调、参数高效微调、文本到文本微调、缓解微调不稳定性等。
微调技术分类
自适应微调工作流程
行为微调工作流程
04
提示工程
NLP 的四种范式
提示工作流程可分为 4 个步骤:第一个步骤是提示构建,也称为模板,可将所需任务映射到模板中,填充后的模板将输入 PLM 以生成答案,包括掐头去尾提示(模板文本字符串中间未填充的空格)和前缀提示(模板文本字符串开头未填充的空格);第二种是答案构建,也被称为 "口头化器",可以将生成的答案制作成任务所需的标签;第三种是答案预测,在实践中,唯一填充的模板将被输入 PLM 以生成相应的答案;第四种是答案标签映射,将相应的答案映射到所需的标签。换句话说,将原始输入 x 填充到模板中,得到提示 x',该提示有一些空白槽需要填充,然后将提示 x' 输入 PLM,输出完全填充的字符串 x",该字符串可映射到最终所需的标签 y。
提示工程工作流程
因此,必须获得一个模板,即提示工程,它可分为手动模板工程、自动模板学习,包括离散提示(进一步包括提示挖掘、提示解析、梯度基搜索、提示生成、提示评分)和连续提示(进一步包括前缀调整、离散提示初始化调整、硬软提示混合调整)。此外,多重提示还能进一步提高提示性能并扩展结果,包括提示组合、提示增强、提示组成和提示分解。虽然生成提示的方法多种多样,但很难进行直接比较以确定最佳方法。此外,有些实验显示,稍加干扰或更换模板,相应的结果就会大相径庭。
多提示生成方法
05
总结
点击上方小卡片关注我
添加个人微信,进专属粉丝群!