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

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
对象存储 OSS,20GB 3个月
简介: 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)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
13天前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
42 1
思科设备巡检命令Python脚本大集合
|
9天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
106 68
|
3天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
13 3
|
2天前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
7天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
13 1
|
7天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
20 1
|
6月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
233 14
|
6月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
109 1
|
6月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
6月前
|
机器学习/深度学习 数据采集 算法
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
296 0