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
from wedata_pre_code.wedata3.client import Wedata3PreCodeClient
# 初始化客户端
client = Wedata3PreCodeClient(
workspace_id="{{WorkspaceID}}",
mlflow_tracking_uri="{{MlflowTrackingUri}}",
base_url="{{BaseUrl}}",
region="{{Region}}",
ap_region_id=int("{{RegionId}}"),
gateway_url="{{GatewayUrl}}",
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
- gateway_url: 基础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.3.tar.gz
(9.9 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.3.tar.gz.
File metadata
- Download URL: wedata_pre_code-1.0.3.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fae5eb1dc0468d2027cdb403b295b55149dc2b4462f53d7da786b738777b39b
|
|
| MD5 |
df851dac62da84e62ce4983f3c0a3ede
|
|
| BLAKE2b-256 |
ba090e908487b72bd45c7536fd576ebe75a67ba623ba7cf215b9032522d7b35a
|
File details
Details for the file wedata_pre_code-1.0.3-py3-none-any.whl.
File metadata
- Download URL: wedata_pre_code-1.0.3-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa99695bd829b2ac1dba903867c9adc8ca653dc000e10a1729a931e4edac96c9
|
|
| MD5 |
28095aa0d0ded2cc3e7c2d7fd3b0eaee
|
|
| BLAKE2b-256 |
571ac8a919f66c51839f96b9b1d397f9dca447ecead786cac8b0c93bc0468315
|