注意:说明:
注意:预计用时 45 分钟。学习目标:完成「特征注册 > AutoML 训练 > 模型上线」的端到端 ML 闭环。
一、场景介绍
某电商平台希望预测客户流失(Customer Churn)。数据团队已经把客户行为特征整理成 CSV,你需要:
1. 把特征数据上传并注册成离线特征表。
2. 用 AutoML(分类)一键自动选模并训练。
3. 查看实验记录,把最优模型注册到模型管理。
4. 把模型一键部署成在线推理服务,验证 API 可用。
在本教程中,你将:
1. 准备特征数据。
2. 创建 AutoML 分类实验,配置训练数据和参数。
3. 在实验管理中查看运行结果,识别最优模型。
4. 把最优模型注册并发布到在线推理服务。
5. 调用服务做单条推理验证。
二、前提条件
·已完成 5 分钟完成第一个 SQL 查询 。
·当前 Workspace 已开通 数据科学 模块、绑定计算资源、机器学习资源组。
·当前账号对目标 Catalog / Schema 拥有写入权限(用于创建特征表与注册模型)。
·已在 Studio 中连接 计算资源 ,Notebook 内核为 Python 3.10 及以上 ;使用 机器学习 镜像,已预装特征工程包 wedata3-feature-engineering。未预装时执行 %pip install "wedata3-feature-engineering[mlflow3]==0.2.3"(要求 MLflow ≥ 3.0.0)。
·具备机器学习基础概念(特征、训练、评估、部署)。
·已下载样例 weshop_data 中的 customer_churn_class.csv。
四、1.1 CSV 文件上传到表
1. 点击左侧导航数据接入 ,点击文件上传到表。
2. 建表方式选择创建新表,选择目标 schema 作为存储位置。
3. 点击建表,建表成功后会自动跳转。
4. 记住上传目录 :表名右侧点击可复制表路径。
五、1.2 用特征工程 SDK 把 CSV 注册为特征表
特征表是同时具备 主键 与 时间戳键 的表。通过特征工程 SDK 注册后,该表既可作为 AutoML 训练数据,又能被特征管理模块统一索引与复用。
1. 在同一文件夹新建 Notebook prepare_churn_data.ipynb,启动使用计算资源的 Kernel:点击右上角 未连接 ,搜索并选择用于机器学习的资源组进行连接,待状态变为已连接 。
镜像在创建计算资源时选择 :AutoML / 特征工程需使用 机器学习 场景镜像,而非默认基础镜像。创建计算资源时,在「镜像版本」处勾选 机器学习 即可切换到机器学习场景镜像,具体操作见 创建计算资源 。
2. 首次运行先确认 SDK 已安装 。新建一个单元格执行下面的检查;若无输出说明当前内核未安装,取消注释执行安装,装完务必重启内核 再继续:
# 检查特征工程 SDK 是否已安装(机器学习镜像已预装,会打印版本)%pip list | grep wedata3-feature-engineering# 未安装时取消下一行注释执行(要求内核 Python ≥ 3.10、MLflow ≥ 3.0.0),装完重启内核# %pip install "wedata3-feature-engineering[mlflow3]==0.2.3"
3. 在下一个单元格运行建表代码。在create_table中修改相关信息:
import pandas as pdfrom pyspark.sql.functions import current_timestampfrom wedata.feature_engineering.client import FeatureEngineeringClientfrom wedata.feature_store.constants.engine_types import EngineTypes# Studio(DLC)Notebook 内核已内置 spark 会话,可直接使用 spark 变量,无需手动创建 SparkSession# 初始化特征工程客户端(鉴权信息由 Notebook 内核从环境变量自动注入,无需手动配置)fe = FeatureEngineeringClient(spark)# 读取上传的 CSV,并补充时间戳列# 注意:请把下方路径替换为你在步骤 1.1 上传 CSV 的实际目录路径。# 可在左侧文件管理器中右键该 CSV 文件、选择「复制路径」获取完整路径,# 形如 /Workspace/Users/<你的账号>/customer_churn_class.csvpdf = pd.read_csv("/Workspace/Users/<你的账号>/customer_churn_class.csv")df = spark.createDataFrame(pdf).withColumn("event_timestamp", current_timestamp())# 创建特征表:指定主键与时间戳键,engine_type 固定用 Iceberg,df 用于推断 schema 并写入首批数据fe.create_table( name="customer_churn_features", # (可修改)特征表名 catalog_name="your_catalog", # 目标 Catalog 名 database_name="your_schema", # 目标 Schema 名 primary_keys=["customer_id"], # 主键(支持复合主键) timestamp_key="event_timestamp", # 时间戳键(单数) engine_type=EngineTypes.ICEBERG_ENGINE, df=df, # 用 df 推断 schema 并写入首批数据 description="客户流失特征表,用于 AutoML 训练。",)# 读回离线特征表,验证写入结果(表名为上面 create_table 的三段式全名,请替换为你自己的 catalog.schema)fe.read_table(name="your_catalog.your_schema.customer_churn_features").show(5)
执行后,你应该看到特征表已创建,包含若干客户特征字段(如 tenure_months、monthly_charges、contract_type 等)、主键 customer_id、时间戳键 event_timestamp 和目标列 churn。
常见报错及解决方案请参考 最佳实践与异常排查。
注意:说明:
七、2.1 进入实验列表
1. 顶部导航切换到 数据科学 > 模型实验 。
2. 单击 分类模型 ,进入创建表单页面。
八、2.2 基础配置
| 字段 | 取值 |
| 实验名称 | churn_classification_v1 |
| 实验描述 | 客户流失分类实验 – 首次跑通 |
| 资源组 | 下拉选择用于训练的资源组 |
九、2.3 数据配置
1. 训练数据 :下拉选择 Catalog 中的 customer_churn_features 特征表,选定后右侧自动展示数据配置区。
2. 结果列 :单选 churn 作为分类标签列,该列会在右侧数据配置区自动标记为 用于结果 。
3. 训练列 :多选参与训练的特征列;不勾选 customer_id、event_timestamp 等不应作为特征的列(未选中的列不参与训练)。
4. 缺失值 :在右侧数据配置区中按列下拉选择缺失值补全方式。
十、2.4 训练配置
| 字段 | 推荐值 |
| 评估指标 | F1 Score |
| 搜索空间 | sklearn / xgboost / lightgbm |
| 最大运行时间 | 10 分钟(超时停止实验) |
| 最大运行次数 | 20(实验最多生成的运行任务数量) |
| 最大运行并发 | 1(实际并发还受限于资源组可用资源) |
十一、2.5 创建并运行
点击页面底部 确定 ,系统会自动启动 AutoML 训练并跳转到该实验的详情页,状态显示为 准备中 或 训练中 。
若你需要创建其他类型的模型实验,请参考 创建实验 。
十三、3.1 实验状态
1. 自动跳转到实验进度界面 ,等待状态变为 完成 (绿色)
2. 在面板上可查看实验详细配置、最佳运行、工作流等信息
十四、3.2 进入任务详情
1. 点击运行名称 churn_classification_v1 进入实验详情。
2. 在上方 tab 栏可点击查看概览信息、模型指标、系统指标与该运行下的模型文件
十五、步骤 4:把模型注册到模型管理
AutoML 实验完成后,从最佳运行将模型注册到 模型 列表(命名为 catalog.schema.model_name 三段式全名):
1. 在实验详情页点击父运行进入运行详情,点击 模型注册 ,选择 新模型 并输入符合 catalog.schema.model_name 规范的名称(目标 Catalog 需为 Model 类 Catalog ,可在 Catalog 中复制路径)。
2. 顶部导航切换到 数据科学 > 模型管理 ,找到刚注册的模型。
3. 点击模型名称进入 Catalog 中的模型详情页,确认存在 Version 1 。
4. 点击 Version 1,可以看到该版本详细信息
详细模型管理操作见 模型管理。
十七、5.1 进入创建服务并填写基础信息
1. 顶部导航切换到 数据科学 > 模型服务 ,点击 新建服务 (也可在该模型详情页点击部署模型 )。
2. 填写基本配置:
| 字段 | 取值 |
| 服务名称(Endpoint) | churn_predict_service(创建后不可修改,工作空间内全局唯一) |
| 服务描述 | 客户流失预测在线推理(用于列表页向团队说明用途) |
十八、5.2 配置服务版本
单次最多可配置 5 个服务版本(用于灰度发布或 A/B 测试),为该服务添加一个版本,依次填写:
| 字段 | 取值 |
| 服务名称 | 该服务的名称,必填项 |
| 服务描述 | 描述服务,选填,不超过100字 |
| 部署模型 | 选择 Step 4 注册的模型 |
| 版本 | 选择 Step 4 注册的模型的版本(默认最新版本 Version 1) |
| 资源来源 | 平台按量计费(Serverless) |
| 资源规格 | 4C8G(CPU 规格起步;深度学习 / GPU 模型选 GPU 规格) |
| 请求限流 | 不限流 |
| 副本调节 | 手动调节 |
| 副本数量 | 1 |
| 调度策略 | 优先占满整机 |
十九、5.3 配置高级选项(可选)
| 配置项 | 推荐值 |
| 是否鉴权 | 推荐 开启 ;开启后调用方需在请求 Header 中携带平台生成的 Token。 |
| 服务日志投递 | 将请求 / 响应实时日志投递到日志服务,用于在线问题排查,需要有 CLS 权限。 |
注意:说明:
注意:生产服务建议同时开启 鉴权 与 推理表 :前者保证调用安全,后者为后续模型监控与重训提供事实数据。资源规格与副本数量的弹性伸缩详见 资源配置与自动伸缩 。
20、5.4 保存并启动
点击 保存并启动 ,平台校验必填项后拉起计算资源并加载模型,状态依次进入 未就绪 > 启动中 > 运行中 (通常 3~5 分钟);也可先 保存 ,稍后在服务详情页启动。
22、6.1 获取服务调用信息
1. 服务进入 运行中 后,在模型服务列表点击服务名 churn_predict_service 进入 服务详情页, 点击服务调用 ,复制 调用地址 。
2. 获取鉴权密钥(<token>) :在服务详情页切换到 服务鉴权 标签页,确认 开启鉴权 开关已打开;在密钥列表中找到状态为 已启用 的密钥(默认有一条 default-key),点击 密钥 列的复制按钮复制其值。该值即为调用示例中 Authorization: Bearer <token> 的 <token>。如需多个密钥,可点击 新增密钥 生成。
3. 单击顶部操作区的 服务调用 ,还可查看签名密钥、签名计算指引与 cURL / Python 调用示例;若开启了鉴权,调用时需按指引携带鉴权信息(如在请求 Header 中携带 Authorization: Bearer <token>)。
调用示例(cURL,启用鉴权):
curl -X POST "https://<service-url>/predict" \\ -H "Authorization: Bearer <token>" \\ -H "Content-Type: application/json" \\ -d '{"dataframe_records": [{ "age": 27, "gender": "Male", "tenure_months": 70, "monthly_charges": 112.99, "total_charges": 7410.38, "contract_type": "One Year", "payment_method": "Credit Card", "num_support_tickets": 5, "avg_monthly_usage": 271.91 }]}'
23、6.2 通过 MLflow Deployments SDK 调用(推荐)
在 Notebook 中可通过 DataBuddy 部署插件 wedata3-mlflow-tcdeploy-plugin 接入 MLflow Deployments API(target 固定为 tcdeploy)发起推理。先安装插件(机器学习 镜像通常已预装);平台内运行时临时密钥与工作空间上下文由 Notebook 内核自动注入,无需手动配置:
%pip install "wedata3-mlflow-tcdeploy-plugin"
from mlflow.deployments import get_deploy_client# target 固定为 "tcdeploy"client = get_deploy_client("tcdeploy")# 控制台部署的服务,可通过 list_deployments() 获取服务组 ID(返回项的 name 即 service_group_id)service_group_id = client.list_deployments()[0]["name"]# predict 的 deployment_name 传服务组 ID(service_group_id,形如 msg-xxxxxx),不是服务名称result = client.predict( deployment_name=service_group_id, inputs={"dataframe_records": [{ "age": 27, "gender": "Male", "tenure_months": 70, "monthly_charges": 112.99, "total_charges": 7410.38, "contract_type": "One Year", "payment_method": "Credit Card", "num_support_tickets": 5, "avg_monthly_usage": 271.91 }]}, config={"auth_token": "Bearer <token>"}, # 服务开启鉴权时必填)print(result)
注意:说明:
注意:inputs 必须是 JSON 可序列化对象;pandas.DataFrame 需先 df.to_dict(orient="records") 转换后再传,不能直接传入。
24、步骤 7:监控服务运行情况
模型服务的监控分服务、版本两级页面:
·调用监控推理监控与日志
·监控 (版本详情页 > 实例列表下的页签):网络流量(MBytes)、QPS、QPS 限流。
·事件、日志推理监控与日志
调用监控支持按时间范围(近 1 小时、近 24 小时、近 7 天、自定义)查看;版本级监控可按时间粒度(全部 / 1 分钟等)与实例查看。详细指标与日志说明详见 推理监控与日志 。
25、验证结果
完成全部步骤后,你应该看到:
·Catalog 中存在特征表 DataLakeCatalog.<用户名>_ml_db.customer_churn_features,并出现在 数据科学 > 特征管理 列表中。
·实验列表中 churn_classification_v1 状态为 成功 ,含最佳运行记录。
·模型列表中存在已注册的模型 + Version 1,能看到特征溯源和签名。
·模型服务列表中 churn_predict_service 状态为 运行中 。
·调用服务能返回预测结果。
26、总结
在本教程中,你完成了:
·通过特征工程 SDK 把 CSV 注册为特征表,作为特征数据底座。
·用 AutoML 分类实验自动选模、训练、评估。
·在实验管理中查看最佳模型,并完成注册到模型管理。
·把最佳模型一键发布为在线推理服务(含鉴权、监控)。
·通过 MLflow Deployments SDK 调用服务验证推理结果。