「直播回顾」Mars:加速数据科学的新方式

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 本文从数据科学概念、背景和现状切入,引出加速数据科学的新方式Mars,并介绍了Mars具体能解决的一些问题和背后的逻辑、哲学,同时对Mars整体数据处理流程进行了介绍。

本文分为4个部分:

  • Mars的背景和现状
  • Mars解决了什么问题
  • Mars背后的哲学
  • 总结与展望

一、Mars的背景和现状

说到加速数据科学的新方式,就不得不说什么是数据科学,以下是维基的定义:

image.png

数据科学通过运用各种相关的数据来帮助非专业人士来理解问题。第一,它的目标是从数据中提取输入价值的部分,第二,它要生产数据产品,第三它结合了非常多重要的技术,包括数学、统计、机器学习、可视化,最后,它需要真正解决问题。

它包含三个方面,计算机科学、数学和统计、领域和商业知识。它们结合起来分别是机器学习、软件开发和传统研究,中间是数据科学。

image.png

数据科学技术栈包含语言、数据分析、数据工程、机器学习、Web开发、运维和商业智能。每个技术栈都包含不同的工具,提供不同的数据服务。

image.png

传统Python数据科学栈的三大底座是NumPy、Pandas和SciPy。NumPy是最核心的部分,它用来做数值计算,几乎其他所有Python的数据科学技术栈都建立在NumPy上,因为它有最基础的数据结构,也就是多维数组;另外,Pandas也用NumPy实现,它上面有很多API来进行分析操作;而SciPy主要负责科学计算。在此基础上,是机器学习和可视化,同时还有丰富的Python函数。

image.png

上面是Python数据科学技术栈整体的状况,他们有几大好处,比如广泛使用,是事实标准;上手成本低,容易为初学者和学生入门;和语言结合紧密,能用Python来组织函数调用。但是它们都是单机的库,不能处理很大的数据量,所以需要用到大数据的数据工程技术栈,比如Hadoop、Hive、Spark等。它们虽然支持多语言,没有强绑定,但是学习门槛比较陡峭,也需要对系统本身有足够的了解。做数据科学需要把精力放在数据本身,而不是工具,但是这几个库让工作围绕着库展开,而非数据。因此,我们是否能把这两个工作连接起来,利用传统的技术价值而不是关注大数据系统本身,来解决很多问题。

image.png

现在大家说摩尔定律已经失效,我们可以回顾一下它的历史。早期它通过复杂指令集和精简指令集的方式让速度提升,但是随着缩放比例定律和阿姆达尔定律的终结,未来是不是要20年才能达到2倍效率的提升呢?

image.png

另外随着深度学习、机器学习和AI的火热,机器学习模型也会越来越大,它的训练已经呈指数级增长,但是摩尔定律并没有追上机器学习模型训练发展的速度。

image.png

另外一个现状就是技术栈的问题,NumPy、Pandas等它们更多只能在单核上来应用计算,但是阿姆达尔定律下的核数是会越来越多,所以并没有很好地进行利用。同时,不管是计算量还是数据规模的增长速度,都超过了摩尔定律的速度,所以也不能用单机解决问题。

image.png

基于以上,加速数据科学主要有两种方式。第一是Scale up,利用多核和更好的硬件,比如GPU、FPGA和TPU等,以及现有的库,包括Modin、CuPy、Rapids等来提升效率。第二是 Scale out,利用分布式的方式来加速,因为单核的性能总归是有限的,可以利用Ray、Dask和Modin等。而结合Scale up和Scale out,就可以构建一个大规模的更好的硬件集成,比如今天介绍的加速数据科学的新方式Mars。

image.png

二、Mars解决了什么问题

Mars就是我们试图构建的“桥”,能来兼顾小规模和大规模数据处理。大规模数据处理能构建集群,有三种主要方式,第一是在物理机上,第二是kubernetes,第三是Hadoop Yarn的调度器上,拉起Mars的集群。

Mars的核心基础部分对应着传统Python数据技术栈,比如Mars Tensor对应NumPy,DataFrame对应Pandas等。而构建在这个基础之上的,是Mars Learn模块,它可以兼容Scikit-learn API,能简单地进行更大数据规模的分布式处理。此外,Mars还支持深度学习和机器学习的框架,比如能轻松运行TensorFlow、PyTorch等,而且可视化也可以在Mars上宣布。除此之外,Mars还支持了丰富的数据源。

image.png

从传统Python技术栈到Mars也非常简单,比如在NumPy和Pandas里要变成Mars,只需要替换import,然后后面变为延迟执行即可。

image.png

普通的Python函数,在调用的时候变成mr.spawn来延迟这个过程,最后通过execute来并发执行,不用担心Mars是运行在单机上还是分布式运行。

image.png

而Mars上的TensorFlow大部分也一样,区别在于main函数部分的变化。

image.png

三、Mars背后的设计哲学

第一是分而治之,不重复造轮子。比如创建一个Mars的Tensor,对里面所有元素进行求和操作,在触发execute之后,Mars会生成小任务的计算图,它可以将小任务调度到分布式的集群中来运行。此外还做了很多优化,通过算子融合来提升性能。

image.png

第二,在Mars的世界,一切皆可并行。在Mars里实现了并行正则排序算法,比如创建一个cluster,有5个Worker,每个Worker是8核32G,那么相比单机的NumPy函数,它提升了4倍。

image.png

下面看下Mars整体数据的处理流程。我们通过客户端的代码触发执行,生成一个粗粒度的计算图,然后通过Web服务器提交任务,并将任务转发给Scheduler,然后在这里切分成小任务。随后,Scheduler根据Worker工作负载的情况来把它分发到各个机器上运行,这里会用到调度的策略等等。这个过程中,Mars会自动触发数据传输工作,保证在节点执行的时候它所有输入的数据都在这台机器上。此外Mars还会自动进行Spill操作,当我们内存不够的时候,它会把不常用的数据Spill到磁盘上,让Mars可以处理远超过这个内存能放下的数据规模。

image.png

四、总结与展望

首先Mars是完全开源的项目,完全遵循开源的规范,而且项目的progress都能在GitHub上看到;其次Mars有兼容性,它的API高度兼容NumPy、Pandas和Scikit-learn;同时,它的单机、多核与分布式的处理性能也更高;最后是交互性,Mars Remote可以把以前的代码变成分布式代码,并且内部也可以与第三方库做集成。

Github地址:https://github.com/mars-project/mars

image.png

下面是关于Mars未来的展望,大家可以访问专栏。未来我们的开发计划重心放在提升Mars learn的接口覆盖率和Mars DataFrame接口覆盖率上,统一单机和分布式执行层等等。

image.png

以上就是今天的课程,欢迎大家继续关注Mars。
戳我观看直播回放

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
16天前
|
JSON 分布式计算 数据处理
加速数据处理与AI开发的利器:阿里云MaxFrame实验评测
随着数据量的爆炸式增长,传统数据分析方法逐渐显现出局限性。Python作为数据科学领域的主流语言,因其简洁易用和丰富的库支持备受青睐。阿里云推出的MaxFrame是一个专为Python开发者设计的分布式计算框架,旨在充分利用MaxCompute的强大能力,提供高效、灵活且易于使用的工具,应对大规模数据处理需求。MaxFrame不仅继承了Pandas等流行数据处理库的友好接口,还通过集成先进的分布式计算技术,显著提升了数据处理的速度和效率。
|
16天前
|
存储 机器学习/深度学习 人工智能
《Python 助力:人工智能模型的“瘦身”与“加速”之旅》
在人工智能蓬勃发展的今天,深度学习模型的规模和复杂度不断增加,导致存储需求大、计算资源消耗过多及推理速度受限等问题。为此,模型压缩(如剪枝、低秩分解)和量化技术应运而生,通过减少参数数量或降低精度,在不显著影响性能的前提下,优化存储和计算效率。Python 作为主流编程语言,在这些技术的实现与优化中发挥重要作用,借助 TensorFlow 和 PyTorch 等框架,开发者可以方便地进行模型压缩和量化操作。这些技术不仅提高了模型在边缘设备上的运行效率,还降低了数据中心的存储和能耗成本,推动了人工智能的广泛应用。
145 82
|
4天前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
17 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
5天前
|
数据采集 人工智能 分布式计算
🚀 MaxFrame 产品深度体验评测:Python 分布式计算的未来
在数据驱动的时代,大数据分析和AI模型训练对数据预处理的效率要求极高。传统的Pandas工具在小数据集下表现出色,但面对大规模数据时力不从心。阿里云推出的Python分布式计算框架MaxFrame,以“Pandas风格”为核心设计理念,旨在降低分布式计算门槛,同时支持超大规模数据处理。MaxFrame不仅保留了Pandas的操作习惯,还通过底层优化实现了高效的分布式调度、内存管理和容错机制,并深度集成阿里云大数据生态。本文将通过实践评测,全面解析MaxFrame的能力与价值,展示其在大数据和AI场景中的卓越表现。
18 4
🚀 MaxFrame 产品深度体验评测:Python 分布式计算的未来
|
5天前
|
人工智能 分布式计算 数据处理
有奖评测,基于分布式 Python 计算服务 MaxFrame 进行数据处理
阿里云MaxCompute MaxFrame推出分布式Python计算服务MaxFrame评测活动,助力开发者高效完成大规模数据处理、可视化探索及ML/AI开发。活动时间为2024年12月17日至2025年1月31日,参与者需体验MaxFrame并发布评测文章,有机会赢取精美礼品。
|
16天前
|
数据采集 人工智能 分布式计算
探索 MaxCompute MaxFrame:AI 数据预处理的高效之选
探索 MaxCompute MaxFrame:AI 数据预处理的高效之选
|
19天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
57 2
|
28天前
|
机器学习/深度学习 人工智能 数据处理
《C++与 Python 人工智能框架的无缝对接:开启数据处理新境界》
在数字化时代,C++和Python分别在数据处理和人工智能领域展现独特优势。C++以其高效能和底层资源控制能力,适用于数据的初步处理;Python则因简洁灵活及丰富的AI库,擅长复杂算法的实现。两者结合,不仅强化了数据处理与分析能力,还为解决实际问题提供了新途径,成为技术领域的热点。本文探讨了这种集成的重要性和应用场景,如图像识别、金融分析等,并讨论了集成过程中可能遇到的挑战及解决方案,最后分享了成功案例与未来展望。
54 10
|
7月前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI产品使用合集之在maxcompute上跑模型,如何在本地进行推理
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
人工智能平台PAI产品使用合集之在maxcompute上跑模型,如何在本地进行推理
|
7月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能平台PAI产品使用合集之如何使用blade进行优化
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。