WeData平台的预执行代码库,为机器学习实验提供与MLflow的深度集成
Project description
WeData Pre-Code Library
WeData平台的预执行代码库,为机器学习实验提供与MLflow的深度集成和WeData平台的功能增强。
项目概述
本项目提供了两个版本的WeData客户端,用于在WeData平台上运行机器学习实验时提供以下功能:
- MLflow集成增强:自动注入WeData平台特定的标签和过滤条件
- 权限控制:基于项目/工作空间的权限验证机制
- URL生成:自动生成实验和运行的查看链接
- 环境配置:自动设置运行环境变量
版本说明
Wedata2PreCodeClient (WeData 2.0版本)
适用于WeData 2.0平台的客户端,主要特性:
- 基于项目ID进行权限控制
- 支持国内站和国际站URL模板
- 自动注入项目标签和机器学习类型标签
- 提供完整的MLflow客户端装饰器
Wedata3PreCodeClient (WeData 3.0版本)
适用于WeData 3.0平台的客户端,主要特性:
- 基于工作空间ID进行权限控制
- 支持更灵活的配置选项
- 增强的标签注入和验证机制
- 支持机器学习和深度学习两种实验类型
安装和使用
安装依赖
pip install mlflow
使用Wedata2PreCodeClient
from wedata_pre_code.wedata2.client import Wedata2PreCodeClient
# 初始化客户端
client = Wedata2PreCodeClient(
wedata_project_id="{{WEDATA_PROJECT_ID}}",
wedata_notebook_engine="{{WEDATA_NOTEBOOK_ENGINE}}",
qcloud_uin="{{QCLOUD_UIN}}",
qcloud_subuin="{{QCLOUD_SUBUIN}}",
wedata_default_feature_store_database="{{WEDATA_DEFAULT_FEATURE_STORE_DATABASE}}",
wedata_feature_store_databases="{{WEDATA_FEATURE_STORE_DATABASES}}",
qcloud_region="{{QCLOUD_REGION}}",
mlflow_tracking_uri="{{KERNEL_MLFLOW_TRACKING_URI}}",
feast_remote_address="{{KERNEL_FEAST_REMOTE_ADDRESS}}",
kernel_submit_form_workflow="{{KERNEL_SUBMIT_FORM_WORKFLOW}}",
kernel_task_name="{{KERNEL_TASK_NAME}}",
kernel_task_id="{{KERNEL_TASK_ID}}",
kernel_region="ap-chongqing",
kernel_is_international=bool("{{KERNEL_IS_INTERNATIONAL}}")
)
# 现在可以使用MLflow客户端,会自动应用WeData的增强功能
import mlflow
mlflow.start_run()
# ... 你的实验代码
使用Wedata3PreCodeClient
%pip install wedata-pre-code
from wedata_pre_code.wedata3.client import Wedata3PreCodeClient
# 初始化客户端
client = Wedata3PreCodeClient(
workspace_id="{{WorkspaceID}}",
base_url="{{BaseUrl}}",
region="{{Region}}",
ap_region_id=int("{{RegionId}}"),
mlflow_gateway_url="{{MlflowGatewayUrl}}",
feast_gateway_url="{{FeastGatewayUrl}}",
mlflow_proxy_ip="{{MlflowProxyIp}}",
mlflow_proxy_port="{{MlflowProxyPort}}",
feast_proxy_ip="{{FeastProxyIp}}",
feast_proxy_port="{{FeastProxyPort}}",
kernel_task_name="{{TaskName}}",
kernel_task_id="{{TaskId}}",
kernel_submit_form_workflow="{{SubmitFormWorkflow}}",
cloud_sdk_secret_id="{{CloudSdkSecretId}}",
cloud_sdk_secret_key="{{CloudSdkSecretKey}}",
cloud_sdk_secret_token="{{CloudSdkSecretToken}}",
qcloud_uin="{{QcloudUin}}",
qcloud_subuin="{{QcloudSubUin}}",
)
client.init()
- 必传参数:
- workspace_id: 工作空间ID
- mlflow_tracking_uri: mlflow跟踪URI
- base_url: 基础URL
- mlflow_gateway_url: mlflow基础serverless网关地址
- feast_gateway_url: feast基础serverless网关地址
- mlflow_proxy_ip: mlflow转发地址
- mlflow_proxy_port: mlflow转发端口
- feast_proxy_ip: feast转发地址
- feast_proxy_port: feast转发端口
- 可选参数:
- region: 区域
- ap_region_id: 区域ID
- kernel_task_name: Notebook路径名
- kernel_task_id: Notebook文件ID
- kernel_submit_form_workflow: 任务提交表单工作流
- kernel_is_international: 是否国际站
- cloud_sdk_secret_id: 云SDK密钥ID
- cloud_sdk_secret_key: 云SDK密钥KEY
- cloud_sdk_secret_token: 云SDK密钥TOKEN
- qcloud_uin: 腾讯云uin
- qcloud_subuin: 腾讯云subuin
功能特性
自动标签注入
- 自动为实验、运行和模型注入WeData平台标签
- 包括项目ID、工作空间ID、机器学习类型等信息
- 确保数据在平台上的可追溯性
权限验证
- 在执行敏感操作前验证权限
- 防止跨项目/工作空间的未授权操作
- 保护内置标签不被修改
URL生成
- 自动生成实验和运行的查看URL
- 在运行终止时显示访问链接
- 方便用户快速访问实验结果
环境配置
- 自动设置MLflow跟踪URI
- 配置运行上下文环境变量
- 支持国际站和国内站的不同配置
项目结构
pre-execute/
├── src/
│ └── wedata_pre_code/
│ ├── __init__.py
│ ├── client.py # 主客户端入口
│ ├── common/
│ │ ├── __init__.py
│ │ └── base_client.py # 基础客户端类
│ ├── wedata2/
│ │ ├── __init__.py
│ │ └── client.py # WeData 2.0客户端
│ └── wedata3/
│ ├── __init__.py
│ └── client.py # WeData 3.0客户端
├── docs/ # 文档目录
├── pyproject.toml # 项目配置
├── requirement.txt # 依赖文件
└── README.md # 项目说明
开发指南
添加新的装饰器
要添加新的MLflow客户端方法装饰器,可以参考现有的实现模式:
- 在相应的客户端类中定义装饰器函数
- 使用
@wraps保留原函数属性 - 在装饰器内部实现特定的逻辑
- 将装饰器应用到目标MLflow方法
测试
确保在修改代码后测试以下场景:
- 正常创建实验和运行
- 权限验证功能
- 标签注入的正确性
- URL生成的准确性
注意事项
- 确保MLflow服务器配置正确
- 验证环境变量设置完整
- 注意不同版本客户端的参数差异
- 在生产环境使用前进行充分测试
支持与反馈
如有问题或建议,请联系WeData平台技术支持团队。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
wedata_pre_code-1.0.8.tar.gz
(10.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wedata_pre_code-1.0.8.tar.gz.
File metadata
- Download URL: wedata_pre_code-1.0.8.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eb9b2ced546c6ff6e6962c75a5edf4f57b059b204f55db3ff1da494cc7fdd26
|
|
| MD5 |
1615308392d7c9400ec6f55f527fdc7f
|
|
| BLAKE2b-256 |
cfc99c87468c79a690cd2ad2746010e987e016d0109d5f517d715f695469f17e
|
File details
Details for the file wedata_pre_code-1.0.8-py3-none-any.whl.
File metadata
- Download URL: wedata_pre_code-1.0.8-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45d065b4c478be34176988d7eb9aab508dc7e9d6f4d2d0d111f9d04c9a85799c
|
|
| MD5 |
aad54c8d92a6a0d54971390083634593
|
|
| BLAKE2b-256 |
dbf08e279a5856e8e614fc5ea1f4ff179c1a43e0e8165bc00f445634692a7c48
|