对于那些不精通机器学习的人来说,像 ChatGPT 所基于的 GPT-3.5 这样的大型语言模型似乎是自给自足的。这些模型通过无监督或自我监督学习进行训练。简而言之,只需极少的人工干预,就能生成一个能像人类一样对话的模型。
这就引出了一个问题--数据标注对大型语言模型还有意义吗?
对于机器学习团队、项目经理和企业来说,忽视数据标注的重要性是不明智的。从表面上看,大型语言模型(LLM)似乎能够胜任任何任务,但现实却并非如此。
本文将探讨数据标注与大型语言模型之间的互利关系。
在正式开始前我们先简单介绍下数据标注和常用场景
数据标注是对数据中的特定元素进行识别、描述和分类,以训练机器学习模型的过程。标注后的数据将用于处理、预测基础模型或者对真实生活数据进行响应。它有助于模型或神经网络学习并做出决策,从而产生所需的结果。
例如,OCR系统需要识别原始数据中的个人身份信息。为此,标注人员会在训练样本上标注姓名、身份证和联系方式。然后,机器学习工程师用数据集训练模型,以实现OCR实体识别,并从存储的文档中提取个人详细信息。
数据标注看似简单,但各种参数可能会影响标注结果和模型性能。因此,ML 团队使用数据标注软件来支持他们创建准确、高性能的模型。
早在LLM或者生成式人工智能出现之前,数据标注就已经在机器学习模型的训练中发挥了关键作用。
大型语言模型(LLM)是使用海量数据训练的语言神经网络模型。它们大多基于Transformer 神经网络架构。与前者不同的是,Transformer 能够并行关注多个单词,这使得模型能够理解相距甚远的单词之间的关系。
像 GPT、Bard 和 BERT 这样的语言模型是大型语言模型。因此,它们可以与用户对话,用自然语言构建答案。然而,它们的智能化需要付出高昂的代价,而且需要大量的原始数据。尽管如此,这些模型在下游应用中的功能还是受到了限制,下面我们将对此进行说明。
在进一步了解之前,我们先来看看机器学习工程师是如何训练 GPT-3 等 LLM 的。
首先,数据科学家从互联网、书籍和公共数据集等各种来源收集大量原始文本数据。然后,标注员清理数据,确保数据不存在错误、噪音或偏差。之后,通过标记化等预处理步骤,将原始数据转换成模型可以理解的格式。标记化将文本数据转化为由单词或子单词组成的更小的语言单位。
像 GPT3 这样的大型语言模型使用下一标记词预测和mask-level modeling来形成对语言结构的自然理解。
这两种自然语言处理训练方法都能使模型提高提供最相关输出的概率。它通过将生成的输出结果与预期结果进行比较来实现这一目的。然后,它将差异或错误传递给网络进行后续优化。模型可以通过评估损失梯度来重新调整参数和权重,以弥补产生的差异。这一过程是迭代式的,模型会重复这些步骤,直到达到令人满意的性能为止。
最后,经过训练的模型要进行评估测试,即由人工智能工程师向其输入一组带标注的测试数据。根据测试结果,他们可能会进一步调整模型参数,或针对特定目的进行微调。后者涉及监督训练,即向模型提供带标注的数据集。
从理论上讲,大型语言模型可以在没有标注数据的情况下实现功能。像 GPT3 这样的模型使用自监督或无监督学习来开发理解自然语言的能力。它不使用标注数据进行训练,而是使用下一个单词预测方法来学习如何以最符合上下文逻辑的方式完成句子。
大型语言模型虽然智能,但并不完美,往往不适合实际应用。原因就在这里。
大型语言模型本身无法执行专业或特定业务任务。例如,您不能使用 ChatGPT 作为您公司的聊天机器人,因为它不是根据您的产品或服务训练出来的。
LLM 容易产生偏差,从而影响其响应的准确性和适当性。在安全、金融和其他关键任务行业,这可能会导致代价高昂的不公平预测。
如果没有额外的规定,GPT 等模型可能会被滥用或误用。作为预先训练好的模型,它们可能会用不恰当的文本、过时的信息或捏造的事实做出回应。
以下是大语言模型功能受限的一些例子
一般来说,LLM 依赖于它们所训练的数据集和自我监督能力。不幸的是,在实际模型中,预期输出和实际性能之间存在差距,这就需要数据标注发挥作用。标注不是训练整个模型,而是帮助优化模型,使其适用于实际应用。
下面,我们将分享标注如何提高 LLM 的整体性能、正确性和实用性。
虽然大型语言模型在训练过程中不直接使用注释数据,但仍可从人工标注者那里获益。通常情况下,此类模型的重新训练成本过高,这就凸显了人工标注在清除错误信息方面的重要性。标注员可以整理并清除数据集中的噪音和错误,从而提高训练模型的可靠性。
数据注释对于为特定应用定制大型语言模型至关重要。例如,您可以利用对业务或行业的深入了解对 GPT 模型进行微调。这样,您就可以创建在您的细分领域一个类似于 ChatGPT 的聊天机器人,用最新的产品知识吸引客户。
随着研究人员不断推出新的语言模型,他们需要一种公平的方法来评估这些模型的性能。标注数据提供了单一的基本事实,可用于比较模型之间的精确度、召回率或 F1 分数等指标。
大型语言模型在理解不同语言语境和细微差别方面通常比其前辈更胜一筹。尽管如此,并不是所有的模型都同样擅长理解人类语言的复杂性。因此,标注有助于提高它们理解和应对不同语言风格的能力。
预先训练好的 GPT 模型能够将句子连贯地串联在一起,但需要进一步完善以适应特定的目的。ChatGPT 采用了一种名为 "人类反馈强化学习"(RHLF)的技术进行微调,以改进其目的对齐。RHLF 的工作原理是在预训练模型预测标注数据集的可能输出时对其进行奖励。
为了对 ChatGPT 进行微调,OpenAI 的工程师们经历了以下几个步骤。
第一步:监督微调(SFT)
监督微调包括由人类标注团队创建一组提示及其预期输出。然后,工程师使用提示-输出组合训练基础 GPT 模型,生成 SFT 模型。由于这种方法是人工完成的,因此成本高且缺乏可扩展性。此外,标注员创建的数据集不足以彻底微调像 GPT 这样庞大的模型,因此我们需要进行下一步。
第二步:奖励模型
奖励模型克服了 SFT 的扩展能力。工程师不需要从头开始创建数据集,而是使用 SFT 模型为一个提示自动生成多个答案。然后,标注员对答案进行排序,以反映最佳匹配到最不理想匹配。
通过这种方法,OpenAI 的工程师可以生成更大的数据集,而不受人力资源的限制。然后,他们利用这个数据集来训练奖励模型,根据人类的偏好来预测 SFT 模型的得分。
第 3 步:近端策略优化 (PPO)
在最后阶段,工程师创建了一个涉及 PPO 和奖励模型的强化学习机制。PPO 模型是 LLM 模型的一个副本,它产生一个输出,奖励模型为其分配一个分数。根据得分,PPO 模型将在下一次迭代中调整其策略并提高性能。
ChatGPT 在数据标注方面的应用凸显了后者在对齐 LLM 方面的重要性。同样,这也表明 LLM 对于标注任务非常有用。公司面临着成本和资源压力,需要为日益复杂的深度学习模型创建大量准确的数据集。通过启用 ML 辅助标注,它们可以在标注任务中提高生产力和成本效益。
机器学习如何帮助实现数据标注自动化
LLM 能够自然地理解人类语言。不过,它们同样擅长数据结构、主动学习和生成合成数据。这使得像 GPT 这样的 LLM 能够帮助完成预标注任务。标注者可以使用 LLMs 识别和标注文本数据中的特定实体,而不是手动标注整个数据集。
有些 LLM 具备零次学习或少量学习的能力,这使得模型无需微调即可做出预测。在数据标注方面,这种能力使 LLM 可以执行人工标注任务,而无需进行冗长的准备工作。这样,人工标注人员就可以投入更多时间来查看已标注的数据集。当然,这也为企业节省了时间和成本。
自动化数据标注的工具和技术
现在,您可以利用 ChatGPT 或 GPT 本身来协助您完成预标注任务。为此,您需要及时掌握工程知识,为 ChatGPT 创建适当的指令,以便进行分析、标注并以适当的格式返回结果。另外,ML 工程师也可以使用 OpenAI API 密钥以编程方式访问 GPT 模型。
让我们以 NER 项目为例。在这种情况下,可以要求 LLM 以 JSON 字符串的形式返回实体。采用这种格式后,实体就可以上传到 ML工程师的数据库。
这样,LLM 就能与现有的自动标注管道实现无缝集成。例如,我们在后面讲演示了如何使用 GPT 在 CoNLL2003 数据集上应用命名实体识别标记,并将预先标注的数据导出到我们的标注平台。