提示
预计用时 45 分钟。学习目标:完成「特征注册 > AutoML 训练 > 模型上线」的端到端 ML 闭环。
本教程面向数据科学家 / ML 工程师 ,演示用 DataBuddy 完成一条最小可用的机器学习生产链路:从特征数据上传,到 AutoML 自动选模、训练,再到一键部署。45 分钟后您将得到一个可对外推理的在线模型服务。
场景介绍
某电商平台希望预测客户流失(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.1 CSV 文件上传到表
1. 点击左侧导航数据接入 ,点击文件上传到表。
2. 建表方式选择创建新表,选择目标 schema 作为存储位置。
3. 点击建表,建表成功后会自动跳转。
4. 记住上传目录 :表名右侧点击可复制表路径。
1.2 用特征工程 SDK 把 CSV 注册为特征表
特征表是同时具备 主键 与 时间戳键 的表。通过特征工程 SDK 注册后,该表既可作为 AutoML 训练数据,又能被特征管理模块统一索引与复用。
1. 在同一文件夹新建 Notebook
prepare_churn_data.ipynb,启动使用计算资源的 Kernel:点击右上角 未连接 ,搜索并选择用于机器学习的资源组进行连接,待状态变为已连接 。镜像在创建计算资源时选择 :AutoML / 特征工程需使用 机器学习 场景镜像,而非默认基础镜像。创建计算资源时,在「镜像版本」处勾选 机器学习 即可切换到机器学习场景镜像,具体操作见 创建计算资源 。
1. 首次运行先确认 SDK 已安装 。新建一个单元格执行下面的检查;若无输出说明当前内核未安装,取消注释执行安装,装完务必重启内核 再继续:
# 检查特征工程 SDK 是否已安装(机器学习镜像已预装,会打印版本)%pip list | grep wedata3-feature-engineering# 未安装时取消下一行注释执行(要求内核 Python ≥ 3.10、MLflow ≥ 3.0.0),装完重启内核# %pip install "wedata3-feature-engineering[mlflow3]==0.2.3"
1. 在下一个单元格运行建表代码。在
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。
常见报错及解决方案请参考 最佳实践与异常排查。提示
create_table 传入 df 时会用它推断表结构并写入首批数据;后续如需增量追加,可调用 fe.write_table(name=..., catalog_name=..., database_name=..., df=新数据, mode="append")。特征表创建后会自动出现在 数据科学 > 特征管理 列表中。特征工程的完整用法(训练集构建、离线批量打分、在线特征发布等)请参考 特征管理 。
步骤 2:创建 AutoML 分类实验
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:查看实验结果,识别最优模型
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:发布在线推理服务
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 权限。 |
提示
5.4 保存并启动
点击 保存并启动 ,平台校验必填项后拉起计算资源并加载模型,状态依次进入 未就绪 > 启动中 > 运行中 (通常 3~5 分钟);也可先 保存 ,稍后在服务详情页启动。
步骤 6:调用服务做推理验证
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}]}'
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") 转换后再传,不能直接传入。完整的部署、调用、扩缩容用法详见 部署在线推理服务(REST API) 。步骤 7:监控服务运行情况
模型服务的监控分服务、版本两级页面:
调用监控推理监控与日志
监控 (版本详情页 > 实例列表下的页签):网络流量(MBytes)、QPS、QPS 限流。
事件、日志推理监控与日志
验证结果
完成全部步骤后,您应该看到:
Catalog 中存在特征表
DataLakeCatalog.<用户名>_ml_db.customer_churn_features,并出现在 数据科学 > 特征管理 列表中。实验列表中
churn_classification_v1 状态为 成功 ,含最佳运行记录。模型列表中存在已注册的模型 + Version 1,能看到特征溯源和签名。
模型服务列表中
churn_predict_service 状态为 运行中 。调用服务能返回预测结果。
总结
在本教程中,您完成了:
通过特征工程 SDK 把 CSV 注册为特征表,作为特征数据底座。
用 AutoML 分类实验自动选模、训练、评估。
在实验管理中查看最佳模型,并完成注册到模型管理。
把最佳模型一键发布为在线推理服务(含鉴权、监控)。
通过 MLflow Deployments SDK 调用服务验证推理结果。