Big Data for AI实践:面向AI大模型开发和应用的大规模数据处理套件

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 文叙述的 Big Data for AI 最佳实践,基于阿里云人工智能平台PAI、MaxCompute自研分布式计算框架MaxFrame、Data-Juicer等产品和工具,实现了大模型数据采集、清洗、增强及合成大模型数据的全链路,解决企业级大模型开发应用场景的数据处理难题。

作者:夕陌,临在,熊兮,道辕,得水,施晨


随着人工智能技术的快速发展,大模型在各个领域的应用日益广泛。大模型能够更好地模拟人类的认知能力,大幅提升机器在复杂任务上的表现。然而,不断增长的模型参数规模使得数据集的复杂度也不断上升,数据质量更直接影响模型的准确性和可靠性。本文叙述的 Big Data for AI 最佳实践,基于阿里云人工智能平台PAI、MaxCompute自研分布式计算框架MaxFrame、Data-Juicer等产品和工具,实现了大模型数据采集、清洗、增强及合成大模型数据的全链路,解决企业级大模型开发应用场景的数据处理难题。

Data-Juicer是通义实验室和PAI共建的开源数据处理工具。它提供了丰富的数据处理算子、高效并行化的数据处理流水线,支持数据预处理、可视化、数据评估等各项能力。还为不同背景的用户提供了开箱即用的组件和丰富的数据配方。此外,Data-Juicer与MLLM和分布式计算生态系统无缝集成,以实现高效且可扩展的数据处理。

MaxFrameMaxCompute自研的分布式计算框架,为MaxCompute提供了一套完整的Python开发生态,为大规模数据分析和机器学习任务提供了极佳的灵活性。数据科学家和数据工程师可利用MaxCompute的海量计算资源对数据进行大规模处理分析、可视化探索、科学计算,以及传统ML开发等工作。

阿里云人工智能平台PAI是是面向开发者和企业的机器学习/深度学习工程平台,提供AI开发全链路服务,为用户提供低门槛、高性能的云原生AI工程化能力。PAI的数据处理工具提供了一套全方位、覆盖多领域的解决方案。充分利用深度学习集群(DLC)和MaxCompute的分布式能力和资源,结合Ray、UDF和MaxFrame等底层框架,基于DataJuicer丰富的算子,为用户提供了开箱即用的组件和丰富的数据配方,能够高效且灵活地处理复杂数据任务,使得快速上手和简化流程成为可能。

PAI大模型数据处理套件架构概览

image.png

自底向上:

  • 云资源:资源层是整个架构的基础,PAI大模型数据处理套件同时支持DLC(深度学习集群)和MaxCompute集群,为上层应用提供强大的计算和存储能力。
  • 引擎框架:
  • DLC集群:支持Ray自动化部署,可以进行大规模数据的并行处理,提升数据处理效率。
  • MaxCompute集群:利用UDF算子和MaxFrame框架,依托MaxCompute的强大计算和存储能力,满足特定业务需求。
  • 算子底座:DataJuicer提供了丰富的数据处理算子和高效的并行处理流水线,提供了全面的数据处理能力。我们以DataJuicer作为基石,进行算子改造,适配DLC和MaxCompute的分布式能力,进一步加速处理效率。
  • 产品:PAI-Designer 提供了用户友好的工具和界面,用户可以自定义工作流对数据安全、数据脱敏、数据增强等组件进行任意编排。我们同时与百炼合作,这些组件也作为百炼数据处理的底层工具为用户提供数据处理服务。
  • 解决方案:利用PAI的产品工具集,提供涵盖多个应用场景的解决方案,如文生图/视频、图片/视频理解、CT、SFT和RAG等。旨在简化整个数据处理流程。帮助用户快速上手。每个解决方案都是为特定领域的应用需求而设计的,用户可以根据自身需求选择适合的解决方案,满足多样化的业务需求。


Data-Juicer

image.png

Data-Juicer 是一个由通义实验室主导,PAI深度参与共建的一站式开源数据处理系统,旨在为多模态大语言模型(MLLMs)提供更高质量、更丰富、更易“消化”的数据,提供超过 100 个内置多功能算子和可插拔工具。通过模块化协同、灵活组合和弹性扩展,Data-Juicer 可以应对 MLLM 数据处理的异质需求,包括但不限于分析、清洗、合成和混合。Data-Juicer 为各种背景的用户优化了可用性,包括提供开箱即用的底层组件,支持数据菜谱可配置,以及为 MLLM 预训练和后调优预置丰富的、效果证明过的数据菜谱。经过了多方面的系统性能优化, Data-Juicer 与 MLLM 和分布式计算的大量生态基建无缝集成,以支持高效且可规模化扩展的大模型数据处理。

image.png

此外, Data-Juicer 提供了一个定制化的中间层套件,“沙盒实验室”,来支持便捷的多模态大模型 “数据-模型协同开发”。它提供了灵活的实验平台,在 Data-Juicer 已有的数据处理能力之上,沙盒实验室持续集成多模态大模型的先进开源基建,提供数据和模型多维度的反馈循环。通过该套件,研发人员能在端到端工作流、典型开发行为、底层开发能力之间便捷组合,快速迭代小规模洞察,提高数据处理和模型开发的可衡量性和科学实践性,以便在更大规模场景下“有的放矢”。通过该实验室沉淀的数据开发工作流和实践洞察,也将持续集成到PAI中,帮助提升用户体验。

相关参考


MaxCompute - MaxFrame


MaxFrame是有阿里云计算平台事业部MaxCompute团队研发的大数据处理框架,支持用户直接引用NumPy、SciPy、Matplotlib等三方库进行科学计算、数据分析、可视化等操作,并提供了兼容Pandas接口的分布式数据处理算子。使用MaxFrame框架编写的作业可直连存储在MaxCompute中的数据,利用MaxCompute的海量弹性计算资源对数据进行大规模分布式处理。传统基于Pandas编写的数据处理脚本经过一定的适配改写即可使用MaxFrame框架在MaxCompute中分布式运行,大幅提高了数据处理的规模及计算效率。 image.png

MaxFrame 特点优势:

  • 更熟悉的开发习惯MaxFrame提供Python编程接口,兼容Pandas算子,且算子提交至MaxCompute自动分布式执行,不再受本地资源大小限制。
  • 更高效的数据处理能力MaxFrame直接在MaxCompute集群中进行数据分布式计算,运行时无需将数据拉取至本地处理,消除了不必要的本地数据传输,提高作业执行效率。
  • 更便捷的开发体验MaxFrame已与MaxCompute Notebook、DataWorks集成,提供开箱即用的交互式开发环境及离线调度能力;MaxFrame支持在代码开发中直接引用MaxCompute内置镜像(Pandas、Numpy、XGBoost等)及用户自定义镜像,且支持Python3.7和Python3.11版本,无需考虑复杂的环境准备以及兼容问题。MaxFrame在24年7月开始了公共云公测,目前已经有掌阅、通义、饿了么等内外部客户的作业使用MaxFrame大幅提升了数据处理的开发效率和体验。MaxFrame官网文档



PAI大模型数据处理套件

我们已将DataJuicer丰富的数据处理算子和MaxCompute的强大数据处理能力进行结合,封装成PAI-Designer产品中的算子,以简单易用的产品形态提供给广大大模型开发人员。大模型数据处理文档

算子列表:

image.png

在DataJuicer的基础功能之上,我们做了如下适配和优化:

1. 支持MaxCompute-MaxFrame

我们将DataJuicer的算子封装成UDF函数,重新开发了一套UDF算子,并使用SQL脚本运行。可以充分利用MaxCompute海量数据存储和强大的弹性计算能力。同时,我们陆续将目前UDF+SQL的方式切换到MaxFrame框架,在保证性能的同时,MaxFrame友好的Python开发生态可以为开发者提供更好的白盒化支持。

2. 支持PAI-DLC&RAY的分布式处理

  • 支持Ray自动化部署

用户启动多节点作业时,自动启动Ray集群,并监听多节点的状态,防止集群意外退出。

  • Ray的性能优化

我们和DataJuicer团队也在持续优化Ray的性能,会根据算子本身的特性适配Task或Actor模式。在不同的使用方式上做了大量的性能测试。目前会适配batch模式并自适应分配并行度,以最大程度利用Ray的优势。

  • 支持数据自动切分

除了支持Ray的分布式处理,我们还支持了将数据均匀切分到多个节点独立处理的功能。一方面可以减少节点间的通信时间,另一方面是因为我们发现当节点的内存占用达到某个临界点时,Ray的性能会打折扣。

3. 算子迭代和创新

为了提升数据处理算子的性能与准确性,我们依据终端用户在日常操作中的反馈,对几个算法模块进行了优化和扩展。

  • 敏感词过滤算子

在原有的DataJuicer算子中,采用语种对应的分词模型对文本进行分词处理,并对切分后的结果进行遍历。这一方式在处理含有混合语言文本的情况时会出现识别精度下降的问题。为了解决这一点,我们改进了策略,取消了分词步骤,改用贪心算法对文本进行遍历,在一定程度提升了敏感词识别的准确率。此外,我们还对敏感词库进行了补充和扩展,解决了原有库存量不足的问题,同时确保了性能与先前版本相当。

  • 质量打分算子(DLC)

使用DataJuicer训练出的pyspark模型,质量打分算子(DLC)能够充分利用pyspark的分布式计算能力,实现了多节点协同处理。鉴于pyspark算子对MaxCompute的适配存在一定难度,MaxCompute的质量打分算子是另一套模型,支持了batch推理。后续我们计划推出DataJuicer非pyspark模型来取代当前的MaxCompute质量打分算子。

  • 敏感信息打码

对文本数据中的敏感信息进行打码,例如电话号码、邮箱地址、身份证号等。

  • 毒性过滤算子

与绿网协作,构建了一套精准识别网络中毒性言论的机制。这个算子能够检测与过滤出侮辱性、歧视性、煽动性等不当言论,并能进行自我学习来适应新的表达形式,大幅提高网络环境的健康性,以保障网上环境的健康和用户体验。

  • 数据增强算子

数据增强算子可以生成更多样化且具有挑战性的训练样本。我们通过指令扩充来增加命令和请求的多样性,同时采用指令优化策略提升现有数据集的质量。高质量的指令集对于训练出能够理解语言多样性与复杂性的模型至关重要。我们自己训练了指令优化和指令扩充模型,以提高自然语言处理的广泛性和准确性。

指令优化模型:alibaba-pai/Qwen2-7B-Instruct-Refine、alibaba-pai/Qwen2-1.5B-Instruct-Refine指令扩充模型:alibaba-pai/Qwen2-7B-Instruct-Exp、alibaba-pai/Qwen2-1.5B-Instruct-Exp

  • QA提取算子(RAG应用)

在文档理解和问答领域中,高效从大量文本中提取和生成准确的问答对至关重要。我们新引入的RAG算子专门为这一需求而设计,为了更好地应对问答(QA)场景,我们自行采集数据,训练了模型。


HuggingFace 模型列表:

alibaba-pai/pai-llama3-8b-doc2qa、

alibaba-pai/pai-baichuan2-7b-doc2qa、

alibaba-pai/pai-qwen1_5-4b-doc2qa、

alibaba-pai/pai-qwen1_5-7b-doc2qa、

alibaba-pai/pai-qwen1_5-1b8-doc2qa、

alibaba-pai/pai-qwen1_5-0b5-doc2qa

4. 数据转换组件

在处理需要大量CPU计算资源的任务方面,MaxCompute算子有较大优势。然而,对于图像、音频、视频的数据存储和处理,及一些依赖于GPU加速的算子,MaxCompute则无法提供相应支持。鉴于此,这部分算子我们优先支持DLC资源,数据存储支持OSS(对象存储服务)。

另外,对于DLC算子我们测试pyodps sdk直接读取MaxCompute表中的数据时,性能较慢,无法达到预期,所以DLC组件暂不支持直读表数据。这一限制使得在实际的数据处理中可能会出现两种算子的混合使用情况。

为了支持算子混用,提升数据传输效率,我们开发了数据转换组件。该组件支持OSS与MaxCompute表之间的数据转换,且在处理千万量级的数据时能实现秒级的转换速度。可以大幅提升数据处理的灵活性和效率。

5. 对接QuickStart

我们将PAI快速开始(QuickStart)的部分LLM模型迁移到PAI-Designer。支持数据处理+LLM模型训练+LLM模型推理端到端的工作流链路,在Designer中实现闭环。

训练和推理同时支持DLC和MaxCompute两套处理算子。

image.png

6. 算子的串联

image.png

当前,PAI-Designer各组件操作均相互独立。每个组件完成处理任务后,会将结果持久化保存至OSS或表中。这一处理流程不可避免地伴随着一些额外时间消耗,包括机器调度、容器的重新初始化及数据保存所需时间。为了解决这一问题,我们正计划支持组件之间的无缝串联,无需进行数据落盘操作,每个数据处理算子的输出结果将直接在内存中保留,直至所有算子均顺利执行完毕后再进行一次性落盘。这能够显著降低因机器调度、容器启动、以及反复执行数据落盘操作而产生的时间开销,从而提高整个处理流程的效率和性能。

7. 处理模板

为了帮助用户快速上手,我们基于数据处理组件列表,预置了多个领域的数据处理模板,包括LLM相关的SFT数据处理模板、CT数据处理模板 ,LVM相关的文图处理模板和文视频处理模板。还有端到端的数据处理+训练+推理模板,用户可以一键导入运行。

预置工作流模板请参考

LLM大语言模型数据处理 - github code:https://x.sm.cn/CeRyxBb

LLM大语言模型端到端链路:数据处理+模型训练+模型推理:https://x.sm.cn/DQvtmqg

LLM大语言模型数据处理-Alpaca-Cot(sft数据):https://x.sm.cn/1NLyuIy

视频数据过滤打标:https://x.sm.cn/5JbO0bK

image.png

image.png

image.png image.png


8. 数据增强模型的单独部署

数据增强技术能够生成更具多样性和挑战性的训练样本。我们通过扩展指令集的方式增加命令和请求的多样性,并采用指令优化策略来提升现有数据集的质量。高质量的指令集对于训练能够理解复杂语言多样性的模型是至关重要的。为此,我们开发了自有的指令优化和指令扩充模型如下:alibaba-pai/Qwen2-7B-Instruct-Refine、alibaba-pai/Qwen2-1.5B-Instruct-Refine、alibaba-pai/Qwen2-7B-Instruct-Exp、alibaba-pai/Qwen2-1.5B-Instruct-Exp。

除了在数据处理的产品中作为算子串接使用,在其他应用场景(例如线上应用的自动指令改写),许多企业和开发者也有单独部署上述模型的需求。我们在QuickStart中上架了这四个自研模型的model card,并且支持用户以零代码方式单独部署这些模型至PAI-EAS。模型的model card示例如下所示:

image.png image.png


典型案例

百炼


阿里云百炼是基于通义大模型、行业大模型以及三方大模型的一站式大模型开发平台。面向企业客户和个人开发者,提供完整的模型服务工具和全链路应用开发套件,预置丰富的能力插件,提供API及SDK等便捷的集成方式,高效完成大模型应用构建。

PAI的数据处理算子能力已接入百炼的数据处理模块中,我们为百炼支持了算子串联的不落盘功能,降低了数据处理时延,并优化了整个数据处理链路的性能。

在算子层面与数据层面,我们支持了容错。在单个数据处理算子出现问题的情况下,整个数据处理流也能够稳定运行,不会影响到后续算子的处理过程。数据层面的容错则保证了输入到系统中的数据,即使部分有损坏或格式错误,也能够被识别和自动修正或隔离,确保数据处理流程的鲁棒性。共同保障了数据处理的稳定性。

image.png

饿了么


本地生活集团-饿了么团队,已在阿里云PAI-Designer平台上构建了一套全面且精细的大型语言模型(LLM)数据处理流程,已成功实现部分关键业务的迁移与优化。为驱动其自主研发的E-GPT系列模型,该团队精心筛选并处理了源自20个不同源头的数据集,总数据量2TB,最终提炼出1T token的优质数据,专用于饿了么垂直领域的基座模型训练。团队每约一个月便进行一次数据迭代,以此不断更新与优化其基模型,确保模型的时效性和竞争力,至今已在PAI-Designer上稳定运行超过三个月

饿了么团队基于 Qwen-Base 模型进行继续预训练。他们使用了开源网页和域内自建两部分数据。从互联网收集高质量中、英、代码、数学等语料,涵盖网络数据、图书、论文、百科、知识学科题目和社交媒体等通用知识语料,同时本地构造清洗大量垂类语料。对原始数据进行精细的预处理工作,包括质量评估、冗余去除、隐私消除等步骤。

借助PAI-Designer平台提供的工具链,饿了么团队得以快速稳定的构建一套高度定制化的Post-Training流程,这一系列复杂的数据处理流程被简化,显著提升了研发效率,确保了模型迭代的顺利进行与稳定发布,为饿了么的业务创新与技术升级注入了强劲动力。

饿了么工作流: image.png


未来工作

PAI将继续与Data-Juicer、MaxCompute紧密合作,持续推动大模型数据处理易用性、产品丰富度、性能的提升。

短期规划:

  • 组件扩充:不断丰富和优化处理算子,扩展MLLM、MLVM等领域的处理功能。
  • 用户体验改进:根据客户反馈,优化组件易用性,减少用户的学习成本。
  • 数据可视化工具:开发用户友好的数据处理可视化工具,增强数据流程的透明度。
  • 组件白盒化:我们计划支持组件的白盒化,将代码全部开放给用户,用户可以基于自己业务领域的特性对代码进行修改。修改后的组件代码也可以和其他组件正常串联运行。不影响已有的功能。
  • 领域垂直解决方案:根据不同行业的数据特性,开发和推出更多的领域特定的预置工作流模板和算子,针对性解决各个垂直行业的数据挑战。
  • 性能优化:继续深化对现有数据处理框架进行性能调优,旨在降低延迟,提高数据处理速度和吞吐量。


相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
54 10
|
6天前
|
机器学习/深度学习 人工智能 算法
探索AI在医疗诊断中的应用与挑战
【10月更文挑战第21天】 本文深入探讨了人工智能(AI)技术在医疗诊断领域的应用现状与面临的挑战,旨在为读者提供一个全面的视角,了解AI如何改变传统医疗模式,以及这一变革过程中所伴随的技术、伦理和法律问题。通过分析AI技术的优势和局限性,本文旨在促进对AI在医疗领域应用的更深层次理解和讨论。
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
AI在自然语言处理中的突破:从理论到应用
AI在自然语言处理中的突破:从理论到应用
36 17
|
2天前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
32 12
|
2天前
|
弹性计算 人工智能 数据管理
AI场景下的对象存储OSS数据管理实践
本文介绍了ECS和OSS的操作流程,分为两大部分。第一部分详细讲解了ECS的登录、密码重置、安全组设置及OSSUTIL工具的安装与配置,通过实验创建并管理存储桶,上传下载文件,确保资源及时释放。第二部分则聚焦于OSSFS工具的应用,演示如何将对象存储挂载为磁盘,进行大文件加载与模型训练,强调环境搭建(如Conda环境)及依赖安装步骤,确保实验结束后正确清理AccessKey和相关资源。整个过程注重操作细节与安全性,帮助用户高效利用云资源完成实验任务。
36 10
|
2天前
|
存储 人工智能 开发工具
AI场景下的对象存储OSS数据管理实践
本文介绍了对象存储(OSS)在AI业务中的应用与实践。内容涵盖四个方面:1) 对象存储作为AI数据基石,因其低成本和高弹性成为云上数据存储首选;2) AI场景下的对象存储实践方案,包括数据获取、预处理、训练及推理阶段的具体使用方法;3) 国内主要区域的默认吞吐量提升至100Gbps,优化了大数据量下的带宽需求;4) 常用工具介绍,如OSSutil、ossfs、Python SDK等,帮助用户高效管理数据。重点讲解了OSS在AI训练和推理中的性能优化措施,以及不同工具的特点和应用场景。
28 10
|
5天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
1天前
|
JSON 分布式计算 数据处理
加速数据处理与AI开发的利器:阿里云MaxFrame实验评测
随着数据量的爆炸式增长,传统数据分析方法逐渐显现出局限性。Python作为数据科学领域的主流语言,因其简洁易用和丰富的库支持备受青睐。阿里云推出的MaxFrame是一个专为Python开发者设计的分布式计算框架,旨在充分利用MaxCompute的强大能力,提供高效、灵活且易于使用的工具,应对大规模数据处理需求。MaxFrame不仅继承了Pandas等流行数据处理库的友好接口,还通过集成先进的分布式计算技术,显著提升了数据处理的速度和效率。
|
1天前
|
人工智能 自然语言处理 算法
主动式智能导购 AI 助手解决方案实践与测评
主动式智能导购 AI 助手解决方案实践与测评
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
转载:【AI系统】AI的领域、场景与行业应用
本文概述了AI的历史、现状及发展趋势,探讨了AI在计算机视觉、自然语言处理、语音识别等领域的应用,以及在金融、医疗、教育、互联网等行业中的实践案例。随着技术进步,AI模型正从单一走向多样化,从小规模到大规模分布式训练,企业级AI系统设计面临更多挑战,同时也带来了新的研究与工程实践机遇。文中强调了AI基础设施的重要性,并鼓励读者深入了解AI系统的设计原则与研究方法,共同推动AI技术的发展。
转载:【AI系统】AI的领域、场景与行业应用
下一篇
DataWorks