阿里云PAI Studio Python脚本组件使用Quick Start

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: PAI-Studio提供自定义Python脚本的功能,您可以使用该组件运行自定义的Python函数,并且支持自定义安装依赖包。本文为您介绍该组件的配置详情,包括自定义输入输出桩数量、脚本设置及执行配置。本文通过使用Python脚本读取ODPS上游表,演示Python脚本组件的使用。

Step By Step

1、界面组件拖拽与配置
2、Python 组件相关配置
3、运行测试
4、日志查看


一、界面组件拖拽与配置

图片.png

  • 1.2 分别拖拽读数据表组件和Python脚本组件到画布

图片.png

二、组件相关配置

图片.png

脚本:
CREATE TABLE `lm_test_input_1` (
    `value` bigint,
    `output1` bigint
);

INSERT into table lm_test_input_1 values (1,2);

INSERT into table lm_test_input_1 values (2,4);

SELECT * FROM lm_test_input_1;
  • 2.2 配置读数据表组件

图片.png

  • 2.3 配置Python脚本组件

图片.png

main.py

from odps import ODPS
from pai_running.context import Context

context = Context()

# 获取组件第一个输入端口输入数据
input_port = context.input_artifacts.flatten()[0]
print("---input_port---",input_port)
print("---日志输出测试:---")

o = ODPS(
    access_id=context.access_key_id,
    secret_access_key=context.access_key_secret,
    endpoint=input_port.endpoint,
    project=input_port.project,
)

# 获取从上游输入的表名
input_table_name = input_port.table
print("---input_table_name---",input_table_name)
# 组件准备输出的表
output_table_name = "demo_output_table"

o.execute_sql(
    f"drop table if exists {output_table_name};",
)

# 获取输入表的age列,导出到一张新表中
o.execute_sql(
    f"create table {output_table_name} as select value from {input_table_name};"
)

# 通过以下调用,告知Workflow框架,当前组件输出了一张ODPS表
output_port = context.output_artifacts.flatten()[0]
output_port.write_table(
    table="demo_output_table",
    project=o.project,
    endpoint=o.endpoint,
)
执行配置脚本
{
    "_comments": [
        "Python 组件将用户代码运行在公共资源组的 DLC 集群 (https://help.aliyun.com/document_detail/202277.html)",
        "并且支持数据加载/保存本地文件系统,用户可以通过读写本地文件的方式,读写上下游的输入输出数据。",
        "目前运行的任务通过一个 JSON 文件进行配置,从功能角度,配置项主要包括两部分内容",
        "1. 数据载入/保存配置",
        "1.1. inputDataTunnel: 每一项对应组件的一个输入端口, 将上游节点的输入数据(MaxComputeTable, OSS) 加载到本地目录中;",
        "1.2. outputDataTunnel: 每一项对应组件的一个输出端口,指定将哪些本地文件上传保存到 OSS 中;",
        "1.3. uploadConfig: 数据上传的OSS配置, 包括上传的OSS bucket 名称, endpoint,以及上传到OSS的根路径 path;",
        "2. 运行负载配置(jobConfig),包含运行在 ServerLess DLC 的具体运行配置;",
        "注意: 以下的配置项是一个样例说明,请根据实际组件运行的场景修改使用。",
        "注意: 用户的代码执行的日志输出,可以通过点击组件输出的 DLC 的任务URL,去DLC的控制台查看"
    ],
    "inputDataTunnel": [
    ],
    "outputDataTunnel": [
    ],
    "uploadConfig": {
        "endpoint": "oss-<oss bucket region>.aliyuncs.com",
        "bucket": "<oss bucket name>",
        "path": "python_example/",
        "_comments": [
            "数据上传配置项, 目前数据上传功能只支持上传到 OSS。",
            "如果单独的 outputDataTunnel 中没有数据上传配置(没有.uploadConfig 字段),则会使用全局的uploadDataTunnelConfig配置",
            "note:每一个DataTunnel 指定的文件/目录,最终的上传的路径为 uploadConfig.path/{run_id}/{node_id}/{output_tunnel_name}/"
        ]
    },
    "jobConfig": {
        "name": "example1",
        "jobType": "generalJob",
        "taskSpec": {
            "instanceType": "ecs.c6.large",
            "imageUri": "registry.cn-hangzhou.aliyuncs.com/paiflow-public/python3:v1.0.0"
        },
        "_comments": [
            "DLC的任务配置项,包括",
            "name: 运行在 DLC 的任务名称前缀",
            "jobType: 任务类型,目前默认为GeneralJob,无需修改,表示是一个单节点任务(后续会支持多节点的分布式任务)",
            "taskSpec: 任务worker节点配置,其中 .instanceType 表示worker使用的 ECS 实例类型; .imageUri 是worker使用的镜像",
            "目前worker 支持使用官方镜像 (https://help.aliyun.com/document_detail/202834.htm) ,以及自定义镜像, 如果使用自定义镜像,请确保镜像能够支持公开访问。"
        ]
    }
}
三、运行测试

图片.png

图片.png

四、日志查看

图片.png

由于Python脚本需要依赖于PAI-DLC作为底层计算引擎,实际是在DLC集群创建docker运行的,所以查看Python脚本的详细日志需要到DLC控制台查看。

图片.png

图片.png

更多参考

Python脚本

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
15天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
124 61
|
1天前
|
机器学习/深度学习 人工智能 分布式计算
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
57 35
|
1月前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
100 7
21个Python脚本自动执行日常任务(2)
|
25天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
100 5
|
25天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
62 2
|
1月前
|
弹性计算 安全 开发工具
灵码评测-阿里云提供的ECS python3 sdk做安全组管理
批量变更阿里云ECS安全组策略(批量变更)
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
60 7
|
2月前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
8月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
263 14
|
8月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)