产品测评 | 上手分布式Python计算服务MaxFrame产品最佳实践

简介: MaxFrame是阿里云自研的分布式计算框架,专为大数据处理设计,提供高效便捷的Python开发体验。其主要功能包括Python编程接口、直接利用MaxCompute资源、与MaxCompute Notebook集成及镜像管理功能。本文基于MaxFrame最佳实践,详细介绍了在DataWorks中使用MaxFrame创建数据源、PyODPS节点和MaxFrame会话的过程,并展示了如何通过MaxFrame实现分布式Pandas处理和大语言模型数据处理。测评反馈指出,虽然MaxFrame具备强大的数据处理能力,但在文档细节和新手友好性方面仍有改进空间。

随着大数据技术的不断发展,分布式计算框架在数据处理和分析领域扮演着越来越重要的角色。阿里云自研的MaxCompute MaxFrame(简称“MaxFrame”)作为一种专为大数据处理设计的分布式计算框架,旨在提供高效、便捷的Python开发体验。本评测基于MaxFrame最佳实践来进行体验。

一、产品功能特性

  1. Python编程接口:MaxFrame支持Python编程接口,使得开发者可以使用熟悉的Python语言进行大数据处理和分析,降低了学习成本,提高了开发效率。
  2. 直接利用MaxCompute资源:MaxFrame能够直接使用MaxCompute的计算资源和数据接口,无需额外配置或迁移数据,简化了数据处理流程。
  3. 与MaxCompute Notebook集成:与MaxCompute Notebook的无缝集成,为开发者提供了一个交互式开发环境,支持代码编写、调试和结果可视化,进一步提升了开发体验。
  4. 镜像管理功能:MaxFrame提供镜像管理功能,允许开发者自定义开发环境,包括安装所需的Python库和依赖项,增强了开发环境的灵活性和可定制性。

二、在DataWorks中使用MaxFrame

1、创建MaxCompute数据源

登录MaxCompute控制台,在左上角选择地域。在左侧导航栏选择工作区 > 项目管理,并单击新建项目。

image.png

image.png

登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心。
image.png

进入工作空间管理中心页面后,单击左侧导航栏的数据源 > 数据源列表,进入数据源页面。

image.png

单击新增数据源,选择MaxCompute,根据界面指引创建数据源。
image.png

2、进入DataWorks的数据开发页面创建PyODPS 3节点。

image.png

3、创建MaxFrame会话。

image.png

在目标MaxCompute项目中运行如下SQL,查询test_prefix_source_table表的数据

SELECT * FROM test_prefix_source_table;

返回结果:
image.png

三、基于MaxFrame实现分布式Pandas处理

1、在安装了MaxFrame的Python环境下运行如下脚本,准备测试表和测试数据。

image.png

连接到上海的节点有超时。
image.png

2、把endpoint换成VPC节点,很快就成功了。

https://service.cn-shanghai-vpc.maxcompute.aliyun-inc.com/api

image.png

3、查询sales_maxframe_demo表和product_maxframe_demo表的数据
image.png

image.png

场景1:使用merge方法连接两张数据表,以获取sales_maxframe_demo表中所有sale_id对应的product_name以及该产品的所有year和price

image.png

在sales表数据量为5000W条(size:1.96 GB),product表数据量为10W条(size:3 MB)的数据样本中进行运算MaxFrame的haish耗时为48.539秒。

场景2:选出每个出售过的产品第一年销售的产品ID、年份、数量和价格

第一次运行失败
image.png

试了好几次不知道为什么一直报错
image.png

换个endpoint节点。还是超时
image.png

image.png

场景3:为每个用户获取其消费最多的产品ID

也是运行失败
image.png

四、基于MaxFrame实现大语言模型数据处理

对原始数据进行分析,若其中含有“Copyright”等版权信息,需要对该类敏感信息进行去除。

例如:repo_name值为“menuka94/cdnjs”时,对应的content字段中含有“Copyright”等版权信息。
image.png

1、创建MaxCompute入口类。
image.png

2、引用MaxCompute内置镜像common,其中包含Python环境及本次数据处理所需的regex等第三方包。

config.options.sql.settings = {
    "odps.session.image": "common"
}

报错如下:

image.png

修改为如下之后,正常运行成功。

from maxframe import config
# 在new_session之前添加
config.options.sql.settings = {
    "odps.session.image": "common",
}

image.png

3、通过UDF构建数据处理逻辑。

image.png

4、创建MaxFrame Session,提交作业至MaxCompute。

def maxframe_job():
    s_time = time.time()
    table_name = 'bigdata_public_dataset.data_science.llm_redpajama_github_demo_data'

    session = new_session(o)
    print('session id: ', session.session_id)

    df = md.read_odps_table(table_name, index_col='id')
    df = df.apply(
                clean_copyright,
                axis=1,  # row
                output_type="dataframe",
            )

    out_table = 'tmp_mf_clean_copyright'
    md.to_odps_table(df, out_table).execute()
    session.destroy()

maxframe_job()

需要连着上面3个步骤一起执行。
image.png

5、查询tmp_mf_clean_copyright表,对之前含有“Copyright”等版权信息的数据进行查看,已去除敏感信息。

SELECT * FROM tmp_mf_clean_copyright;

返回有报错:

image.png

修改语句如下:

SELECT * FROM tmp_mf_clean_copyright limit 100;

返回结果如下:
image.png

MaxCompute已与阿里云人工智能平台PAI成功对接,您可基于PAI Desinger进行更多LLM算子的开发和使用。

五、测评反馈

本次测评是针对官方提供的MaxFrame产品最佳实践文档来进行实践体验。下面是体验后的一些反馈。

1、首先对MaxFrame产品使用,是需要掌握前置知识的,比如MaxCompute的使用,Python的知识等,若是新手直接来使用该产品可能比较困难,希望可以在MaxFrame产品的文档中多加些Datawork和MaxCompute的操作步骤。

2、MaxCompute官方文档提供的提供内容过于简单,有些超链接是无效的。这个链接一直跳回到这个界面,但这里没有具体的操作步骤,和相关截图,提供不了太多的帮助。

image.png

3、在基于MaxFrame实现分布式Pandas处理的实践中。

文档这里建议的endpoint类型一直都是超时,选择VPC类型才能正常执行。
image.png

image.png

使用MaxFrame进行数据分析的场景2和场景3执行总是报错。里面只需要修改Access Key ID、Access Key Secret、project、endpoint这四个参数,始终无法运行成功,不知道是哪里的问题。
image.png

环境中没有本地Pandas(版本为1.3.5),所以也无法实现结果对比。

4、在基于MaxFrame实现大语言模型数据处理的实践中。

文档描述的这4个步骤是做代码的分部说明,但需要整体来执行。我按照每一步来执行,导致执行的时候会有依赖报错。后来才明白要一起执行,这个还是建议在文档中说明一下,否则也有会有人和我犯一样的错误。
image.png

数据查询这个SQL语句,是需要在maxcompute中执行,这个也要说明下。同时SELECT * FROM tmp_mf_clean_copyright; 需要加限制,否则行太多报错。建议把这个语句优化下。
image.png

MaxFrame在工作和学习中的一些优势

1、MaxFrame结合MaxCompute的强大算力,在工作中可以快速完成数据清洗、特征构建(如用户画像特征、时间序列特征)、数据分片与批量处理,支持下游模型训练。

2、MaxFrame通过纯Python编程接口,无需掌握复杂的分布式计算模型,降低了学习门槛。

3、MaxFrame能够为AI模型训练提供强大的数据支持。应用于如下业务场景,快速处理超大规模的训练数据集,为深度学习模型提供优质数据输入;动态资源扩展,减少模型训练前数据准备的时间,使学习者能够更多地聚焦于模型算法本身。
image.png

相关文章
|
7天前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
随着云计算和DevOps的兴起,容器技术和自动化在软件开发中扮演着愈发重要的角色,但也带来了新的安全挑战。阿里云针对这些挑战,组织了一场关于云上安全的深度访谈,邀请了内部专家穆寰、匡大虎和黄竹刚,深入探讨了容器安全与软件供应链安全的关系,分析了当前的安全隐患及应对策略,并介绍了阿里云提供的安全解决方案,包括容器镜像服务ACR、容器服务ACK、网格服务ASM等,旨在帮助企业构建涵盖整个软件开发生命周期的安全防护体系。通过加强基础设施安全性、技术创新以及倡导协同安全理念,阿里云致力于与客户共同建设更加安全可靠的软件供应链环境。
150228 10
|
4天前
|
供应链 监控 安全
|
15天前
|
弹性计算 人工智能 安全
对话 | ECS如何构筑企业上云的第一道安全防线
随着中小企业加速上云,数据泄露、网络攻击等安全威胁日益严重。阿里云推出深度访谈栏目,汇聚产品技术专家,探讨云上安全问题及应对策略。首期节目聚焦ECS安全性,提出三道防线:数据安全、网络安全和身份认证与权限管理,确保用户在云端的数据主权和业务稳定。此外,阿里云还推出了“ECS 99套餐”,以高性价比提供全面的安全保障,帮助中小企业安全上云。
201928 14
对话 | ECS如何构筑企业上云的第一道安全防线
|
6天前
|
SQL 安全 前端开发
预编译为什么能防止SQL注入?
SQL注入是Web应用中常见的安全威胁,攻击者通过构造恶意输入执行未授权的SQL命令。预编译语句(Prepared Statements)是一种有效防御手段,它将SQL代码与数据分离,确保用户输入不会被解释为SQL代码的一部分。本文详细介绍了SQL注入的危害、预编译语句的工作机制,并结合实际案例和多语言代码示例,展示了如何使用预编译语句防止SQL注入,强调了其在提升安全性和性能方面的重要性。
|
10天前
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
422 34
Qwen2.5-7B-Instruct Lora 微调
|
1月前
|
人工智能 自然语言处理 前端开发
从0开始打造一款APP:前端+搭建本机服务,定制暖冬卫衣先到先得
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
9956 29
|
3天前
|
人工智能 算法 搜索推荐
阿里云百炼xWaytoAGI共学课开课:手把手学AI,大咖带你从零搭建AI应用
阿里云百炼xWaytoAGI共学课开课啦。大咖带你从零搭建AI应用,玩转阿里云百炼大模型平台。3天课程,涵盖企业级文本知识库案例、多模态交互应用实操等,适合有开发经验的企业或独立开发者。直播时间:2025年1月7日-9日 20:00,地点:阿里云/WaytoAGI微信视频号。参与课程可赢取定制保温杯、雨伞及磁吸充电宝等奖品。欢迎加入钉钉共学群(群号:101765012406),与百万开发者共学、共享、共实践!
|
3天前
|
SQL 存储 Apache
基于 Flink 进行增量批计算的探索与实践
本文整理自阿里云高级技术专家、Apache Flink PMC朱翥老师在Flink Forward Asia 2024的分享,内容分为三部分:背景介绍、工作介绍和总结展望。首先介绍了增量计算的定义及其与批计算、流计算的区别,阐述了增量计算的优势及典型需求场景,并解释了为何选择Flink进行增量计算。其次,详细描述了当前的工作进展,包括增量计算流程、执行计划生成、控制消费数据量级及执行进度记录恢复等关键技术点。最后,展示了增量计算的简单示例、性能测评结果,并对未来工作进行了规划。
254 5
基于 Flink 进行增量批计算的探索与实践
|
3天前
|
人工智能 自然语言处理 API
阿里云百炼xWaytoAGI共学课DAY1 - 必须了解的企业级AI应用开发知识点
本课程旨在介绍阿里云百炼大模型平台的核心功能和应用场景,帮助开发者和技术小白快速上手,体验AI的强大能力,并探索企业级AI应用开发的可能性。

热门文章

最新文章