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

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,5000CU*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)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
2天前
|
存储 人工智能 数据可视化
高效率,低成本!且看阿里云AI大模型如何帮助企业提升客服质量和销售转化率
在数字化时代,企业面临海量客户对话数据处理的挑战。阿里云推出的“AI大模型助力客户对话分析”解决方案,通过先进的AI技术和智能化分析,帮助企业精准识别客户意图、发现服务质量问题,并生成详尽的分析报告和可视化数据。该方案采用按需付费模式,有效降低企业运营成本,提升客服质量和销售转化率。
高效率,低成本!且看阿里云AI大模型如何帮助企业提升客服质量和销售转化率
|
2天前
|
人工智能 并行计算 安全
从零到一,打造专属AI王国!大模型私有化部署全攻略,手把手教你搭建、优化与安全设置
【10月更文挑战第24天】本文详细介绍从零开始的大模型私有化部署流程,涵盖需求分析、环境搭建、模型准备、模型部署、性能优化和安全设置六个关键步骤,并提供相应的示例代码,确保企业能够高效、安全地将大型AI模型部署在本地或私有云上。
25 7
|
2天前
|
人工智能 安全 网络安全
揭秘!大模型私有化部署的全方位安全攻略与优化秘籍,让你的AI项目稳如磐石,数据安全无忧!
【10月更文挑战第24天】本文探讨了大模型私有化部署的安全性考量与优化策略,涵盖数据安全、防火墙配置、性能优化、容器化部署、模型更新和数据备份等方面,提供了实用的示例代码,旨在为企业提供全面的技术参考。
16 6
|
1天前
|
人工智能 Serverless API
电销行业的福音|AI大模型助力客户对话分析
本文介绍了如何利用AI大模型助力电销行业的客户对话分析,通过对象存储、智能对话分析技术和通义千问大模型,实现从客户语音和聊天互动中识别意图、发现服务质量问题,提升用户体验。方案部署简单,按量计费,帮助企业快速从海量对话数据中提取有价值的信息。
|
3天前
|
机器学习/深度学习 人工智能 供应链
AI技术在医疗领域的应用与未来展望###
本文深入探讨了人工智能(AI)技术在医疗领域的多种应用及其带来的革命性变化,从疾病诊断、治疗方案优化到患者管理等方面进行了详细阐述。通过具体案例和数据分析,展示了AI如何提高医疗服务效率、降低成本并改善患者体验。同时,文章也讨论了AI技术在医疗领域面临的挑战和未来发展趋势,为行业从业者和研究人员提供参考。 ###
|
1天前
|
人工智能 JavaScript 前端开发
利用 AI 进行代码生成:GitHub Copilot 的实践与反思
【10月更文挑战第23天】本文探讨了GitHub Copilot,一个由微软和OpenAI合作推出的AI代码生成工具,其核心功能包括智能代码补全、多语言支持、上下文感知和持续学习。文章介绍了Copilot在加速开发流程、学习新语言、提高代码质量和减少重复工作等方面的应用,并反思了AI在代码生成中的代码所有权、安全性和技能发展等问题。最后,文章提供了实施Copilot的最佳实践,强调了在使用AI工具时保持对代码的控制和理解的重要性。
|
3天前
|
机器学习/深度学习 人工智能 搜索推荐
AI在医疗健康领域的应用与前景
随着科技的不断进步,人工智能(AI)技术已经深入到我们生活的方方面面,特别是在医疗健康领域。本文将探讨AI在医疗健康领域的应用现状、面临的挑战以及未来的发展前景。
|
3天前
|
人工智能 分布式计算 数据可视化
大模型私有化部署全攻略:硬件需求、数据隐私、可解释性与维护成本挑战及解决方案详解,附示例代码助你轻松实现企业内部AI应用
【10月更文挑战第23天】随着人工智能技术的发展,企业越来越关注大模型的私有化部署。本文详细探讨了硬件资源需求、数据隐私保护、模型可解释性、模型更新和维护等方面的挑战及解决方案,并提供了示例代码,帮助企业高效、安全地实现大模型的内部部署。
9 1
|
3天前
|
人工智能 分布式计算 数据可视化
大模型私有化部署全攻略:硬件需求、数据隐私、可解释性与维护成本挑战及解决方案详解,附示例代码助你轻松实现企业内部AI应用
【10月更文挑战第23天】随着人工智能技术的发展,大模型在各领域的应用日益广泛。然而,将其私有化部署到企业内部面临诸多挑战,如硬件资源需求高、数据隐私保护、模型可解释性差、更新维护成本高等。本文探讨了这些挑战,并提出了优化硬件配置、数据加密、可视化工具、自动化更新机制等解决方案,帮助企业顺利实现大模型的私有化部署。
10 1
|
2天前
|
机器学习/深度学习 人工智能 搜索推荐
AI在医疗诊断中的应用
【10月更文挑战第23天】随着人工智能技术的不断发展,AI在医疗领域的应用也日益广泛。本文将介绍AI在医疗诊断中的一些应用,包括医学影像分析、病理诊断、基因数据分析等。通过这些应用,我们可以更好地理解AI技术在医疗诊断中的价值和潜力。

热门文章

最新文章