大模型时代
人工智能(Artificial Intelligence, AI)最近取得了巨大的进展,比如大语言模型(Large Language Models, LLMs)领域,最近火爆全网的ChatGPT和GPT-4。全球无数公司都在基于大模型能力,全力迭代或重构行业服务形态
大模型能力的加持下,在如下的几个方面,涌现出了大量的突破和创新:
-
创意输出:比如写作、设计、编码、建模等
-
知识引擎:比如搜索、总结、排序等
-
全新交互(LUI):比如说让生手或者是一个专家和应用程序进行交互,使其能够产生新的知识和想法,以及通过和聊天机器人的互动探索一些数据,带来非常开放的知识。
-
智能体(LAM):智能的分析与决策,且在人工监督下自动执行复杂任务的应用程序
模型性能的关键
GPT演化的关键
简单介绍下大语言模型和 GPT 模型。大语言模型指的是一类自然语言处理模型。顾名思义,大语言模型指的是比较「大」的(神经网络)语言模型。语言模型在自然语言处理领域已经被研究过很久了,它们常常被用来根据上文来推理词语的概率。例如,大语言模型的一个基本功能就是根据上文预测缺失词或短语的出现概率。我们常常需要用到大量的数据去训练模型,使得模型学到普遍的规律
通过上文来预测缺失词示意图
GPT 模型是由 OpenAI 开发的大语言模型系列,主要包括 GPT-1,GPT-2,GPT-3,InstructGPT 以及 ChatGPT、和 GPT-4。就像其他大语言模型一样,GPT模型的架构主要基于 Transformer,以文本和位置信息的向量为输入,使用注意力机制来建模词之间的关系
数月前,Yann LeCun(深度学习三巨头之一)发文称ChatGPT在技术上并不是什么新鲜事物。的确如此,在ChatGPT/GPT-4 中使用的方法,比如 Transformer、RLHF 等都不是什么新技术。即便如此,ChatGPT 还是取得了以前的模型无法企及的惊人效果。那么,是什么推动了它的成功?
毋庸置疑,增加模型参数的数量对 GPT 模型的成功至关重要,但这只是其中的一个原因。通过详细阅读 GPT-1、GPT-2、GPT-3、InstructGPT 和 ChatGPT/GPT-4 论文中有关数据的描述,我们可以明显看出 OpenAI 的工程师们花了极大心血去提高数据的质量和数量。从 GPT-1 到 GPT-4,在数据上,体现出了非常明显的差异性
-
在训练数据上看:不论是质量还是数量都是越来越好(如下左图)。大体经历了以下变化:小数据 -> 大一点的高质量数据 -> 更大一点的更高质量数据 -> 高质量人类(指能通过考试的标注者)标注的高质量数据。模型设计并没有很显著的变化(除了参数更多以顺应更多的数据)
-
在推理数据上看:为了能构建出更好的模型效果,需要在 prompt 上进行复杂精细的管理
综上所示,我们可以看出 OpenAI 的工程师们花了极大心血去提高数据的质量和数量,正是因为有了高质量的数据集,才保证了模型性能
大模型应用的关键
从上图(截取自 Snorkel AI 的产品会)可以看出,在 base model 的基础上,通过精心设计的 FT 数据,大幅提升了 LLM 在不同下游任务上的性能。FT 阶段的数据质量和多样性至关重要
小模型应用的关键
从上图中也可以看出,数据提升对于模型效果的提升至关重要,而模型的提升效果却不明显
数据的价值
数据是核心路径
过去,人工智能通常被视为以模型为中心的领域,重点是在给定固定数据集的情况下推进模型设计。然而,过度依赖固定数据集并不一定会导致在实际应用中很好的模型效果,因为它忽略了数据对潜在问题的广度、难度和保真度的影响。此外,由于这些模型高度专业化且针对特定问题进行了调整,因此它们通常很难从一个问题转移到另一个问题。同时,低估数据质量可能会引发问题的级联,导致诸如准确性降低和持续偏差等负面影响。这会严重阻碍人工智能系统的适用性,特别是在高风险领域
因此,最近很多研究人员开始转向以数据为中心的AI研究,其主要目的就是想办法加强数据的质量和数量, 而不过多的考虑模型或者说一味的固定数据集
这种转变在大模型领域尤其凸显。例如 GPT3 相比于 GPT2 来说模型结构上改变不大,但花了大量的成本清洗出了一个高质量的海量训练数据。chatgpt 相比于 GPT3 来说也没有改变模型结构,而是使用了高质量的数据进行了与人类意图的对齐(RLHF)
数据处理耗时费力
在设计复杂 AI 的过程中,算法占据了较小的一部分,大量的工作内容在数据层面。数据处理会占用大量的时间和人力。随着 AI 的迅猛发展,对数据质量的要求也在不断提升。但是,高效的数据管理系统的缺失,也为企业AI落地带来巨大的挑战
在 AI 的发展过程中,传统的模式是由算法工程师完成全部的工作,包括数据的采集、标注、训练和参数调整等。面对数据量级不断上升,只由算法工程师完成是难以实现的,会导致数据管理成本较高,无法支持大规模复杂数据的应用。
随着现在 AI 的发展趋势,组织形式也在不断演进,职责分化诞生新的功能模块。由数据工程师完成数据标注、清洗、增强、聚合等工作,后续再由机器学习工程师完成对模型的训练,而算法工程师仅需关注算法的开发。新的组织带来协作难度升级,也需要新范式来支持
DCAI 概念
Data-centric AI 是一种搭建 AI 系统的新理念,简称 DCAI
Data-centric AI is the discipline of systematically engineering the data used to build an AI system. — Andrew Ng
通俗点讲,Data-centric AI refers to a framework to develop, iterate, and maintain data for AI systems
传统的搭建AI模型的方法主要是去迭代模型,数据相对固定。比如,我们通常会聚焦于几个基准数据集,然后设计各式各样的模型去提高预测准确率。这种方式我们称作以模型为中心(model-centric)。然而,model-centric没有考虑到实际应用中数据可能出现的各种问题,例如不准确的标签,数据重复和异常数据等。准确率高的模型只能确保很好地「拟合」了数据,并不一定意味着实际应用中会有很好的表现。
与model-centric不同,Data-centric更侧重于提高数据的质量和数量。也就是说Data-centric AI关注的是数据本身,而模型相对固定。采用Data-centric AI的方法在实际场景中会有更大的潜力,因为数据很大程度上决定了模型能力的上限。
需要说明的一点:以数据为中心和以模型为中心的AI不是对立的,这两种范式是相辅相成和互补交织的
-
一方面,以模型为中心的方法可用于实现以数据为中心的人工智能目标。例如,我们可以利用生成模型,如 GAN 和扩散模型,来执行数据增强并生成更多高质量数据
-
另一方面,以数据为中心的人工智能可以促进以模型为中心的人工智能目标的改进。例如,增加的数据增强数据的可用性可以激发模型设计的进一步发展
因此,在生产场景中,数据和模型往往在不断变化的环境中交替发展
DCAI 生态
以下内容参考论文 arxiv.org/pdf/2303.10…
Data-centric AI framework
如上图所示,主要分成以下3个部分
- 训练数据开发:目标是生产高质量的训练数据,以支持机器学习模型的训练。它包括五个子目标
- 推理数据开发:构建模型推理的数据,旨在评估或解锁模型的各种功能。有三个子目标
- 数据维护开发:旨在确保数据在动态环境中的质量和可靠性。在实际生产环境中,我们并不是只训练一次模型,数据和模型是需要不断更新的。这个过程需要采取一定的措施去持续维护数据,它包括三个子目标
下图简要介绍了不同的数据目标下,对应的常用技术机制
Automation and Human Participation in DCAI
以数据为中心的人工智能由各类与数据生命周期相关的任务组成
-
为了跟上数据不断增长的规模,在 DCAI 中,必须开发自动化算法来简化流程。例如,数据增强和特征转换的自动化越来越受到关注。这些任务中的自动化不仅可以提高效率,而且可以提高准确性
-
自动化可以促进结果的一致性,减少人为错误的引入。同时,人类参与对于确保数据符合我们的意图至关重要。例如,人类通常在标注数据的阶段,发挥了不可或缺的作用。是否需要人类参与取决于我们的目标是否是使数据与人类期望保持对齐
将目前DCAI的研究方向划分为两个视角,即自动化程度和人类协作程度。每个数据任务都有不同程度的自动化,并需要不同程度的人类参与,如下图
这两类研究方向中,前者侧重于自动化流程的设计,后者则更加关注如何 human in the loop
三种Automation
-
Programmatic automation:使用程序自动处理数据。程序通常是根据一些启发式和统计信息设计的,现阶段各类的 automate machine learning 的工作大都集中于此,例如各类 auto feature engineering 的方法
-
Learning-based automation:通过优化学习自动化策略。例如,最小化目标函数,此类方法通常更灵活,适应性更强。例如基于强化学习的方法做超参数调整或基于 meta learning 来确定优化策略等
-
Pipeline automation:跨多个任务的自动化调整优化策略。例如 tpot,autosklearn 这类工作,将数据处理,特征工程,模型调参等一系列任务放置在一个统一的 pipeline 里(Learning-based automation和Programmatic automation可以看作是pipeline automation中的一环)
三种Human Participation
从另一个角度来看,面向Human Participation的方法往往需要不同形式的人类参与。我们可以确定几个程度:
-
Full participation:人类完全控制过程。需要全员参与的方法通常可以很好地符合人类的意图,但代价高昂,例如雇佣大量外包公司来做数据打标
-
Partial participation:不需要人工全程参与,但是需要人类密集或持续地提供信息。例如,通过提供大量反馈或频繁交互。例如大名鼎鼎的RLHF。Active Learning 领域很多研究都是这个范畴
-
Minimum participation:自动化的控制整个过程,只在少量需要时咨询人类。人类只有在收到提示或要求时才会参与。当遇到海量数据和人力预算有限时,这种方法非常合适
同样,人类参与的程度在一定程度上,反映了效率(更少的人力)和有效性(更好地与人类保持一致)之间的权衡
Tasks in Data-centric AI
Data Benchmark
相关信息汇总如下
DCAI 总结
咱们一起对4个常见问题进行下讨论,同时对之前的DCAI内容进行下回顾和总结
Q1:使人工智能以数据为中心的必要任务是什么?
A1:以数据为中心的人工智能涉及开发 训练数据、推理数据、维护数据的一系列任务。这些任务包括但不限于
-
训练数据:清理、标注、准备、缩减、增强
-
推理数据:生成用于评估的分布内和分布外数据,也包括通过prompt工程以获得所需结果
-
维护数据:构建用于理解数据、组织数据、调试数据的高效通用能力
Q2:为什么自动化对数据开发和维护很重要?
A2:当今时代,数据的增长速度越来越快,同时高质量数据对模型的性能有着决定性影响。建设自动化机制,简化数据开发和数据维护,加速数据迭代效率,势在必行。如之前讨论的,在所有的Data-centric的子目标下,都涌现了不少自动化算法。这些自动化算法涵盖了多种自动化级别,从编程自动化到基于学习的自动化,再到管道自动化
Q3:为什么人工参与对以数据为中心的人工智能至关重要?
A3:许多 DCAI 任务都需要人工参与。例如大多数的数据标注任务和推理数据开发中的数据评估等。总体来看,不同的方法需要不同程度的人工参与,从全面参与到提供最小输入。本质上来讲,人工参与是确保AI系统和人类意图对齐的唯一手段
Q4:以数据为中心的人工智能目前的进展如何?
A4:虽然 DCAI 是一个相对较新的概念,但许多技术已经取得了相当大的进展。其中很多技术手段,在以模型为中心的处理范式中被视为预处理步骤,其实已经发展了很长时间
我们也可以把 DCAI 与另外两个热门课题关联起来
-
基础模型(FM):基础模型是一种在大量无标签数据上进行训练的大型模型,可以适应各种任务,例如LLM和 Stable Diffusion。随着模型变得足够强大,使用模型执行许多以数据为中心的人工智能任务变得可行,例如数据标注和数据增强。因此,基础模型的发展趋势有可能从根本上改变我们对数据的理解。与将原始数据值存储在数据集中的传统方法不同,模型本身就是数据的一种形式,因为模型可以传达信息。基础模型模糊了数据和模型之间的界限,当然它们的训练过程仍严重依赖于大量的高质量数据集
-
强化学习(RL):强化学习是一个通过反馈来训练模型而无需任何初始数据的研究领域。它是一种独特的学习范式,在使用模型生成数据和使用自我生成的数据训练模型之间交替。与基础模型一样,强化学习的进步也可能模糊数据和模型之间的界限。此外,强化学习已经在几个以数据为中心的人工智能子目标中得到了广泛应用,例如数据标注、数据准备、数据缩减、数据增强。可以归因于其目标导向的性质,非常适合自动化机制的建立
展望未来,DCAI 有如下的几个潜在发展方向
-
跨任务自动化:虽然在自动化在各种单独的以数据为中心的人工智能任务方面取得了显著进展,但跨多个任务的联合自动化在很大程度上仍未看到重大进展。虽然管道搜索方法已经出现,但它们仅限于训练数据开发。理想情况是拥有一个统一的框架,用于联合自动化旨在实现不同目标的任务,从训练数据开发到推理数据开发,以及数据维护
-
数据与模型协同设计:虽然 DCAI 主张将重点转向数据,但这并不一定意味着模型必须保持不变。使用不同模型时,最佳数据策略可能会有所不同,反之亦然。此外,随着FM和RL的进步,数据和模型之间的界限会变得越来越模糊。因此,未来AI的进步可能来自于数据和模型的协同设计,而数据和模型的协同进化,也为更强大的人工智能系统铺平了道路
-
数据去偏:在许多高风险应用中,发现 AI 系统会对某些人群表现出歧视,引发了对大家对公平性的重大关注。这些偏见往往源自数据中,敏感变量的分布不均。从以数据为中心的角度来看,需要更多的研究努力来去偏数据,包括但不限于减少训练数据中的偏见,构建评估数据以暴露不公平问题的系统性方法,以及在动态环境中持续维护数据的公平性
-
多模态数据处理:目前大多数研究工作都针对表格和图像。然而,其他模态的数据在 DCAI 中同样重要。当然研究较少的数据模态也带来了重大挑战。例如,时间序列数据表现出复杂的时间相关性,而图数据 具有复杂的数据依赖性。因此,需要更多对这类模态设计数据的深入研究
-
数据基准开发:Model-Centric 人工智能的进步得益于基准在推进模型设计方面的作用。相比之下,以数据为中心的人工智能需要更多关注基准测试。现有的以数据为中心的人工智能基准通常仅关注特定任务。构建一个统一的基准来评估整体数据质量,评判各类人工智能技术的综合表现是一项重大的挑战