【导读】大家好,我是泳鱼。近些年AI大佬吴恩达老师一直在倡导“以数据为中心的AI”(Data-centric Artificial Intelligence,DCAI),以此希望AI研究者重视数据样本的重要性,将目光从以模型为中心转向以数据为中心。简单来说,也就是数据工程,研究如何提升数据质量及数量,以提升模型性能!
在此,本文全面概述了机器学习中数据方面的主要工作,可以对模型数据有个较全面的认识。
0 前言
吴恩达:过去十年,人工智能最大的转变是深度学习,而接下来的十年,我认为会转向以数据为中心Data-centric Artificial Intelligence(DCAI)。随着神经网络架构的成熟,对于许多实际应用来说,瓶颈将会存在于如何获取、开发所需要的数据...只要拥有50个好数据(examples),就足以向神经网络解释你想让它学习什么。
Data-centric Artificial Intelligence(DCAI)可以概括为数据工程,主要探索如何高效地构建高质量、大规模的数据集。显而易见,数据工程并不是一个新概念,而是一个“被冷落”的旧概念。传统的机器学习开发流程可以归为下图的流程:
我们可以简单将机器学习开发划为3个方面的主要工作:
- 数据工程:主要有数据清洗,数据转换,样本准备,标签标注,样本选择等。
- 特征工程:特征设计衍生,特征选择等;
- 模型训练:模型选择,模型结构,调参,模型评估等;
现在普遍的,AI以模型为中心(Model-centric),对于机器学习的开发者,数据样本很经常是固定的,特征工程及模型优化是重中之重,从见效、技术亮点都是妥妥的主角。而数据工程(或称为Data-centric)的工作经常是脏活累活,对模型的重要性经常被忽视,相关的技术发展也比较少。
可能是随着深度学习端对端学习弱化了对特征工程的依赖,以及越来崇尚的大模型的暴力美学,数据对模型效果也得到更多的重视了,毕竟Garbage in, garbage out!
1 Why DCAI ?
过去,人工智能主要关注设计模型,但这种方法过度依赖固定数据集,难以实现更好的模型行为。现在,人们更加注重提高数据的质量和数量,同时保持模型的相对固定。这种转变已经取得了一些成功,例如大型语言模型的进步和ChatGPT等应用。以数据为中心的方法具有许多优点,包括提高准确性、缩短开发时间、增强方法和一致性以及提高可扩展性。此外,以数据为中心的人工智能并没有降低以模型为中心的人工智能的价值,这两种范式是互补交织的,可以相互促进发展。在生产环境中,数据和模型往往在一个不断变化的环境中交替发展。
2 基本概念
- Artificial Intelligence (AI):人工智能是一个广泛且跨学科的领域,它试图使计算机具备人类智能以解决复杂任务。人工智能的主导技术是机器学习,它利用数据训练预测模型以完成某些任务。
- Data:数据是一个非常普遍的概念,用于描述传递信息的值集合。在人工智能的上下文中,数据用于训练机器学习模型或作为模型输入以进行预测。数据可以以各种格式出现,例如表格数据、图像、文本、音频和视频。
- Training Data:训练数据是机器学习模型训练阶段所使用的数据。模型利用训练数据来调整其参数并进行预测。
- Inference Data:推理数据是机器学习模型推理阶段使用的数据。一方面,它可以评估训练后的模型性能。另一方面,调整推理数据可以帮助获得期望的输出,例如调整语言模型的提示。
- Data Maintenance:数据维护是指维护数据质量和可靠性的过程,通常涉及高效的算法、工具和基础设施来理解和调试数据。数据维护在人工智能中起着至关重要的作用,因为它确保训练和推理数据的准确性和一致性。
- Data-centric AI:以数据为中心的人工智能是指一个为人工智能系统开发、迭代和维护数据的框架。以数据为中心的人工智能涉及构建有效训练数据、设计适当的推断数据和维护数据的任务和方法。
3 以数据为中心的人工智能任务
我们将以数据为中心的人工智能分为三个目标:训练数据开发、推理数据开发和数据维护。
图3 以数据为中心的人工智能框架
表1 以数据为中心的AI框架下的代表性任务
3.1 训练数据开发
训练数据为机器学习模型提供了基础,因为模型性能在很大程度上受其质量和数量的影响。训练数据开发的目的是收集和生成丰富、高质量的训练数据来支持机器学习模型的训练,包括五个子目标,分别为:1)数据收集,2)数据标注,3)数据准备,4)数据缩减,5)数据增强。最后我们将讨论管道搜索,这是一种新兴趋势,旨在连接这些步骤并搜索最有效的端到端解决方案。
创建和处理训练数据的基本步骤,如图4所示。
图4 训练数据开发通用流程概览
表2总结了训练数据开发任务的代表性任务和方法。
表2 训练数据开发任务的代表性任务和方法
3.1.1 数据收集
数据收集是从各种来源收集和获取数据的过程,从根本上决定了数据的质量和数量。这个过程严重依赖于领域知识。随着数据可用性的增加,高效利用现有数据集的策略的发展出现了激增。
领域知识的作用。深入了解应用领域或行业对于收集相关和代表性数据至关重要。在构建推荐系统时,需要根据应用领域决定收集哪些用户/项目特征。领域知识有助于使数据与利益相关者的意图保持一致,并确保数据的相关性和代表性。
高效的数据收集策略。高效数据收集策略包括利用现有数据,通过发现、集成和合成的方法,提高数据收集效率。与传统的手动收集方法相比,这些方法更省时。数据集发现通过汇集现有数据集,根据人类查询识别相关和有用的数据集。数据集成将不同来源的数据集整合成一个统一的数据集。原始数据合成通过合成包含所需模式的数据集,例如在异常检测场景中,合成异常模式以提高数据收集效率。这些策略有助于提高数据收集效率,减少人工工作量。
挑战。数据收集工作面临着诸多严峻的挑战,包括数据集的多样性、对齐的困难、合成数据所需的领域知识,以及法律、伦理和物流方面的限制。从零开始收集数据可能会遇到知情同意、数据隐私和数据安全等问题所带来的阻碍。因此,研究人员和实践者必须充分了解并认真对待这些挑战。
3.1.2 数据标注
数据标注是将一个或多个描述性标签或标记分配给数据集的过程,使算法能够从标记的数据中学习和做出预测。传统上,这是一个耗时且资源密集的手动过程,特别是对于大型数据集。最近,提出了更有效的标注方法来减少人力。
数据标注的必要性。数据标注在训练模型以准确反映人类意图方面至关重要。无监督学习技术在部分领域取得了成功,但为了获得更好的性能,通常仍需使用人类标签来微调大型语言模型和异常检测器。因此,标注数据对于教导模型与人类对齐和表现至关重要。
高效的标注策略。高效标注策略包括众包标注、半监督标注、主动学习、数据编程和远程监督。众包标注将任务分解给大量非专业注释者,通过迭代完善任务设计、要求多个工作人员注释相同样本并推断共识标签、或利用算法提高标签质量来提高效率。半监督学习利用少量带标签的数据来推断未标注数据的标签,如自训练、训练多个分类器并找到共识标签、基于图的半监督学习标注技术或基于人类反馈的强化学习过程。主动学习是一种迭代式标注过程,需要人类不断提供信息以自适应地选择查询。数据编程是一种基于人类设计标注函数的弱监督方法,通常需要最少的人类参与。远程监管通过利用外部资源来分配标签,如关系提取。这些策略可以组合为混合策略,以提高标注效率。
挑战。数据标注面临的主要挑战包括如何在标注质量、数量和经济成本之间找到平衡,以及如何应对标注的主观性和伦理问题。当预算紧张时,需要采取更高效的标注策略,并利用领域知识来平衡人力和标注质量/数量。此外,设计者需要确保指示清晰,以避免注释者误解,导致标注噪音。最后,数据隐私和偏见等伦理问题在标注任务分发给大量人群时尤为突出。
3.1.3 数据准备
数据准备涉及清理和转换原始数据,以适应模型训练的格式。通常,这个过程需要大量的工程工作,需要繁琐的试错。为了实现这个过程的自动化,最先进的方法通常采用搜索算法来发现最有效的策略。
数据准备的必要性。原始数据通常不适合模型训练,需要清理和转换。数据准备占数据科学家工作的约80%,因为原始数据可能存在噪声、不一致性和无关信息,导致模型结果不准确和有偏。此外,敏感信息可能引入偏见,原始特征值也可能影响模型性能。
代表性方法。数据清理、特征提取和特征转换。数据清理包括识别和纠正数据集中的错误、不一致和不准确,包括传统编程方法和基于学习的方法。传统方法使用编程自动化,但基于学习的方法如训练回归模型预测缺失值、通过抽样估计重复项和纠正标签错误,提高了准确性和效率。当代数据清理方法关注提高最终模型性能,例如采用搜索算法自动识别最佳清理策略。特征提取是从原始数据中提取相关特征的重要步骤,包括深度学习和传统方法。深度学习通过学习神经网络的权重来自动提取特征,需要较少的领域知识。特征变换是指将原始特征转换为新特征集的过程,通常可以提高模型性能,如归一化、标准化、对数变换和多项式变换等。这些方法可以以不同的方式组合以改善模型性能。
挑战。清洗和转换数据是一项挑战,因为不同数据集的特性各异。即使数据类型相同,特征值和潜在问题也可能非常多样化。研究人员和数据科学家需要投入大量时间和精力来清洗数据。虽然基于学习的方法可以自动搜索最佳准备策略,但设计适当的搜索空间仍然困难,且搜索过程耗时。
3.1.4 数据缩减
数据缩减的目标是在保留其基本信息的同时降低给定数据集的复杂性。这通常可以通过降低特征大小或样本大小来实现。
数据缩减的必要性。数据缩减在提高训练效率方面至关重要,可减少样本数量和特征大小,缓解内存和计算约束,以及数据不平衡问题。压缩特征可降低过拟合风险,提高模型部署速度和可解释性。总体而言,数据缩减技术有助于提高模型准确性、效率和可解释性。
减少特征规模的方法。从特征的角度,可以进行特征选择和降维。特征选择是从一组特征中选择与预期任务最相关的子集的过程,分为过滤、包装和嵌入式方法。主动特征选择还考虑了人类知识,逐步选择最合适的特征。特征选择降低了复杂性,产生更清洁和更易理解的数据,同时保留了特征的语义。降维是将高维特征转化为低维空间的过程,旨在保留最具代表性的信息。方法包括线性和非线性技术。
减少样本量的方法。实例选择是减少样本量或平衡数据分布的常用方法,可分为包装和过滤两种方法。实例选择技术还可通过欠采样多数类来缓解数据不平衡问题,如随机欠采样。强化学习也被用于学习最佳欠采样策略。
挑战。数据缩减面临两大挑战:一是选择最具代表性或低维空间中的最小信息损失数据不易;二是可能放大数据偏差,引发公平性问题。尽管基于学习的方法可部分解决,但处理大数据集时需大量计算资源。实现高准确率和效率的双重目标具挑战性,公平性感知的数据缩减是重要但未充分探索的研究方向。
3.1.5 数据增强
数据增强是通过人为地创建现有数据的变体来增加数据的大小和多样性的技术,这通常可以提高模型性能。值得注意的是,尽管数据增强和数据缩减似乎具有相互矛盾的目标,但它们可以相互结合使用。数据缩减的重点是消除冗余信息,而数据增强的目的是增强数据的多样性。
数据增强的必要性。现代机器学习,特别是深度学习,需要大量数据才能学习。收集大型数据集,尤其是带注释的数据集,耗时费力。数据增强通过生成变异的类似数据点,使模型暴露于更多训练示例中,提高准确度、泛化能力和鲁棒性,尤其在可用数据有限的应用中。数据增强还可缓解类不平衡问题。
常见的增强方法。数据增强方法分为基础操作和合成数据增强。基础操作通过修改原始数据生成新样本,如缩放、旋转、翻转和模糊,以及使用Mixup和AutoAugment等方法。合成数据增强通过生成模型学习数据分布,如GAN、变分自编码器和扩散模型,以生成新的训练样本。这些方法有助于提高模型的泛化能力和性能。
类别不均衡。类别不平衡是机器学习的挑战,多数类别样本数量远超少数类别。数据增强技术如SMOTE和ADASYN可平衡数据分布,通过生成合成样本增加少数类别样本数量。AutoSMOTE是强化学习算法,可搜索最佳过采样策略。
挑战。数据增强的关键挑战在于没有一种策略适用于所有场景,不同数据类型可能需要不同策略。例如,图数据无法直接应用普通Mixup策略。即使数据类型相同,最优策略也可能不同。基于搜索的算法可以识别最佳策略,但会增加计算和存储成本。需要更有效和高效的技术来克服这些挑战。
3.1.6 数据管道
现实世界中的数据管道通常包含多个步骤,每个步骤对应不同的子目标。尽管在单个任务方面取得了进展,但整个管道作为一个整体运行,不同步骤之间可能存在交互。管道搜索是一种自动搜索最佳组合的方法,如AutoSklearn、D3M、AlphaD3M、Deepline和ClusterP3S等算法。然而,管道搜索面临计算开销大的挑战,需要更有效的搜索策略,以使其在现实场景中得到更广泛的应用。
3.2 推理数据开发
在评估人工智能系统时,除了性能指标,还需要考虑模型的稳健性、泛化性和决策制定的理由。推理数据开发的目标是创建新颖的评价集,以便更精细地了解模型或通过工程数据输入触发模型的特定功能。这项工作有三个子目标:1)分布内评估,2)分布外评估,3)提示工程。推理数据开发的任务相对开放,因为它们通常旨在评估或解锁模型的多种功能,如图5所示。表3中总结了相关任务和方法。
图5 推理数据开发概览
表3 推理数据开发相关的任务和方法
3.2.1 分布内评估
分布内评估数据构建的目的是生成符合训练数据的样本。
分布内评估的必要性。分布内评估是评估训练模型质量的直接方法,需要更精细的评估以避免偏差和错误。这包括识别和校准未被充分代表的子群体,以及在部署前理解决策边界和检查模型伦理,特别是在高风险应用中。
数据切片。数据切片是将数据集划分为相关亚人群,分别评估模型在每个亚人群上的性能。常见的切片方法包括使用预定义的标准,如年龄、性别或种族。实际应用中的数据可能很复杂,需要适当设计分区标准。为了减少人力投入,人们开发了自动切片方法,如SliceFinder、SliceLine、GEORGE和Multiaccuracy,这些方法可以识别出重要的数据切片,提高模型性能。
算法追索权。算法追索权是一种通过生成假设样本来翻转模型决策以获得更优结果的方法。它对于理解决策边界和检测个体之间的潜在偏见非常有价值。现有方法主要分为白盒和黑盒两种,白盒方法需要访问评估模型,黑盒方法不需要访问模型。由于推理的目标标签通常由人类输入,这些方法都要求最小限度的人类参与。
挑战。构建分布式评估集的主要挑战在于识别目标样本,特别是在数据切片的情况下,随着数据点的增加,可能的数据子集数量呈指数级增长。同时,在可用信息有限的情况下,确定最接近的资源也需要付出巨大努力。
3.2.2 分布外评估
分布外评估数据是指一组样本遵循与训练数据中观察到的分布不同的分布的。
分布外评估的必要性。现代机器学习技术在训练数据上表现良好,但在实际部署中,数据分布可能不同。分布外评估主要评估模型在数据分布不同的情况下的泛化能力,发现模型的迁移性,增强其在意外情况下的表现信心,并提供关于模型鲁棒性的重要见解。这有助于确定模型是否适合实际部署。
生成对抗式样本。对抗样本是故意修改的输入数据,导致模型错误预测。手动扰动包括添加噪声和模糊等,自动化方法有四类:白盒攻击、物理世界攻击、黑盒攻击和中毒攻击。评估对抗样本有助于理解模型的鲁棒性,避免不良后果。
生成具有分布偏移的样本。生成具有分布偏移的样本用于在不同分布上评估模型。数据收集和构建评估集是两种方法。合成分布变化包括协变量偏移、标签偏移和一般分布偏移。有偏数据采样和基于学习的方法可用于生成具有分布偏移的样本,以评估模型的迁移能力。
挑战。生成分布外样本面临两个挑战:生成高质量的样本和评估样本质量。生成模型可能受限于训练数据不具代表性,或遇到模式崩溃问题。评估样本质量困难,因为常用度量标准可能不适用。已有多种评估指标被提出。创建高质量的分布外数据是一项复杂而艰巨的任务,需要精心设计。
3.2.3 提示工程
随着大型语言模型的出现,通过微调输入来获取知识并完成任务已成为可能。提示工程是一种新兴任务,旨在设计和构建高质量的提示,以实现最有效的性能。提示工程通过微调输入数据而不是模型本身来改变传统的工作流程。一种方法是通过创建模板进行手动提示工程,但可能不足以发现复杂任务的最佳提示。因此,已经研究了自动提示工程,包括从外部语料库中挖掘模板和用种子提示进行改述。提示工程的主要障碍在于缺乏一致表现良好的通用提示模板,不同的模板可能导致不同的结果。因此,有必要进行进一步的研究,以深入了解模型对提示的反应,并为提示设计过程提供指导。
3.3 数据维护
在现实应用中,数据并非一次生成,而是不断更新的,需要进行连续的维护。数据维护的目的是在动态环境中确保数据的质量和可靠性。它涉及三个基本子目标:1)数据理解,旨在提供复杂数据的可视化和评估,使人类能够获得有价值的见解;2)数据质量保证,旨在制定定量测量和质量改进策略来监控和修复数据;3)数据存储和检索,旨在设计高效的算法,通过合理分配资源和高效率处理查询来提供所需的数据。数据维护在以数据为中心的人工智能框架中起着基础和支持作用,确保训练和推断中的数据准确可靠。本节概述了对数据维护的需求、代表性方法(如图6所示)和挑战。如图6所示。表4总结了相关任务和方法。
图6 数据维护概览
表4 数据维护相关的任务和方法
3.3.1 数据理解
为了确保正确的维护,首先必须了解数据。
数据理解技术的必要性。现实世界数据量大且复杂,人类难以理解和分析。数据理解技术至关重要原因有三:1)总结和简化数据,使其更易于管理;2)将高维数据可视化,以适应人类感知;3)了解数据资产的价值,以及每个数据样本对性能的贡献。
数据可视化。数据可视化利用人类对图形的偏好,帮助理解复杂数据。可视化总结、可视化聚类和可视化推荐。可视化总结通过图表浓缩原始数据,帮助人们洞察数据。选择合适的可视化格式是关键,径向图和线性图是常见格式,但选择需权衡数据表示的忠实性和易用性。可视化聚类通过降维和自动聚类方法将高维数据可视化。可视化推荐系统根据预定义规则或机器学习技术,为用户推荐最合适的可视化格式。协作可视化技术使用户能提供反馈,实现更自适应的用户体验。
数据评估。数据评估旨在了解数据点如何影响最终性能,为利益相关者提供宝贵见解,并有助于数据市场交易。研究人员通过估计数据点的Shapley值来分配权重,增强其在多个数据集和模型中的鲁棒性。由于计算Shapley值可能非常昂贵,上述方法采用基于学习算法进行高效估算。
挑战。两个主要挑战:一是选择最佳数据可视化格式和算法,如聚类算法,需人类输入,增加复杂性;二是开发高效的数据估价算法,如计算Shapley值,计算成本高,且Shapley值可能仅提供有限的数据价值角度。
3.3.2 数据质量保证
为了确保可靠的数据供应,维护数据质量至关重要。
数据质量保证的必要性。在动态环境中,持续监控并改进数据质量至关重要。实际应用中的数据可能包含异常数据点,因此需要建立定量测量来评估数据质量。如果模型受到低质量数据的影响,应实施质量改进策略以提高数据质量,进而提高模型性能。
质量评估。质量评估包括客观和主观评估。客观评估使用数据固有属性,如准确性、时效性、一致性和完整性,来衡量数据质量,仅需要最小限度的人为参与。主观评估则从人的角度评估数据质量,通常针对特定应用,需要外部专家进行分析,包括可信度、可理解度和可访问性等指标,通常通过用户研究和问卷调查进行评估。虽然主观评估可能不会直接有益于模型训练,但它们可以促进组织内部的轻松协作,并提供长期利益。
质量改进。质量改进策略包括制定战略以提高数据管道各阶段的数据质量。初始方法使用程序化自动化,如完整性约束、拒绝约束和条件函数依赖,强制执行质量约束。基于机器学习的自动化方法被开发以提高数据质量,如数据验证模块使用训练集训练模型以识别潜在问题。管道自动化方法也被开发用于系统地策划数据,如数据集成和数据清理。协作方法鼓励专业人士参与数据改进,如自动驾驶和视频内容审查中的标注数据。UniProt创建了提交系统来利用集体智慧改进数据。所有方法都需要部分人的参与,因为人类必须提供信息。
挑战。数据质量面临两个挑战:选择合适的评估指标和实施质量改进。单一指标可能不足以应对不断变化的环境,需要仔细考虑。尽管自动化是关键,但人工参与可能也是必要的。因此,必须仔细设计评估指标和改进策略。
3.3.3 数据存储和检索
数据存储和检索系统在为构建AI系统提供必要数据方面发挥着不可或缺的作用。为了加快数据获取的过程,已经提出了各种有效的策略。
数据存储与检索的必要性。随着数据量指数增长,强大的可扩展数据管理系统对于支持AI模型训练至关重要。这包括:1)存储和合并来自不同来源的数据,需要仔细管理内存和计算资源;2)设计快速获取数据的查询策略以确保数据的及时和准确处理。
资源分配。资源分配是优化数据管理系统的关键。吞吐量和延迟是重要指标,可通过参数调优技术进行优化。早期的调优方法依赖经验和行业最佳实践,而基于学习的策略如Starfish和OtterTune可自动选择参数,提高资源分配的灵活性。
查询加速。可以通过高效索引选择和查询重写策略来实现。查询索引选择的目标是减少磁盘访问次数。策略是创建索引方案并记录查询执行成本,然后使用贪婪算法或动态规划选择策略。基于学习的自动化策略从人类专家那里收集索引数据,并训练机器学习模型来预测适当的索引策略,或者使用强化学习来搜索最佳策略。查询重写旨在通过识别输入查询中的重复子查询来减少工作负载。基于规则的策略使用预定义规则重写查询,例如DBridge。基于学习的方法使用监督学习或强化学习来预测查询重写规则。
挑战。现有数据存储和检索方法主要优化特定部分,如资源分配和查询加速。然而,整个数据管理系统复杂,需处理各种格式和结构的大量数据,端到端优化具挑战性。此外,数据存储和检索还需考虑数据访问控制和系统维护等关键方面。
4 以数据为中心的AI的自动化程度
以数据为中心的人工智能涉及数据生命周期各阶段的任务,根据是否需要人类参与分为自动化和协作两大类。每种方法都有不同的自动化程度或需要不同程度的人类参与,如图7所示。自动化任务涉及编程自动化、基于学习的自动化和流水线自动化,以提高效率和准确性。协作任务需要不同程度的人工参与,包括完全参与、部分参与和最低参与。这种分类有助于理解不同方法如何应用于不同的以数据为中心的目标,并实现效率和效果的权衡。
图7 以数据为中心的AI根据是否需要人类的参与被分为自动化和协作
4.1 自动化任务
- 编程自动化:使用程序自动处理数据。这些程序通常基于一些启发式算法和统计信息进行设计。
- 基于学习的自动化:通过优化学习自动化策略,例如最小化目标函数。这个层面的方法通常更加灵活和自适应,但需要额外的成本来学习。
- 流水线自动化:整合和调整多个任务中的一系列策略,这有助于识别全局最优策略。然而,调整可能会产生更高的成本。
4.2 不同程度的人工参与
- 完全参与:人类完全控制过程。该方法协助人类做出决策。需要完全参与的方法通常能很好地符合人类的意图,但成本很高。
- 部分参与:该方法控制着过程。然而,人类需要大量或持续地提供信息,例如通过提供大量反馈或频繁互动。
- 最低参与:该方法完全控制整个过程,只在需要时咨询人类。人类只有在被提示或要求时才参与。当遇到大量数据和有限的人力预算时,属于这种程度的方法通常更理想。
参考资料:
1.《 Data-centric Artificial Intelligence: A Survey》
2. https://zhuanlan.zhihu.com/p/620890799
3. https://aws.amazon.com/cn/blogs/china/sample-project-of-data-centric-ai/
关注