什么是语言模型?
它们有什么用途?在哪里可以找到它们?它们实际存储了什么信息?
2022年7月20日我们在 deepset 的目标是让每个人,无论其技术背景如何,都能利用现代自然语言处理(NLP)和语言模型的力量来满足自己的用例。Haystack,我们的开源框架,使之成为现实。
当我们与用户交流时,会遇到关于 NLP 和机器学习的常见困惑。因此,在接下来的博客文章中,我们将用易懂的语言解释一些基本的 NLP 概念。首先是:语言模型。
NLP 中的语言模型
语言模型在 NLP 中占据核心地位。但什么是语言模型?为了回答这个问题,我们首先要弄清楚“模型”一词及其在机器学习中的用法。
什么是机器学习模型?
现实世界是复杂而令人困惑的。模型用于以更简单的术语来表示一个特定的兴趣领域——一个领域。例如,天气模型是气象现象及其相互作用的简化表示。这些模型帮助我们更好地理解天气领域并对其进行预测。
在机器学习中,模型与之类似。它们主要用于基于历史数据预测事件,因此也被称为预测模型。
我们输入到 ML 算法中的数据使其能够构建数据领域的模型。这些数据应最忠实地反映现实,以便基于它的模型能够尽可能地逼近真实世界。
什么是语言模型?
语言模型是一种机器学习模型,旨在表示语言领域。它可以作为许多不同语言任务的基础,例如
以及许多其他处理自然语言的任务。
在天气预报这样的领域,很容易看出历史数据如何帮助模型预测未来状态。但如何将其应用于语言?为了理解预测的概念如何影响语言建模,让我们退一步,谈谈语言直觉。
语言直觉
作为一门语言的使用者,你已经积累了关于它的惊人知识,其中很多是无法明确教授的。它包括关于语法性(句子是否在语法上正确)、同义性(两个词的意思是否大致相同)以及句子补全的判断。假设我让你填补以下句子的空白
“Julia 正在找 ___ 的钱包。”
你可能会说“她的”或“我的”或其他代词。即使是像“猫 Pablo 的”这样的所有格名词短语也可以。但你不会猜“牙刷”或“拉斯维加斯”。为什么?因为语言直觉。
训练语言模型
语言模型旨在模拟语言直觉。这并非易事。如前所述,语言直觉不是通过学校教育获得的,而是通过不断使用语言获得的(乔姆斯基甚至假设人类存在一个特殊的“ 语言器官”)。那么我们如何模拟它呢?
当今 NLP 的最先进技术由大型神经网络驱动。像 BERT 这样的神经语言模型通过处理数百万个数据点来学习类似于语言直觉的东西。在机器学习中,这个过程被称为“训练”。
要训练模型,我们需要设计一些任务,让它学习表示给定领域。对于语言建模,一项常见的任务是 完成句子中的缺失词,就像我们之前的例子一样。通过这个以及其他训练任务,语言模型学会编码词语和长文本片段的含义。
那么,如何从语言的语义属性的计算表示过渡到一个可以执行诸如问答或摘要等特定任务的模型呢?
通用型与领域专用型语言模型
像 BERT 或其更大的姐妹 RoBERTa 这样的通用语言模型需要大量数据来学习语言的规律。NLP 从业者经常使用维基百科和其他免费提供的文本数据集合来训练它们。现在,几乎所有 拥有足够大维基百科的语言 都存在类似 BERT 的模型。事实上,我们 deepset 已经生产了多种德语和英语模型,您可以在 我们的模型页面 上查看。
那么,这些模型能做什么?为什么它们如此受欢迎?嗯,BERT 可以用来增强语言理解,例如在 Google 搜索引擎 中。但通用语言模型最大的价值可能在于它们可以作为问答等其他语言任务的基础。通过将它们暴露于不同的数据集并调整训练目标,我们可以使通用语言模型适应特定的用例。
微调语言模型
许多任务都受益于语言直觉的表示。此类任务的示例包括 情感分析、命名实体识别、问答等等。将通用语言模型适应此类任务称为 微调。
微调需要针对模型要完成的任务的特定数据。例如,要将模型微调到问答任务,您需要一个 问答对数据集。这类数据通常需要手动创建和整理,这使得生成成本相当高。从积极的一面来看,微调所需的数据比训练通用语言模型少得多。
在哪里可以找到模型
通用型模型和微调型模型都可以保存和共享。 Hugging Face 模型中心 是最受欢迎的模型共享平台,拥有数以万计的不同大小、适用于不同语言和用例的模型。您的用例很可能已经在模型中心的一个模型中得到了涵盖。
为了帮助您找到可能适合您需求的模型,您可以使用模型中心页面左侧的界面按任务、语言和其他标准进行筛选。这使您可以专门查找为问答、摘要等任务训练的模型。一旦找到合适的模型,您只需将其插入您的 NLP 管道,连接到您的数据库,然后开始实验。
如何处理领域专用语言
尽管我们经常将语言视为同质实体,但现实情况与之相去甚远。例如,医学或法律等专业领域使用高度专业的术语,非专家几乎无法理解。同样,当通用 BERT 模型用于处理这些领域的数据时,它的表现可能会很差——就像一个没有该领域学位的人一样。
一种称为“领域适应”的技术提供了解决方案:在这里,预训练模型会经过额外的训练步骤,这次是在法律文件或医学论文等专业数据上进行。
Hugging Face 模型中心包含已适应科学、医学、法律或金融领域的 BERT 型语言模型。这些领域专用语言模型可以作为进一步下游任务的基础。例如,这个高度专业的模型 从英文和西班牙文的生物医学文本中提取命名实体(如细胞和蛋白质的名称)。
语言模型能做什么?
语言模型似乎非常智能。例如,在 此演示 中,我们展示了 我们的 RoBERTa 模型 在回答有关《权力的游戏》宇宙的问题方面有多好。但需要注意的是,这个语言模型实际上并不知道任何东西。它只是非常擅长从文档中提取正确的答案——这得益于它对人类语言的掌握以及在问答数据集上获得的微调。它的运作方式类似于人类代理阅读文档以从中提取信息,只是速度快得多!
其他类型的语言模型则采取完全不同的方法。例如,著名的 GPT 系列生成式语言模型 实际上会 记忆信息。它们拥有如此多的参数——数十亿——以至于它们可以在学习语言规律之外存储在训练过程中收集到的信息。
那么语言模型能做什么?它只能做它被训练来做的事情——不多也不少。有些模型被训练来从文本中提取答案,有些则从头开始生成答案。有些模型被训练来总结文本,有些则仅学习表示语言。
如果您的文档不使用高度专业的语言,预训练模型可能就足够了——无需进一步训练。然而,其他用例可能受益于额外的训练步骤。在我们即将发布的博客文章中,我们将更详细地探讨如何使用微调和领域适应等技术来最大限度地利用语言模型。
使用 Haystack 实现可组合的 NLP
现代 NLP 构建在数十年的研究之上,并融入了数学和计算机科学的复杂概念。这就是为什么我们提倡使用 Haystack 进行 可组合 NLP 的实践,它允许用户通过混合搭配的方式构建自己的 NLP 系统。您不必是 NLP 从业者即可使用我们的框架,就像您不必了解硬件或电力知识即可使用计算机一样。
想了解如何将预训练语言模型集成到 NLP 管道中吗?请查看我们的 GitHub 仓库 或注册 deepset Cloud。
要了解更多关于 NLP 的信息,请务必 下载我们的免费电子书 *NLP for Product Managers*。
最后,我们很乐意在 我们的 Discord 服务器 上见到您,deepset 团队的成员会在那里回答社区的问题。
