多功能数据处理工具包 优化AI模型开发流程
FlagData是一款综合性数据处理工具包,专为自然语言处理和计算机视觉等AI领域设计。该工具集成数据获取、准备、预处理和分析功能,支持高质量内容提取、大模型数据微调和分布式处理。最新的3.0.0版本扩展了数据类型支持,并提供丰富的自定义操作选项,简化了高质量数据生成流程。FlagData旨在为AI模型开发全周期提供高效的数据处理支持。
数据是人工智能发展的基本要素之一。随着大规模预训练模型和相关技术的不断突破,在相应研究中使用高效的数据处理工具来提高数据质量变得越来越重要。因此,我们推出了FlagData,这是一个易用且易于扩展的数据处理工具包。FlagData集成了包括数据获取、数据准备、数据预处理和数据分析在内的多种数据处理工具和算法,为自然语言处理、计算机视觉等领域的模型训练和部署提供了强有力的数据层面支持。
FlagData支持以下功能:
实现各种原始格式数据的高质量内容提取,大大降低处理成本。
为大型模型提供数据微调视角的功能。
一站式高效分布式数据处理功能。
完整的流程和功能如下图所示:
根据社区反馈,FlagData已进行升级。此次更新提供了一套傻瓜式语言预训练数据构建工具。根据不同的数据类型,我们提供了Html、Text、Book、Arxiv、Qa等一键式数据质量提升任务。无论是新手用户还是高级用户都可以轻松生成高质量数据。
项目特点 :
主要亮点
pip install -r requirements.txt
安装主分支的最新版本
主分支是FlagData官方发布的版本。如果你想安装/更新到主分支的最新版本,使用以下命令:
git clone https://github.com/FlagOpen/FlagData.git
利用LLM接口,通过三种不同的策略构建一系列 针对不同能力的单轮SFT数据。策略包括:
参见数据增强模块使用说明获取示例。
在all2txt模块下,可以将pdf2txt和epub2txt等非结构化/半结构化文件转换为txt,并能很好地解决单栏、双栏、中文文本与图表交错等导致的文本内容不连贯问题。
同时,解析后的元素类型有"Table"、"FigureCaption"、"NarrativeText"、"ListItem"、"Title [Chapter Title]"、"Address [E-mail]"、"PageBreak"、"Header [Header]"、"Footer [Footer]"、"UncategorizedText [arxiv vertical number]"、"Image、Formula等。工具脚本提供了保留全文和按类别解析保存两种形式。
参见all2txt模块使用说明获取示例。
在language_identification模块下,使用fastText的语言分类器进行分类。fastText的语言分类器基于维基百科、Tatoeba和SETimes进行训练。 上述训练使用n-gram作为特征,并使用分层softmax。支持176种语言分类,最终输出0到1之间的分数。
有关示例,请参阅语言识别模块使用说明。
我们提供Html、Text、Book、Arxiv、Qa等一键式数据质量提升任务。对于更多自定义功能,用户可以参考"data_operator"部分。
TextCleaner提供快速且可扩展的文本数据清洗工具。它提供常用的文本清洗模块。 用户只需在cleaner_builder.py中选择text_clean.yaml文件即可处理文本数据。 详情请参阅TextCleaner使用说明
ArxivCleaner提供常用的arxiv文本数据清洗工具。 用户只需在cleaner_builder.py中选择arxiv_clean.yaml文件即可处理arxiv数据。
HtmlCleaner提供常用的Html格式文本提取和数据清洗工具。 用户只需运行main方法即可处理arxiv数据。
QaCleaner提供常用的Qa格式文本提取和数据清洗工具。 用户只需运行main方法即可处理Qa数据。 详情请参阅Qa使用说明
BookCleaner提供常用的书籍格式文本提取和数据清洗工具。 用户只需运行main方法即可处理书籍数据。 详情请参阅Book使用说明
选择BERT和fasttext作为评估模型是因为它们具有以下优势:
本文比较了不同的文本分类模型,包括逻辑回归、BERT和FastText,以评估它 们的性能。在实验中,BERTEval和FastText模型在文本分类任务中表现良好,FastText模型在准确率和召回率方面表现最佳。[实验结果来自ChineseWebText]
有关示例,请参阅质量评估模块使用说明。
去重模块提供了大量文本数据去重的能力,使用MinHashLSH(局部敏感哈希的最小哈希)将文本转换为一系列哈希值,以比较文本之间的相似度。
我们可以控制参数threshold,它表示相似度阈值,取值范围为0到1。设置为1意味着完全匹配,不会过滤掉任何文本。相反,如果设置较低的相似度值,相似度稍高的文本也会被保留。我们可以根据需要设置较高的阈值,只保留非常相似的文本,同时丢弃相似度稍低的文本。经验默认值为0.87。同时,我们利用Spark的分布式计算能力处理大规模数据,采用MapReduce思想进行去重,并通过spark调优高效处理大规模文本数据集。
以下是数据去重过程中迭代的相似文本,在换行和名称编辑上有细微差异,但去重算法能够识别出两段高度相似的文本。
{ "__id__": 3023656977259, "content": "\"2022海口三角梅花展\"已接待游客3万多名——\n三角梅富了边洋村\n一年四季,美丽的海南岛始终春意盎然、鲜花盛开,而作为海南省省花的三角梅就是其中最引人注目的鲜花品种之一,成为海南的一道亮丽风景线。\n\"可别小看这一盆盆普通的三角梅花,特别受游客喜爱。仅最近一个多月,我们就卖出了200多万元,盆栽三角梅销路火爆......吸引更多本地和外地游客来赏花、买花。(经济日报 记者 潘世鹏)\n(责任编辑:单晓冰)" } { "__id__": 3934190045072, "content": "记者 潘世鹏\n\"2022海口三角梅花展\"已接待游客3万多名——\n三角梅富了边洋村\n一年四季,美丽的海南岛始终春意盎然、鲜花盛开,而作为海南省省花的三角梅就是其中最引人注目的鲜花品种之一,成为海南的一道亮丽风景线。\n\"可别小看这一盆盆普通的三角梅花,特别受游客喜爱。仅最近一个多月,我们就卖出了200多万元,盆栽三角梅销路火爆。......吸引更多本地和外地游客来赏花、买花。(经济日报 记者 潘世鹏)" }
spark单项能力集成: 大多数情况下,我们希望使用Spark的分布式数据处理能力。这里有一种方法可以将普通函数转换为Spark UDF函数,然后利用Spark的功能。
但对于想要转换为Spark任务的函数,需要满足以下条件:
使用UDF时,应考虑性能和优化。某些函数在本地Python环境中可能运行良好,但在分布式Spark环境中可能效率不高。 对于复杂的逻辑或需要大量内存的函数,可能需要进一步优化和考虑。UDF设计用于简单的逻辑和数据处理,对于更复杂的计算,可能需要使用Spark的原生算子进行处理。
去重模块提供了一个通用的Python函数(用于判断是否为其他字符串的子串)来使用Spark UDF重写,这使得使用Spark分布式功能变得容易。有关更多信息,请参见stringMatching.py
和stringMatching.py
。
如果用户简单地将Python函数更改为Spark任务,在没有Spark集群的情况下将无法工作。这里详细编写了构建集群的详细文档,方便新手用户使用。
有关示例,请参见Spark集群构建。
分析数据分析模块提供以下功能:
文本的平均回合分析代码,并计算平均回合数(以换行符为例)
文本的领域分布
文本的语言分布
文本的长度分析
有关示例,请参见分析模块使用说明。
对于数据清洗
和数据质量评估
模块,
我们提供了配置文件模板:text_clean.yaml、arxiv_clean.yaml,bert_config.yaml。
配置文件采用可读的YAML格式,提供了详细的注释。在使用这些模块之前,请确保已在配置文件中修改了参数。
以下是一些你需要注意的重要参数:
# 待清洗的原始数据 input: ./demo/demo_input.jsonl # 清洗后数据的保存路径 output: ./demo/output.jsonl # 待处理的字段 source_key: text # 输出文件中用于保存的键 result_key: cleanedContent # 需要选择的Pipline类 cleaner_class: ArxivCleaner
# 数据评估模型可以从[ChineseWebText下载](https://github.com/CASIA-LM/ChineseWebText)获取 pretrained_model_path: "models/bert-base-chinese" checkpoint: "models/pretrain/2023-08-16-21-36/model-epoch_19-step_2999.pt" # text_key字段是被评估的字段 text_key: "raw_content"
我们提供了 一些基本的算子用于数据清洗、过滤、格式转换等,以帮助用户构建自己的数据构建流程。
提供的算子分为三类:Formatter、Pruner和Filter。Formatter用于处理结构化数据,可用于不同格式数据的相互转换;Pruner用于清洗文本数据;Filter用于样本过滤。 下图展示了这些算子在不同处理位置以及部分算子列表
<img src="https://yellow-cdn.veclightyear.com/835a84d5/223bb594-8ccd-40d6-9aa2-e52780404d7a.png" width="50%" height="auto"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/2d9befce-8121-4dc8-9359-ed83530e58b3.png" width="50%" height="auto">详细说明请参见数据算子使用说明
如果您对本项目的使用和代码有任何疑问,可以提交issue。您也可以直接通过邮箱data@baai.ac.cn与我们联系;
一个活跃的社区离不开您的贡献。如果您有新的想法,欢迎加入我们的社区,让我们成为开源的一部分,共同为开源做贡献!!! <img src="https://yellow-cdn.veclightyear.com/835a84d5/e77006cd-8b33-4314-97c0-8e97b2e6fd21.png" width="50%" height="auto">
或关注FlagOpen开源体系,FlagOpen官网 https://flagopen.baai.ac.cn/
本项目部分参考了以下代码: GeneralNewsExtractor, text-data-distillation, emoji, transformers, ChineseWebText, lid, unstructured, minHash。
FlagData项目基于Apache 2.0许可证。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号