FlagData 2.0:全面、高效的大模型训练数据治理工具集

数据是大模型训练至关重要的一环。数据规模、质量、配比,很大程度上决定了最后大模型的性能表现。无论是大规模的预训练数据、精益求精的SFT数据都依托于一个完整的“获取-准备-处理-分析”数据流程。然而,当前的开源工具通常只专注于流程中的某一环节,很少有能够覆盖整个流程的项目。此外,这些工具处理的数据质量参差不齐,很难“干净地”从不同原始数据中提取表格、图片等结构化信息,这给构建大模型的训练数据集带来了极大的挑战。

智源发布FlagData聚焦在大模型时代的数据处理问题,旨在提供全面的、高效的大模型训练数据治理工具集,覆盖训练数据获取、清洗及迭代维护各个阶段,提高数据的利用率和质量,实现高效的数据处理及管理。当前FlagData v2.0全面升级支持多种原始格式高质量内容提取,提供大模型微调数据透视分析,用户可通过FlagData实现一站式的分布式数据处理,构建自己的数据处理平台。

↓ FlagData开源仓库

https://github.com/FlagOpen/FlagData

图1: FlagData pipeline
图1: FlagData pipeline

FlagData:全面、高效的大模型训练数据治理工具集

1. 实现多种原始格式数据的高质量内容提取,极大降低处理成本

大模型的发展依赖于干净、高质量的数据。然而,大多数数据难以发现、使用和清理。这些数据常以 HTML、PDF、CSV、PNG、PPTX 等不同格式存在,然而这些非结构化的数据形式难以让大模型“学到”有用的知识,“阅读”效率也欠佳。

在全面对比了主流开源数据工具之后,FlagData针对数据清洗任务进行了专门优化,并对现有开源工具中的相关功能进行了扩展升级,更好地适应大模型训练场景,从而降低了新手的使用门槛,帮助用户极大降低收集和清理数据的成本,让用户可以专注于难度更大的数据建模和分析任务上。

FlagData 能够有效地从多种不同原始格式数据中提取信息,并将其转换为干净、一致的 JSON 格式。JSON 格式对大模型训练非常友好,不仅便于进行分块、嵌入和集成到矢量数据库,还能轻松采用最先进的分块策略。将 PDF 和 EPUB 等原始数据转换 JSON 格式,可以确保了大模型训练过程中数据集能够持续更新。

此外,FlagData 集成了 pdf2txt 和 epub2txt 两个非结构化到文本的转换工具,能够识别表格、图表标题、正文、参考文献、页眉页脚、图像和公式等,并且为用户提供了两种数据处理方式:一种是将完整文档保存为 txt 文件,另一种是将图像、正文、参考文献等类别分别保存为 jsonList 格式。

如下是主流工具的对比:

表1:  主流数据工具对比

* 注:“处理时间”是对同一篇 arxiv 论文进行数据提取所花费的时间。 

以下是两个 FlagData 提取复杂内容的例子。对多栏排版数据,FlagData进行了针对性优化,能处理绝大多数多栏信息;在论文表格提取,FlagData 将表格转化为 HTML 格式并且无多余字符,ChatGPT 大模型能够正确“读懂”表格内容。

 

图2:FlagData 三栏识别准确率达到100%

图3:FlagData 提取PDF中的表格转换为 HTML格式
图4:ChatGPT能够“读懂”FlagData表格识别的结果

2. 提供大模型微调数据透视功能

一般来说,大模型微调数据处理的关键步骤包括:

  • 数据探索和理解:对微调数据进行初步的分析和探索,了解数据的分布、类别不平衡、特征之间的相关性等。这种理解有助于更好地选择微调策略和模型配置。

  • 微调策略选择:如选择合适的优化器、调整学习率的策略、冻结哪些层等,以便让模型更快地收敛并取得更好的性能。

  • 数据配比的选择:即通过对不同来源的数据做合适的上采样和下采样调整其在预训练数据中的占比。预训练的过程是比较耗资源的且训练过程往往是不可逆的,实验代价比较大,枚举比较完备的消融实验更是不太可能。同时单单数据维度就有很多种变量,尤其是数据配比,有中英文配比,不同来源的数据配比,不同任务的数据配比,不同质量的数据配比(被过滤的低质量仍可能有比较多的误过滤的好样本)。在实际的模型开发中,开发者往往在更小规模的模型上做消融实验对比,以此决定数据配比。

    • 例如,ChatGPT3.5数据配比应该是OpenAI最核心的“秘密”和领先之处。

    • 此外,专业领域的数据占比也是关键。专业知识需要和世界性知识进行合理的搭配才能训练出较好的领域大模型,否则大模型会同时损失世界性知识的问答效果以及专业性知识的问答能力。

针对大模型微调数据集构建的需求,FlagData 提供大模型多维度的数据透视功能:

  • 文本内容和领域分析:对文本数据进行领域分析,了解微调数据的主题,以确保模型在微调阶段对数据有充分的理解。

  • 语言特征分析:分析文本中的语言特征,有助于了解文本的语言风格和复杂度。

  • 文本本长度分析:分析文本的长度分布情况,包括句子长度、段落长度、文档长度等,有助于确定微调过程中所需的最大长度限制或截断策略。

以下是文本内容的领域分析和语言分析的效果图:

图5:  领域分布

图6:语言分布标题

3. 一站式高效分布式数据处理功能

FlagData 使用 MinHashLSH 算法和 Spark 分布式数据分析引擎,提供 TB级/小时的分布式数据去重能力。

表2:FlagData 执行去重任务的实测时间

表3:FlagData vs Python 执行去重任务的时间&资源对比

Spark + MiniHashLSH 也是GPT-3技术报告[1]中所披露的数据去重处理方案。MinHashLSH(最小哈希局部敏感哈希)算法是将文本转换为一系列哈希值,以便比较文本之间的相似性。在FlagData中,用户可以根据需要在FlagData配置中设置更高的 threshold 值(相似性阈值),以便只保留那些非常相似的文本,而丢弃那些相似性稍微低一些的文本,经验默认值为0.87。

相比SimHash等算法,FlagData 中的 MinHashLSH 算法,在准召率以及处理速度上都具有优势。以下是一个实际的例子:该文本在开头、编辑姓名等方面有细微区别,利用 FlagData 可以识别出这两段文本高度相似。

图7:相似文档判定

尽管Spark封装了许多高级API,但是对于没有Spark使用经验的同学来讲仍需要花很多时间学习,FlagData 提供了一个基础示例,用户可以直接使用python编写 Spark的UDF(用户自定义函数),注册自己的Spark函数算子。即使用户对Spark并不是非常了解,也可以完成 sparkSession创建、udf函数定义、注册、使用、执行等完整流程。另外,FlagData 还提供了“小白教程”帮助用户创建 Spark 集群进行分布式数据处理(详细步骤参考 FlagData deduplication模块)。

未来规划

FlagData 将继续致力于构建一个更加全面的数据处理工具箱:

  • 实现跨任务自动化,覆盖大模型训练数据、推理数据的开发及其维护各个阶段;

  • 建设数据血缘和标签体系,实现对情感和情绪的分析,识别文本中的实体、关键词和上下文关系,以方便用户可以有选择地使用数据增强模型在特定领域的性能表现。

  • 深入探索能够处理多模态数据的解决方案

  • 建立一个评估数据质量和人工智能技术的统一标准。

欢迎各界使用 FlagData 并提供反馈,大家可以通过 GitHub issue 与我们沟通:

https://github.com/FlagOpen/FlagData/issues

注释:

[1] Language Models are Few-Shot Learners, https://arxiv.org/pdf/2005.14165.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/599055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThreeJs通过canvas和Sprite添加标签

在3D场景中很多时候会用到给模型添加标签,以表示这个模型的代号,尤其是大量重复模型的时候,添加标签是为了更直观的看到场景中每个模型的数据和名称,比如在仓库中有很多货架,就会需要查看每个货架的编号,如…

Flink Connector 开发

Flink Streaming Connector Flink是新一代流批统一的计算引擎,它需要从不同的第三方存储引擎中把数据读过来,进行处理,然后再写出到另外的存储引擎中。Connector的作用就相当于一个连接器,连接Flink计算引擎跟外界存储系统。Flin…

长亭牧云主机管理助手——免费轻量的服务器管理软件初体验

优点 安装十分简单,新手友好,一行命令搞定界面简洁,操作流畅无需公网 IP,可以面对复杂 NAT 环境进行救急可以统一管理大量主机,无需记住主机秘钥 地址 https://rivers.chaitin.cn/app/collie 安装 安装很简单&…

基于 listmonk 的电子邮件营销解决方案

背景 电子邮件营销(EDM)在广告、电商、供应链物流等行业应用广泛,亚马逊云科技的市场部门持续不断的收到客户反馈,希望可以提供简单便捷的方案。 亚马逊云科技产品体验链接:点击我立即体验 对于发送邮件的需求&…

深耕汽车检测设备领域,引领行业技术革新

在汽车工业飞速发展的今天,汽车检测技术作为保障车辆安全、提升维修效率的重要手段,日益受到行业内外的高度关注。康士柏汽车检测线设备厂家,作为这一领域的佼佼者,凭借其深厚的技术积累和卓越的产品品质,正引领着行业…

c# 学习笔记 - 委托(Delegate)

文章目录 1. 委托1.1 委托概述1.2 委托使用1.3 委托的传播 2. 匿名方法2.1 匿名方法概述2.2 匿名方法 1. 委托 1.1 委托概述 委托简介 委托就是对方法的引用,可以理解为例如整型变量的容器可以存储整形数据,委托就是某种方法的容器,可以用来…

数据库基础知识1

关系模型的程序员不需熟悉数据库的存取路径 在3层模式结构中,___I___是数据库的核心和关键,___Ⅱ___通常是模式的子集,数据库模式的描述提供给用户,____Ⅲ__的描述存储在硬盘上。Ⅰ.模式Ⅱ. 外模式Ⅲ. 内模式 数据库中,数据的物理独立性是指用户的应用程序与存储在磁盘上数据库…

D6208双向直流马达驱动芯片 用于IPC产品,可兼容BA6208,噪声低 ,工作电源电压范围宽。

D6208 是一块单片双向马达驱动电路,它使用TTL电平的逻辑信号就能控制卡式录音机和其它电子设备中的双向马达。该电路由一个逻辑部分和一个功率输出部分组成。逻辑部分控制马达正、反转向及制动,功率输出部分根据逻辑控制能提供100mA(典型值&a…

迅腾文化观察:从“占位”到“心智”,从“借势”到“锁定”—— 高增长市场的企业战略之道

迅腾文化观察:从“占位”到“心智”,从“借势”到“锁定”—— 高增长市场的企业战略之道 在当今世界,市场环境瞬息万变,企业若想在激烈的市场竞争中立足并持续发展,必须不断地调整和优化自身的战略。在迅腾文化观察中…

electron进程通信之预加载脚本和渲染进程对主进程通信

主进程和预加载脚本通信 主进程 mian,js 和预加载脚本preload.js,在主进程中创建预加载脚本, const createWindow () > {// Create the browser window.const mainWindow new BrowserWindow({width: 300,height: 300,// 指定预加载脚本webPreferences: {preload: path.j…

web3 : blockscout剖析

Blockscout 是第一个功能齐全的开源区块链浏览器,可供任何以太坊虚拟机 (EVM) 链使用。项目方可以下载并使用Blockscout作为其链的浏览器,用户可以轻松验证交易、余额、区块确认、智能合约和其他记录。 目录 Blockscout可以做什么主要特征blockscoutDocker容器组件Postgres 1…

队列的数据结构实验报告

实验目的: 1、理解队列数据结构的概念和特点。 2、熟悉队列的应用场景和算法实现。 二、实验内容(实验题目与说明) 实现了一个循环队列,具有功能: 初始化队列。判断队列是否为空。判断队列是否已满。入队。出队。…

CSS基本知识

文章目录 1. CSS 是什么2. 基本语法规范3. 引入方式3.1 内部样式表3.2 行内样式表3.3 外部样式 4. 选择器4.1 选择器的功能4.2 选择器的种类4.3 基础选择器4.3.1 标签选择器4.3.2 类选择器4.3.3 id 选择器4.3.4 通配符选择器 4.4 复合选择器4.4.1 后代选择器4.4.2 伪类选择器 5…

【fiddler】fiddler抓包工具的使用

前言:我们可以通过fiddler软件,捕获到http请求,并修改请求参数 修改返回内容 fiddler下载,官网如下图 启动fiddler软件,点击file 选择 Capture Traffic 修改入参 (我们以谷歌浏览器发起请求为例) 此时会出现一个向上的箭头,点击…

Linux第8步_USB设置

学习完设置“虚拟机的电源”后,接着学习通过鼠标点击操作U盘,目的是了解USB设置。 1、在桌面,双击“VMware Workstation Pro”图标,得到下图: 2、点击“编辑虚拟机”,得到下图: 只要点击编辑虚…

Rockchip平台双屏异显功能实现(基于Android13)

Rockchip平台双屏异显功能实现(基于Android13) 1. 异显实现方案 Rockchip SDK平台支持两种不同的异显方案:Android Presentation和Android Activity指定屏幕启动。 使用Android Presentation方案,需要在APP开发中调用相应接口以使指定视图&#xff08…

【软件测试】2024年准备中/高级测试岗技术面试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、软件测试基础知…

建设数字工厂管理系统解决方案需要哪些技术

随着科技的快速发展,数字化转型已成为工厂提升生产效率、降低成本、增强竞争力的关键。数字工厂管理系统作为这一转型的核心,集成了各种先进的技术,以确保工厂运行的流畅和高效。本文将深入探讨建设数字工厂管理系统解决方案所需的关键技术。…

利用Fastcgi+PHP-FPM非授权访问实现代码执行

目录 Fastcgi Record Fastcgi Type PHP-FPM(FastCGI进程管理器) Nginx(IIS7)解析漏洞 security.limit_extensions配置 漏洞演示 今天要和大家分享的是利用Fastcgi和PHP_FPM实现未授权访问实现代码执行,首先我们需…