为什么需要合成数据进行机器学习
为什么需要合成数据进行机器学习
文章目录
- 一、说明
- 二、数据缩放问题
- 三、合成数据的前景与进展
- 四、将合成数据与 LLM 结合使用的最佳实践
- 五、通过合成数据释放创新
一、说明
数据是人工智能的命脉。如果没有高质量的、具有代表性的训练数据,我们的机器学习模型将毫无用处。但是,随着更大的神经网络和更雄心勃勃的人工智能项目对数据的需求越来越大,我们面临着一场危机——现实世界的数据收集和标记根本无法扩展。
在这篇文章中,我将讨论围绕真实世界数据的关键挑战,以及为什么合成数据对于开发高性能、稳健和合乎道德的人工智能系统至关重要。我还将分享一些生成和使用合成数据来训练大型语言模型 (LLM) 的最佳实践。
二、数据缩放问题
让我们首先了解为什么真实世界的数据会遇到可扩展性问题。现代神经网络是数据饥渴的野兽——像 GPT-4 这样的大型语言模型是在数十万亿个文本参数上训练的。图像分类模型需要数百万个标记样本才能达到人类水平的性能。随着我们向多模态、多任务模型发展,数据需求将继续激增。
不过,真实世界的数据不会长在树上。收集足够大的高质量、代表性数据集来为这些模型提供数据的成本非常高:
数据收集是手动且缓慢的——网络抓取、调查、传感器数据等需要大量的人力和基础设施。组装数据集可能需要数千小时,AI 模型可以在训练过程中在几分钟内完成这些数据集。
数据标记需要大量的人工审查——图像、文本、音频——几乎所有数据都需要某种形式的手动标记或注释,然后才能用于监督训练。例如,自动驾驶汽车可能需要数百万张具有精确像素级分割的图像,而这几乎是不可能的手动工作。
专用数据尤其稀缺 — 虽然存在像 ImageNet 这样的通用数据集,但大多数业务应用程序都需要利基的专用数据,而这些数据甚至更难大规模获取和标记。
隐私和法律限制限制了访问——从个人身份信息到版权问题,由于隐私法或专有限制,现实世界的数据通常无法在组织之间自由共享和重复使用。这极大地阻碍了人工智能领域的合作和创新机会。
很明显,现有的获取训练数据的方法对于大型神经网络和雄心勃勃的现实世界人工智能应用程序时代来说是完全不够的。运行更大的模型或解决更棘手的问题将需要比我们使用当今的手动流程实际收集的任何东西都大多个数量级的数据集。
如果没有可扩展的数据问题解决方案,人工智能的进步将开始在许多重要的应用领域碰壁。幸运的是,合成数据和模拟提供了一条前进的道路。
三、合成数据的前景与进展
合成数据是机器生成的数据,它模仿真实世界数据的统计属性。这个想法不是手动收集和标记数据,而是以编程方式自动生成模拟数据集。
生成建模的最新进展使得跨图像、文本、语音、视频和传感器数据等模态合成越来越逼真的模拟数据成为可能。论文和项目呈指数级增长,证明了这些生成合成数据技术的扩展能力。
是什么让合成数据在解决人工智能中的数据缩放问题方面如此有希望?
它是自动化的 — 合成数据管道可以在配置后自动生成任意大的数据集,而无需任何额外的人工工作。这使得数据实际上变得无限。
它是可定制的——合成数据的每个方面都可以通过编程方式进行控制,从而可以轻松调整以匹配真实世界分布的统计数据。想要更多罕见的极端情况的例子吗?这是对数据生成器的简单调整。
它是可共享和可重用的——人工数据没有隐私限制,可以自由共享、重用和混合以实现协作。这也允许创建基准数据集,整个社区可以围绕这些数据集联合起来并推动进展。
它是多用途的——相同的合成数据生成管道通常可以创建针对不同下游问题定制的训练数据,而无需进行太大更改。这使得扩展到新的用例变得容易。
它既快速又便宜——大多数合成数据技术的运行速度比实时快得多,同时利用 GPU 等备用计算能力。生成更多数据的边际成本基本上为零。
合成数据的有效性已在医学成像、自动驾驶、药物发现、推荐系统、金融、机器人和自然语言处理等应用中得到证明。几乎每个与数据稀缺作斗争的行业都会从中受益。
随着目前人工智能的整体发展速度呈指数级增长,生成模型的创新可以迅速转化为更强大、更经济的合成数据。这是一个正反馈循环,最终仅受计算能力的约束。
因此,在未来几年,合成数据将成为许多人工智能系统训练数据的主要来源。但这还不像启动发电机并获得完美的训练组那么简单。仍然需要最佳实践…
四、将合成数据与 LLM 结合使用的最佳实践
GPT-4/LLaMA-2/Gemini 1.5 等大型语言模型 (LLM) 在训练期间基本上会摄取无限的文本流。在这种规模上,跨不同领域的收集和标记足够的真实世界训练数据是完全不可行的。因此,合成文本数据至关重要,但仍需要勤奋才能有效。
以下是在训练大型自然语言模型时合成数据的一些核心最佳实践:
- 对真实数据进行基准测试
合成数据的根本挑战是确定它保留了真实数据的统计本质。如果不能准确模拟长程依赖性等复杂性,一旦部署到实际任务中,可能会严重降低模型性能。
因此,我们必须通过在合成数据集上训练模型并与真实世界的数据进行交叉验证,对合成数据集进行广泛的基准测试。如果我们能够匹配甚至超过专门在真实数据上训练的模型所达到的指标,我们就可以验证质量。然后,数据生成器的改进可以专注于提高这些基准的性能。
- 与真实数据融合
大多数语言数据管道仍然至少包含一部分真实示例。虽然比率各不相同,但根据当前公布的基准,20-30%往往是一个有用的大致目标。这个想法是,真实的例子提供了一个稳定训练的锚点。
这种混合可以在多个层面上发生,从将真实示例明确混合到最终数据集中,到使用较小的真实数据集在大规模合成生成之前对数据生成器参数进行定底。
- 按元数据分层
现代 LLM 在具有大量元数据(作者、主题、日期、标题、URL 等)的数据集上进行训练。这些补充数据对统计关系进行编码,这些统计关系对于许多下游应用至关重要。
因此,元数据分层对于高质量的合成文本数据很重要。在可能的情况下,应对元数据属性的分布进行基准测试和匹配。生成没有上下文的独立段落会限制模型的能力。
至少,元数据(如新闻文章和科学论文的时间框架)往往是通过合成生成管道进行编码的重要分层变量。
- 模型迭代细化
数据生成器应根据基准性能的反馈和模型训练期间观察到的错误进行迭代更新。在尝试捕获复杂的长距离属性时,发电机架构非常重要。
如果我们发现语言模型反复与人类干净处理的某些类型的段落结构作斗争,那么更新生成器以更好地在合成分布中暴露这些结构将提高下游模型的质量。
这种以编程方式优化数据本身以指导模型功能的能力是合成数据所独有的,并且非常强大。它创建了一个反馈循环,可以引导至其他无法达到的性能水平。
- 扩大多样性
对合成文本数据的一个持续问题是缺乏多样性,从而导致偏见放大等问题。复杂的生成模型旨在捕获分布,但可能会遗漏长尾的细微差别。
通过词汇、语义和句法多样性的指标积极分析合成数据管道,然后迭代调整有助于避免这些陷阱。我们还可以通过直接调节敏感元数据的生成来程序化地促进多样性,以更好地反映现实世界的异质性。
这些最佳实践共同有助于确保合成文本数据大规模地提高而不是损害语言模型的质量,同时避免常见的陷阱,例如过度拟合生成器的统计怪癖。
五、通过合成数据释放创新
高质量的合成数据为人工智能的进步开启了一个充满潜力的世界,而这些进步以前受到数据稀缺的阻碍。几乎每个现代深度神经网络都渴望获得更多数据——合成生成提供了无限的资源来养活这些野兽。
除了支持更大更好的模型外,随时可用、可定制的训练数据还可以通过允许更快速的原型设计来加速研究和应用。想法可以快速测试和迭代,而不是等待数月来收集和标记真实世界的数据。
合成数据可实现开放、协作的数据集,从而促进更广泛的参与。具有可免费使用的培训资源的公共基准比锁定在组织内部的孤立的现实世界数据集更能促进创新和多样性。
我们正处于合成数据革命的边缘,预计在未来十年中,在模拟数据的支持下,语言、视觉、机器人、医疗保健等领域将取得爆炸性进展。可扩展性瓶颈正在消退,人工智能能力将大幅扩展,从而释放出新的可能性。
伟大的综合伴随着巨大的责任。虽然合成数据为人工智能的进步提供了巨大的潜力,但它并没有消除围绕道德、隐私、问责制等方面的考虑,我在这里没有讨论,但有必要在其他地方进行广泛的分析。我们必须负责任地追求进步。
尽管如此,人工智能正在达到数据基础的转折点。我们必须在合成能力方面进行大量投资,以实现机器智能的下一个阶段。构建这些无限的数据引擎将在未来几年推动各行各业的突破。现在是开始的时候了。
相关文章:
为什么需要合成数据进行机器学习
为什么需要合成数据进行机器学习 文章目录 一、说明二、数据缩放问题三、合成数据的前景与进展四、将合成数据与 LLM 结合使用的最佳实践五、通过合成数据释放创新 一、说明 数据是人工智能的命脉。如果没有高质量的、具有代表性的训练数据,我们的机器学习模型将毫无…...

传统CS网络的新生——基于2G网络的远程灌溉实现
概述:iphone 实现远程电话触发,实现灌溉绿植的一般方法 方法一: 远程电话触发,音频线左右声道会产生一个信号,可以在后端利用SR锁存器暂存信号,后级可以接相应的控制电路实现灌溉。 方法二: 同…...

EasyAR_稀疏空间图
EasyAR_稀疏空间图 EasyAR4.6.3 丨 Unity2020.3.15f2 1.创建稀疏空间地图 在EasyAR开发中心后台创建Scene许可证密钥,并且使用稀疏空间地图 2.设置稀疏空间地图库名,对稀疏空间地图进行管理,设置密钥 3.复制密钥到Unity中 添加Spatial Map Ap…...

设计模式 - Singleton pattern 单例模式
文章目录 定义单例模式的实现构成构成UML图 单例模式的六种实现懒汉式-线程不安全懒汉式-线程安全饿汉式-线程安全双重校验锁-线程安全静态内部类实现枚举实现 总结其他设计模式文章:最后 定义 单例模式是一种创建型设计模式,它用来保证一个类只有一个实…...

显示学习5(基于树莓派Pico) -- 彩色LCD的驱动
和这篇也算是姊妹篇,只是一个侧重SPI协议,一个侧重显示驱动。 总线学习3--SPI-CSDN博客 驱动来自:https://github.com/boochow/MicroPython-ST7735 所以这里主要还是学习。 代码Init def __init__( self, spi, aDC, aReset, aCS) :"&…...
ros vscode配置gdb调试
ros工程vscode下配置gdb的调试环境需要添加几个配置文件,下面贴一下用得到的几个配置文件。 c_cpp_properties.json,这个配置作用是方便代码跳转。 {"configurations": [{"browse": {"databaseFilename": "${defau…...
C 环境设置
C 环境设置 C语言作为一种广泛使用的编程语言,其环境设置是每个开发者必须掌握的基本技能。本文将详细介绍如何在不同的操作系统上设置C语言开发环境,包括Windows、macOS和Linux系统。我们将涵盖安装编译器、配置开发环境以及编写和运行第一个C程序。 Windows系统上的C环境…...
Linux-ubuntu操作系统装机步骤
1、下载iso镜像 方法一、访问Ubuntu官网 方法二、163镜像 2、制作U盘启动盘 方法一、UltraISO(软碟通)写入硬盘映像,参考该 [链接] 方法二、Rufus,参考该 [链接] 3、安装 参考该 [链接] 4、相关配置 Ubuntu 换源 参考链接…...
马尔科夫毯:信息屏障与状态独立性的守护者
马尔科夫毯(Markov Blanket)是概率图模型中的一个重要概念,用于描述某一节点在网络中的信息独立性和条件依赖关系。马尔科夫毯定义了一个节点的“信息屏障”,即给定马尔科夫毯中节点的状态,该节点与网络中其他节点的状…...

Pandas的30个高频函数使用介绍
Pandas是Python中用于数据分析的一个强大的库,它提供了许多功能丰富的函数。本文介绍其中高频使用的30个函数。 read_csv(): 从CSV文件中读取数据并创建DataFrame对象。 import pandas as pd df pd.read_csv(data.csv) read_excel(): 从Excel文件中读取数据…...
1. protobuf学习
文章目录 1. protobuf介绍1.1 ProtoBuf使用场景说明2. 其他序列化介绍2.1 Json2.1.1 使用Json序列化2.1.2 Json反序列化2.2 其他可选地序列化和反序列化3. protoBuf3.1 protobuf数据类型3.2 protobuf使用步骤3.2.1 定义proto文件3.2.2 编译proto文件3.2.2.1 安装protocol buffe…...
Java面试题:SpringBean的生命周期
SpringBean的生命周期 BeanDefinition Spring容器在进行实例化时,会将xml配置的信息封装成BeanDefinition对象 Spring根据BeanDefinition来创建Bean对象 包含很多属性来描述Bean 包括 beanClassName:bean的类名,通过类名进行反射 initMethodName:初始化方法名称 proper…...

50 IRF检测MAD-BFD
IRF 检测MAD-BFD IRF配置思路 网络括谱图 主 Ten-GigabitEthernet 1/0/49 Ten-GigabitEthernet 1/0/50 Ten-GigabitEthernet 1/0/51 备 Ten-GigabitEthernet 2/0/49 Ten-GigabitEthernet 2/0/50 Ten-GigabitEthernet 2/0/51 1 利用console线进入设备的命令行页…...

SpringSecurity-1(认证和授权+SpringSecurity入门案例+自定义认证+数据库认证)
SpringSecurity 1 初识权限管理1.1 权限管理的概念1.2 权限管理的三个对象1.3 什么是SpringSecurity 2 SpringSecurity第一个入门程序2.1 SpringSecurity需要的依赖2.2 创建web工程2.2.1 使用maven构建web项目2.2.2 配置web.xml2.2.3 创建springSecurity.xml2.2.4 加载springSe…...

Java高级
类变量/静态变量package com.study.static_; 通过static关键词声明,是该类所有对象共享的对象,任何一个该类的对象去访问他的时候,取到的都是相同的词,同样任何一个该类的对象去修改,所修改的也是同一个对象. 如何定义及访问? 遵循相关访问权限 访问修饰符 static 数据类型…...

python实现图像分割算法3
python实现区域增长算法 算法原理基本步骤数学模型Python实现详细解释优缺点应用领域区域增长算法是一种经典的图像分割技术,它的目标是将图像划分为多个互不重叠的区域。该算法通过迭代地合并与种子区域相似的邻域像素来实现分割。区域增长算法通常用于需要精确分割的场景,如…...

解密XXE漏洞:原理剖析、复现与代码审计实战
在网络安全领域,XML外部实体(XXE)漏洞因其隐蔽性和危害性而备受关注。随着企业对XML技术的广泛应用,XXE漏洞也逐渐成为攻击者们利用的重点目标。一个看似无害的XML文件,可能成为攻击者入侵系统的利器。因此,…...
Spring Boot集成Resilience4J实现限流/重试/隔离
1.前言 上篇文章讲了Resilience4J实现熔断功能,文章详见:Spring Boot集成Resilience4J实现断路器功能 | Harries Blog™,本篇文章主要讲述基于Resilience4J实现限流/重试/隔离。 2.代码工程 pom.xml <dependency><groupId>io…...
谷粒商城实战笔记-119~121-全文检索-ElasticSearch-mapping
文章目录 一,119-全文检索-ElasticSearch-映射-mapping创建1,Elasticsearch7开始不支持类型type。2,mapping2.1 Elasticsearch的Mapping 二,120-全文检索-ElasticSearch-映射-添加新的字段映射三,121-全文检索-Elastic…...

Java 并发编程:Java 线程池的介绍与使用
大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 024 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...