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.hqwc.cn/news/323977.html

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

相关文章

贪心算法:活动选择问题以及贪心选择性质证明

什么时候使用贪婪算法? – 贪心选择特性: 全局的最优解可以通过局部的最优(贪婪) 选择得到. • 动态规划需要检查子问题的解。 – 最优子结构: 问题的最优解包含了其子问题的最优解. • 例如, 如果 A 是S的最优解, 那么 A A - {1} 是 的最优解. …

网桥的基础知识

1、什么是网桥? 网桥:一种桥接器,连接两个局域网的一种存储/转发设备。工作在数据链路层,是早期的两端口二层网络设备。可将一个大的VLAN分割为多个网段,或者将两个以上的LAN互联为一个逻辑LAN,使得LAN上的…

队列的数据结构实验报告

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

Kubernetes 1.29:稳定性提升、性能升级,全新功能来袭!

关注【云原生百宝箱】公众号,获取更多云原生消息 Kubernetes 1.29版本带来了多项重要变化和功能更新。这次发布将ReadWriteOncePod从Alpha版本升级到稳定版,引入了nftables来取代iptables以提升性能,将SidecarContainers功能升级至Beta并默认…

打工人的2.0时代,只需要一副AR眼镜!

在数字化时代,工业行业中的生产效率如何得到提升?工业AR眼镜或许是一个不错的选择。不过工业AR眼镜真的可以协助员工处理工作中所遇到的各种问题吗?我们以制造业、医疗行业、船舶业的不同从业者为例: 假如你是一名制造业从业者&am…

阿里云服务器配置jupyter(新手入门,详细全面)

设置安全组 1.租好服务器后在阿里云服务器平台上打开控制台(右上角) 2.点开自己的云服务器控制台,在左栏“安全组”部分添加安全规则,点击“管理规则” 单击“手动添加”,将安全组设为如下格式,端口范围…

面试算法89:房屋偷盗

题目 输入一个数组表示某条街道上的一排房屋内财产的数量。如果这条街道上相邻的两幢房屋被盗就会自动触发报警系统。请计算小偷在这条街道上最多能偷取到多少财产。例如,街道上5幢房屋内的财产用数组[2,3,4,5,3]表示…

网页爬虫在数据分析中的作用,代理IP知识科普

在当今信息爆炸的时代,数据分析成为洞察信息和制定决策的不可或缺的工具。而网页爬虫,作为数据收集的得力助手,在数据分析中扮演着举足轻重的角色。今天,我们将一同探讨网页爬虫在数据分析中的作用。 1. 数据收集的先锋 网页爬虫…

Java版商城:Spring Cloud+SpringBoot b2b2c电子商务平台,多商家入驻、直播带货及免 费 小程序商城搭建

随着互联网的快速发展,越来越多的企业开始注重数字化转型,以提升自身的竞争力和运营效率。在这个背景下,鸿鹄云商SAAS云产品应运而生,为企业提供了一种简单、高效、安全的数字化解决方案。 鸿鹄云商SAAS云产品是一种基于云计算的软…

oracle语法学习

oracle语法学习 1.备份表 create table bd_psndoc_temp as select * from bd_psndoc2.还原表 drop table bd_psndoc; create table bd_psndoc as select * from bd_psndoc_temp3.查询表的前5条记录 select * from bd_psndoc_temp where rownum<54.从一个表中复制所有的列…

FastDFS

docker 安装 1拉取镜像&#xff08;已经内置Nginx&#xff09; docker pull delron/fastdfs 2 构建Tracker # 22122 > Tracker默认端口 docker run --nametracker-server --privilegedtrue -p 22122:22122 -v /var/fdfs/tracker:/var/fdfs -d delron/fastdfs tracker 3 …

JSP页面访问JDBC数据库的六个步骤

【例】创建exgample11_1.jsp页面&#xff0c;并在该页面中使用纯Java数据库驱动程序连接数据库test&#xff0c;并查询数据表goods中的数据。 <% page language"java" contentType"text/html;charsetUTF-8" pageEncoding"UTF-8"%> <% …