云产品评测|分布式Python计算服务MaxFrame | 在本地环境中使用MaxFrame + 基于MaxFrame实现大语言模型数据处理

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
函数计算FC,每月15万CU 3个月
简介: 本文基于官方文档,介绍了由浅入深的两个部分实操测试,包括在本地环境中使用MaxFrame & 基于MaxFrame实现大语言模型数据处理,对步骤有详细说明。体验下来对MaxCompute的感受是很不错的,值得尝试并使用!

简要概述:

MaxCompute是一种云原生类大数据解决方案技术,本人在官方提供的产品文档的基础上,对于该产品进行了两部分的测试;包含在本地环境使用maxframe和基于maxframe实现大模型语言处理。通过这俩部分的实践操作,我相信可以更深度理解该技术所带给我们的技术和优势。

在正式开始实践之前,建议熟悉下阿里云官方文档,这对于我们熟悉概念与相关技术内容有很大帮助
云原生大数据计算服务 MaxCompute

第一部分:在本地环境中使用MaxFrame

该部分内容主要为了先理解安装步骤,在正式使用之前,我们得有一个正确的配置环境,这也是为了第二步模拟实践作为铺垫
附上官网详情说明链接 在本地环境使用MaxFrame

  • 通过Python官网安装相对应的版本,我这里安装的是3.11.4版
    image.png
    • 接着执行以下命令
pip install --upgrade maxframe  
#通过pip命令安装MaxFrame客户端。

python -c "import maxframe.dataframe as md" 
#命令检查MaxFrame是否安装成功。若无返回值或报错信息,则表示安装成功。
AI 代码解读

完成后如下图所示则为安装Python成功
image.png

  • 在MaxCompute创建自己的项目
    image.png

    这里的项目名称后面会用到 记住自己的项目名称

  • 获取AccessKey ID 和 AccessKey Secret
    在访问控制页面获取 RAM访问控制

    AK SK 只能查看一次,记得保存下来,这两个参数也会在后面用到

  • 获取endpoint
    image.png
    在左边功能栏的endpoint管理可以获取到

    这里的endpoint后面也会使用到

经过前面四个步骤,我们已经获取到了 项目名称、AK、SK、EndPoint 四个参数,接下来就可以进行实践操作了!

1, 在本地创建一个.py后缀的文件,写入并运行以下代码

import os
import maxframe.dataframe as md
from odps import ODPS
from maxframe import new_session

# 创建MaxCompute入口
o = ODPS(
    # 确保 ALIBABA_CLOUD_ACCESS_KEY_ID 环境变量设置为用户 Access Key ID,
    # ALIBABA_CLOUD_ACCESS_KEY_SECRET 环境变量设置为用户 Access Key Secret,
    # 不建议直接使用AccessKey ID和 AccessKey Secret字符串。
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
    project='your-default-project',
    endpoint='your-end-point',
)
table = o.create_table("test_source_table", "a string, b bigint", if_not_exists=True)
with table.open_writer() as writer:
    writer.write([
        ["value1", 0],
        ["value2", 1],
    ])

# 创建MaxFrame session
session = new_session(o)

df = md.read_odps_table("test_source_table",index_col="b")
df["a"] = "prefix_" + df["a"]

# 打印dataframe数据
print(df.execute().fetch())

# MaxFrame DataFrame数据写入MaxCompute表
md.to_odps_table(df, "test_prefix_source_table").execute()

# 销毁 maxframe session
session.destroy()
AI 代码解读

然后打开CMD窗口,执行

python C:\Users\Lenovo\Desktop\test.py 
      # 这里要输入你创建Python文件的路径
AI 代码解读

在这里我报错了,检查原因是没有添加AK,SK的环境变量;
image.png

在CMD窗口输入配置环境变量,输入你对应的AK SK

set ALIBABA_CLOUD_ACCESS_KEY_ID=your-access-id
set ALIBABA_CLOUD_ACCESS_KEY_SECRET=your-secret-access-key
AI 代码解读

然后进行环境变量验证

echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%
AI 代码解读

image.png

有出现自己的AK,SK之后,这就表示配置完成了。

接着执行后如下图,成功运行:
image.png

2,通过IDEA安装 MaxCompute studio
具体步骤可以参考官网教程,这里就不过多赘述
安装MaxCompute Studio

  • 安装成功后,执行语句
    SELECT * FROM test_prefix_source_table;
    
    AI 代码解读

image.png

至此,第一部分本地安装使用MaxFrame操作已完成。

第二部分:基于MaxFrame实现大语言模型数据处理

第一部分我们已经在本地完成了操作实践,对于相关的环境和操作步骤有了熟悉的了解。第二部分主要操作是为了进一步体验该产品,运用到实际运用中
同样,在开始操作之前需要提前阅读下官方操作文档
①操作步骤指导
基于MaxFrame实现大语言模型数据处理
②根据概述了解schema名称,这对后面操作也有一定的帮助。
公开数据集概述

  1. 在第一部分的项目sql editor中执行以下语句
    --开启Session级Schema语法
    set odps.namespace.schema=true;
    --查询表llm_redpajama_github_demo_data中的200条数据
    select * from bigdata_public_dataset.data_science.llm_redpajama_github_demo_data limit 200;
    
    AI 代码解读
    运行成功后如图
    image.png
  2. 创建一个.py结尾的文件,然后输入以下代码执行

    import os
    import time
    import numpy as np
    import maxframe.dataframe as md
    from odps import ODPS
    from maxframe import new_session
    # from maxframe.udf import with_resource_libraries
    from maxframe.config import options
    from maxframe import config
    
    o = ODPS(
     # 确保 ALIBABA_CLOUD_ACCESS_KEY_ID 环境变量设置为用户 Access Key ID,
     # ALIBABA_CLOUD_ACCESS_KEY_SECRET 环境变量设置为用户 Access Key Secret,
     # 不建议直接使用AccessKey ID和 AccessKey Secret字符串。
     os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
     os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
     project='aliyuntest115',
     endpoint='https://service.cn-shanghai.maxcompute.aliyun.com/api',
    )
    
    config.options.sql.settings = {
         
     "odps.session.image": "common"
    }
    
    def clean_copyright(row):
     import re
     pat = re.compile('/\\*[^*]*\\*+(?:[^/*][^*]*\\*+)*/')
     cpat = re.compile('copyright', re.IGNORECASE)
    
     text = row['content']
    
     if not text:
         return row
    
     r = pat.search(text)
     if r:
         span = r.span()
         sub = text[span[0]:span[1]]
         if cpat.search(sub):
             # cut it
             text = text[:span[0]] + text[span[1]:]
    
         row['content'] = text
         return row
    
     lines = text.split('\n')
     skip = 0
    
     for k in range(len(lines)):
         if (lines[k].startswith('//') or lines[k].startswith('#')
                 or lines[k].startswith('--') or not lines[k]):
             skip = skip + 1
         else:
             break
    
     if skip:
         text = '\n'.join(lines[skip:])
     row['content'] = text
    
     return row
    
    def maxframe_job():
     s_time = time.time()
     table_name = 'bigdata_public_dataset.data_science.llm_redpajama_githu 
    b_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()
    
    AI 代码解读
  • 运行python文件
    image.png
  • 然后同样在sql editor执行sql语句
    SELECT * FROM tmp_mf_clean_copyright limit 200
    #后面的limit 200 记得加上,如果不加会报错
    
    AI 代码解读

image.png

如图可以看到,相关的敏感信息已经祛除,那么我们这次实践就成功完成了~

体验感受

  1. 做了两个实操,给我的整体感受就是阿里云的产品以及文档做的很详细很详细!对于每个步骤已经注意的事项都有相关的描述和说明,即使完全没啥经验的小白,也可以轻松上手操作。
  2. 再就是分布式Python计算服务MaxFrame,通过部署和项目实操,也算是比较深度的体验吧。
    一是费用完全不用担心,按量付费,这比较省心,了解自己的业务量就大概清楚需要多少成本。
    二是方便&便捷,使用方式是简单易懂的;当然我本次只用来本地环境来搭建,后续会尝试换一个平台来搭建体验一下~
    总体来说,如果之前没有使用过MaxCompute,这次试用很值得体验一次!
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
打赏
0
0
1
0
16
分享
相关文章
产品测评 | 上手分布式Python计算服务MaxFrame产品最佳实践
MaxFrame是阿里云自研的分布式计算框架,专为大数据处理设计,提供高效便捷的Python开发体验。其主要功能包括Python编程接口、直接利用MaxCompute资源、与MaxCompute Notebook集成及镜像管理功能。本文基于MaxFrame最佳实践,详细介绍了在DataWorks中使用MaxFrame创建数据源、PyODPS节点和MaxFrame会话的过程,并展示了如何通过MaxFrame实现分布式Pandas处理和大语言模型数据处理。测评反馈指出,虽然MaxFrame具备强大的数据处理能力,但在文档细节和新手友好性方面仍有改进空间。
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
50 7
MaxCompute MaxFrame评测 | 分布式Python计算服务MaxFrame(完整操作版)
在当今数字化迅猛发展的时代,数据信息的保存与分析对企业决策至关重要。MaxCompute MaxFrame是阿里云自研的分布式计算框架,支持Python编程接口、兼容Pandas接口并自动进行分布式计算。通过MaxCompute的海量计算资源,企业可以进行大规模数据处理、可视化数据分析及科学计算等任务。本文将详细介绍如何开通MaxCompute和DataWorks服务,并使用MaxFrame进行数据操作。包括创建项目、绑定数据源、编写PyODPS 3节点代码以及执行SQL查询等内容。最后,针对使用过程中遇到的问题提出反馈建议,帮助用户更好地理解和使用MaxFrame。
Python分布式抓取和分析京东商城评价
互联网购物现在已经是非常普遍的购物方式,在互联网上购买商品并且使用之后,很多人都会回过头来对自己购买的商品进行一些评价,以此来表达自己对于该商品使用后的看法。商品评价的好坏对于一个商品的重要性显而易见,大部分消费者都以此作为快速评判该商品质量优劣的方式。
1539 0
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
120 80
|
3天前
|
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
25 6
Python高性能编程:五种核心优化技术的原理与Python代码
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
166 59
|
1月前
|
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
44 14

云原生

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等