鹤啸九天 自律更自由,平凡不平庸 Less is More

以数据为中心的AI Data-centric AI

2024-05-10
阅读量

Notes(温馨提示):

  1. ★ 首次阅读建议浏览:导航指南, 或划到本页末尾, 或直接点击跳转, 查看全站导航图
  2. 右上角工具条搜索文章,右下角二维码关注微信公众号(鹤啸九天),底栏分享、赞赏、评论
  3. ★ 转载请注明文章来源,知识点积累起来不容易,水滴石穿,绳锯木断,谢谢理解
  4. ★ 如有疑问,邮件讨论,欢迎贡献优质资料


Data-centric

数据 > 模型

数据在模型训练中非常重要。

  • 数据提升对于模型效果的提升至关重要,而模型的提升效果却不明显
  • 很多研究人员开始研究以数据为中心,想办法加强数据的质量和数量, 而不过多考虑模型或固定数据集
  • img

什么是 Data-centric AI

Data-centric AI 定义

Data-centric 观点:

  • 当今的AI系统更多由数据驱动,而非模型架构的变化驱动

Andrew Ng: ML团队80%的工作应该放在数据准备上,数据质量最重要,每个人都应该如此

  • Data-Centric AI is the discipline of systematically engineering the data used to build an AI system.
  • If 80 percent of our work is data preparation, then ensuring data quality is the important work of a machine learning team.

Data-centric AI 是一种搭建 AI 系统的新理念, 简称 DCAI

Data-centric AI refers to a framework to develop, iterate, and maintain data for AI systems

Data-centric AI framework

Data-centric AI 是指为人工智能系统开发、迭代和维护数据的框架。它涉及建立有效的训练数据、设计适当的推理数据、维护数据的相关任务和方法。

Data-centric AI 框架

  • 训练数据开发
    • 数据收集、标注、准备、降维、增强
  • 推理数据开发
    • 分布内评估
    • 分布外评估
    • 提示工程
  • 数据维护
    • 数据理解、质量维护、存储检索

图解

论文 Data-centric Artificial Intelligence: A Survey

Model-centric vs Data-centric

对比分析

  • 模型为中心(model-centric): 传统搭建AI模型,以迭代模型为主,数据相对固定
    • 聚焦于几个基准数据集,然后设计各式各样的模型去提高预测准确率。
    • model-centric问题
      • 没有考虑到实际应用中数据可能出现的各种问题,例如不准确的标签,数据重复和异常数据等。
      • 准确率高的模型只能确保很好地「拟合」了数据,并不一定意味着实际应用中会有很好的表现。
  • 数据为中心(Data-centric) AI:
    • 关注数据本身,而模型相对固定。
    • 采用 Data-centric AI的方法, 实际场景中会有更大的潜力,因为数据很大程度上决定了模型能力的上限
    • Data-centric 更侧重于提高数据的质量和数量。

来自论文

数据为中心模型为中心 不是对立的,而是相辅相成

  • 一方面,以模型为中心的方法可用于实现以数据为中心的人工智能目标。
    • 例如,利用生成模型,如 GAN 和扩散模型,来执行数据增强并生成更多高质量数据
  • 另一方面,以数据为中心的人工智能可以促进以模型为中心的人工智能目标的改进。
    • 例如,增加的数据增强数据的可用性可以激发模型设计的进一步发展

DCAI 演变

随着AI发展,组织形式也在不断演进,职责分化,诞生新的功能模块。

传统:

  • 流程: 由数据工程师完成数据标注、清洗、增强、聚合等工作,再由机器学习工程师完成模型训练,而算法工程师仅需关注算法的开发。

问题:

  • 数据管理成本高:
    • 算力和存储未优化
    • 人力成本高, 主要靠算法工程师
    • 时间成本高
  • 无法支持大规模应用:
    • 人工管理数据, 到一定程度后,边际效应为0
    • 无法多维、多模态复杂查询
    • 稳定性差、安全性差

新的组织带来协作难度升级,也需要新范式来支持

职责分化

  • Data Ops: 数据标注(25%), 数据清洗(25%), 数据增强(15%), 数据聚合(10%)
  • ML Ops: 模型训练(10%), 数据识别(5%), 模型调参(5%), 机器学习运营(2%)
  • 算法工程师: 算法开发(3%)

图解

Data-centric AI 资料

综述

MIT: Introduction to Data-Centric AI 课程

Syllabus

Special topics from previous years

OpenAI 多么重视数据

OpenAI工程师花了极大心血提升数据质量和数量,GPT模型迭代差异明显

  • 训练数据: 小数据较大的高质量数据 → 更大的高质量数据 → 高质量人类标注数据
  • 推理数据: 对prompt进行复杂精细管理

GPT-1 -> GPT-2 -> GPT-3 -> GPT-4:

  • 模型架构相似
  • 数据量不同:
gpt模型 模型 数据量
GPT-1   4.8G,未过滤
GPT-2   40G,人工过滤
GPT-3   570G,从45T原石数据中过滤
ChatGPT/GPT-4   人工演示/标注

Data-centric 构成

data-centric两个重要部分: 合成数据数据选择

常面临数据量不足的问题

  • 首先, 采用合成数据方法, 提升数据数量。
  • 而数据数量达到一定程度时,模型性能陷入瓶颈,难以通过数量来提升性能,此时,可以通过数据选择方法筛选出高质量数据。

综述

摘要

  1. 分别从LM的五个learning stage介绍。
  2. Task-specific Fine-tuning 部分通常有两类目标:(实际落地场景较多应用)
  3. 匹配真实数据分布:适用于数据量少的场景
  4. 多样化数据分布: 1. 提高数据效能
    1. 数据集转化为图表示,knn寻找距离方差最大的数据点 -> 多样性;保留只有相同label邻近的数据点 -> 减少数据量。
    2. Self-influence score: 评估outlier等困难样本。
    3. datamodels
      1. 增强鲁棒性

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:自动化的控制整个过程,只在少量需要时咨询人类。人类只有在收到提示或要求时才会参与。当遇到海量数据和人力预算有限时,这种方法非常合适

同样,人类参与的程度在一定程度上,反映了效率(更少的人力)和有效性(更好地与人类保持一致)之间的权衡

合成数据 Synthetic Data

Conclusion

Conclusion

  1. 优秀的LLM合成数据的质量更高(推荐用GPT-4合成)。
  2. 合成数据训练出的模型性能比真实数据更差且与任务的主观性呈负相关。
  3. Few-shot合成数据通常比zero-shot合成数据的效果更好。
  4. 盲目增加训练数据可能导致特定任务的性能下降。
  5. 合成数据在多语言场景上有三种用法,均能够提升目标语种效果:
  6. 直接生成非目标语种数据
  7. 生成非目标语种数据后翻译成目标语种
  8. 直接生成目标语种的数据
  9. 在合成数据之后再通过判别器过滤掉被判别为“合成数据”的数据能够提升合成数据的忠实度,但不一定能提高效果。

论文

IT University of Copenhagen: The Parrot Dilemma: Human-Labeled vs. LLM-augmented Data in Classification Tasks

  1. 基于大型语言模型(LLMs)的数据增强:
    • 针对文本分类任务,每次使用GPT-4和Llama-2 70B生成与给定样本数据标签相同但内容相似的9个新样本。
  2. 平衡的数据增强策略:过采样少数类别以平衡数据集中的类别比例。
  3. 温度调整:temperature为1,有助于增加生成样本的多样性
  4. 多样性评估:计算合成数据与用于合成的原始数据样本的余弦相似度(语义多样性)和token overlap的比例(词汇多样性),来评估生成数据的多样性。
  5. 对比零样本分类的LLM:用FT小模型和zero-shot的LLM在文本分类任务上
  6. LLMs在生成与现实世界数据分布一致的合成数据方面仍面临挑战。

Microsoft: LLM-powered Data Augmentation for Enhanced Crosslingual Performance

  1. 使用 Dolly-v2、StableVicuna、ChatGPT 和 GPT-4,来扩充三个多语言常识推理数据集
  2. 评估了使用合成数据对较小的多语言模型进行微调的有效性,包括 mBERT 和 XLMR,并比较了使用英语生成的数据和目标语言生成的数据的效果。

Purdue University: Synthetic Data Generation with Large Language Models for Text Classification: Potential and Limitations

  1. 在不同文本分类任务中,使用LLM生成的合成数据训练出的模型性能与任务的主观性呈负相关。
  2. 使用few-shot合成数据相比zero-shot可以提高生成数据的有效性。

Allen Institute for AI: How Far Can Camels Go? Exploring the State of Instruction Tuning on Open Resources

  1. 采用不同数据集(真实/合成)在多个特定任务上进行实验
  2. 使用所有的数据集一起训练可以在达到最好的平均性能,但是在特定任务上性能会下降。
  3. 盲目增加训练数据可能导致特定任务的性能下降。
  4. 使用GPT合成数据训练有助于模型减少有害回复。

University of Toronto: Generating Faithful Synthetic Data with Large Language Models: A Case Study in Computational Social Science

  1. 合成数据的生成分布通常与研究人员关心的真实世界数据的分布不同(即不忠实)。为了提高合成数据的忠实度,在讽刺检测的任务中提出了三种策略:
  2. grounding(基础): 1. 合成示例相似数据(Parrot Dilemma这篇) or rewrite
  3. Filtering 1. 训练一个bert模型专门用来判断数据是否是合成数据
  4. taxonomy-based generation(在prompt中指定讽刺类别以提高多样性)。
  5. 三种策略都提高了分类器的性能,但grounding策略对于讽刺检测任务效果最好。

选择数据 Data Selection

总结

Conclusion

  1. PE数据选择方法成本较低,优先尝试。
  2. Influential function方法可在小模型上计算,以降低成本,再将选择出的高质量数据集迁移到目标LLM上进行训练。
  3. Datamodel 实现成本偏高,落地时只能在需要数据量小的场景应用。
  4. 获得数据选择标准/选择好的高质量数据后,能够反作用于数据合成质量的提升。
  5. 数据多样性不一定能提升效果。

方法概览

Data Selection常用的四类方法

Data Selection Solutions Intro Advantages Weakness
提示工程 PE 通过Prompt Engineering 判断数据质量 实现简单,成本最低 依赖于LLM能力,不够domain-specific
影响函数 Influential Function 通过计算数据间影响力函数,判断出对目标数据贡献大的训练集样本。 选择的数据质量高、可迁移性。 实现成本较高,计算量大,耗时久。
数据建模 Datamodels 对目标数据建立datamodel,判断对目标数据贡献大的训练集样本。 选择的数据质量高。 实现成本极高,实际场景难落地。
其它 Other 利用与测试集数据的相似度来选择。 实现成本相对Influential function和data models较低。 数据质量难以保证。

(1) PE

论文

清华: CRITIQUELLM: Scaling LLM-as-Critic for Effective and Explainable Evaluation of Large Language Model Generation

  1. 通过PE对训练数据难度打分(1-3),判断数据质量。
  2. 设计数据合成与选择的pipeline: few-shot生成 -> 质量打分 -> zero-shot生成 -> 质量打分

(2) Influence functions

论文

Influence functions:

  1. 评估训练集每个sample对Loss的影响
  2. 计算模型参数^2维度的hessian矩阵 -> 对于LLM开销太大,使用 Eigenvalue-corrected Kronecker-Factored Approximate Curvature (EK-FAC)代替。
  3. TF-IDF 过滤减少需要计算的sample数量(根据query选择TF-IDF得分top-10000的seqs)
  4. query batching 一次性计算所有训练数据的梯度,且用低秩矩阵代替计算。
  5. 实验针对不同query去计算其在训练集中 influential score高的样本

Danqi Chen

  1. Influential score的计算根据adam优化器作了改良,引入了m和v
  2. 数据选择:将每个子任务的训练集数据与验证集数据计算influential score,选择其中score top5%作为选定数据。
  3. 数据选择模型和最终使用的模型可以不同,所以可以用小模型进行data selection后再将选定的数据集应用于大模型ft

AI Lab

(3) Datamodels

MIT, Datamodels: Predicting Predictions from Training Data

  1. 给定一个训好的模型以及目标数据,建模预测出对目标数据的训练有帮助的训练数据,并去除噪声数据、发现泄漏数据等。
  2. 对每个测试集的样本都需要建一个datamodel来分析,训练成本较高

MIT: DsDm: Model-Aware Dataset Selection with Datamodels

  1. 通过使用数据模型来估计训练子集对目标任务性能的影响,并选择使估计最小化的子集。
  2. 选择与高质量数据相似度高的数据(Classifier/DSIR) 可能反而降低表现

其它

Stanford

  • Data Selection for Language Models via Importance Resampling
    1. 提出一种通过在降维的n-gram特征空间中估计重要性权重,并根据这些权重进行重采样数据选择的方法DSIR。
    • 本质上是利用与测试集数据的相似度来选择。 2. 定义了一种数据度量方法,称为KL reduction,计算使用数据选择方法选定的数据集与随机选择的数据集相比,在特征空间上相对于目标分布的KL散度的平均减少量。
    • KL reduction 的值越大,表示通过数据选择过程选定的数据集在特征空间上与目标分布的接近程度越高,即数据选择过程更有效。

案例

Self-Instruct

大模型严重依赖于人类编写的指令数据,而这些数据在数量、多样性和创造力方面受到限制,阻碍了调整模型的通用性。

【2023-5-25】华盛顿作者提出了Self-instruct框架,通过预训练语言模型自己引导自己来提高的指令遵循能力的框架。

半自动的self-instruction过程,用于使用来自模型本身的指示信号对预训练的LM进行指令调整。

迭代的自引导(iterative bootstrapping)算法

  • 从一个有限人工编写的指令种子集开始,用于指导整个生成。
  • 第一个阶段,提示模型为新任务生成指令。此步骤利用现有的指令集合来创建更广泛的指令,这些指令定义(通常是新的)任务。
  • 对于新生成指令集,框架还创建输入-输出实例,这些实例可在以后用于监督指令调优。
  • 最后,在将低质量和重复的指令添加到任务池之前,使用各种措施来修剪它们。这个过程可以在许多交互中重复,直到达到大量的任务。

核心思想:生成指令遵循数据

指令数据由指令输入输出组成。

数据生成piple包含四个步骤:

  • 1)生成任务指令
  • 2)确定指令是否代表分类任务
  • 3)使用输入优先或输出优先方法生成实例
  • 4)过滤低质量的数据。

贡献如下:

  • SELFINSTRUCT,一种用最少的人工标记数据诱导指令跟随能力的方法;
  • 通过大量指令调优实验证明了其有效性;
  • 发布包含52K指令的大型合成数据集和一组手动编写的新任务,用于构建和评估未来的指令遵循模型。

人物角色驱动的数据构造

【2024-7-1】腾讯AI Lab技术报告:一种以10亿人物角色驱动的新颖数据构造方法

大规模创建合成数据并非易事,尤其是确保数据的多样性

  • 以往的研究, 通过实例驱动或关键点驱动的方法来增加数据的多样性,但这些方法在可扩展性上存在限制。

因此, 腾讯提出了一种新颖的人物角色(Personas)驱动的数据合成方法,利用大型语言模型(LLM)中的多种视角来创建多样化的合成数据。

By showcasing PERSONA HUB’s use cases in synthesizing high-quality mathematical and logical reasoning problems, instructions (i.e., user prompts), knowledge-rich texts, game NPCs and tools (functions) at scale, we demonstrate persona-driven data synthesis is versatile, scalable, flexible, and easy to use, potentially driving a paradigm shift in synthetic data creation and applications in practice, which may have a profound impact on LLM research and development.

create ($data) with ($persona)

data:

  • math problem
  • logical reasoning problem
  • user prompt to an LLM

persona:

persona math problem logical reasoning problem user prompt to an LLM
a moving company driver      
a chemical kinetics researcher      
     
a musician interested in audio processing      

人物角色可以与广泛的数据合成提示(例如,创建一个数学问题或用户提示)一起工作,以指导大型语言模型(LLM)合成具有相应视角的数据。

人物角色中心中的10亿个人物角色可以促进在十亿规模上为各种数据合成场景创建合成数据。

  • “人物角色库”(Persona Hub):一个从网络数据自动策划的包含10亿个不同人格的集合。这些人格作为世界知识的分布式载体,可以深入LLM中的几乎所有视角,从而促进大规模创建多样化的合成数据。

角色库采用了两种可扩展的方法:Text-to-PersonaPersona-to-Persona

  • Text-to-Persona 方法通过特定文本推断出可能阅读、写作或喜欢该文本的特定人格。
    • 文本到人物角色的方法:任何文本作为输入,只需通过提示大型语言模型“谁可能[阅读|写作|喜欢|不喜欢|...这个文本?]”,就可以获得相应的角色。
  • Persona-to-Persona 方法则是从已有人格中衍生出具有人际关系的其他人格。
    • 角色到角色方法:通过人际关系获取多样化的角色,这可以通过向大型语言模型提问“谁是与给定角色有密切关系的人?”来轻松实现。

通过“人物角色库”合成高质量数学和逻辑推理问题、指令(即用户提示)、知识丰富的文本、游戏NPC和工具(功能)的用例。

结束


支付宝打赏 微信打赏

~ 海内存知已,天涯若比邻 ~

Share

Similar Posts

Related Posts

标题:大语言模型原理详解 LLM Theory & Code

摘要:大模型原理、架构、代码理解、改进

标题:RLHF原理及进化

摘要:RLHF 原理及各个改进版本

站内可视化导航

文章可视化导读:鼠标划过图形块时,如果出现蓝色光环, 点击即可跳转到对应主题

Comments

--disqus--

    My Moment ( 微信公众号 )
    欢迎关注鹤啸九天