1. AWS机器学习数据平台集成全景

在真实企业环境中,机器学习项目失败的原因往往不在算法本身,而在于数据平台与机器学习系统之间的集成断裂:训练数据散落在 S3、RDS、Kinesis 与本地数据仓库中,特征口径不一致,训练与推理使用不同的数据路径,模型上线后无法稳定获取实时特征。本课程要解决的核心问题,就是如何以 AWS 原生服务为骨架,把"数据产生—数据存储—数据处理—特征管理—模型训练—模型部署—监控回流"串成一条可运维、可复现、可扩展的链路。

一、核心概念:数据平台与机器学习平台的边界

先明确两个平台的分工。数据平台负责数据的采集、存储、清洗、编目与治理,典型服务包括 Amazon S3(数据湖底座)、AWS Glue(ETL 与数据目录)、Amazon Athena(交互式查询)、Amazon Kinesis(流式接入)、Amazon Redshift(数仓)、AWS Lake Formation(权限治理)。机器学习平台负责特征工程、训练、调优、部署与监控,典型服务包括 Amazon SageMaker 的 Processing、Training、Tuning、Endpoints、Model Monitor、Feature Store,以及 Amazon Bedrock(基础模型调用)。

集成的本质是让两个平台共享同一份"数据契约":同一份数据在离线训练与在线推理中具有一致的定义、一致的时间语义、一致的权限边界。这里有两个关键概念需要先建立:

  • 特征一致性(Training-Serving Skew):训练时用批处理 SQL 计算的特征,与线上用实时流计算的特征,如果逻辑不同,模型效果会显著下降。SageMaker Feature Store 的离线存储(Offline Store,落在 S3)与在线存储(Online Store,低延迟键值查询)正是为解决这一问题而设计。
  • 数据血缘与版本:一次训练必须能追溯到具体的数据快照、特征版本与代码版本。S3 版本控制、Glue Data Catalog 表版本、SageMaker 模型注册表共同构成可追溯链条。

二、集成挑战:四个最容易出问题的环节

挑战一:数据接入的批流割裂。业务库通过 DMS 或 Glue 批量入湖,日志通过 Kinesis Firehose 流式入湖,两条路径的 Schema 演化节奏不同,容易在数据湖中形成"同一实体多份定义"。

挑战二:权限与网络边界。S3 桶策略、Lake Formation 表级权限、SageMaker 执行角色、VPC 终端节点四者需要协同。常见故障是 SageMaker 训练任务位于私有子网,却未配置 S3 Gateway Endpoint,导致任务卡在下载数据阶段。

挑战三:特征存储的双写一致性。向 Feature Store 写入时,需要同时更新在线存储与离线存储。若只写在线存储,后续无法用历史数据重训;若只写离线存储,线上推理拿不到特征。

挑战四:成本与性能的权衡。Athena 按扫描量计费,Parquet + 分区裁剪可把一次查询从数百 GB 降到几 GB;SageMaker 训练实例按秒计费,Spot 训练可降本但需处理中断检查点。

AWS 机器学习数据平台集成全景 数据源 → 数据湖/数仓 → 特征平台 → 训练/部署 → 监控回流 数据源 业务库 RDS 日志 Kinesis 第三方 API 数据平台 S3 数据湖(Parquet) Glue ETL + Data Catalog Athena / Redshift 查询 特征平台 Feature Store 在线存储 Feature Store 离线存储 特征组 / 特征定义 机器学习平台 SageMaker Training Model Registry 版本 Endpoint 实时推理 监控与回流 Model Monitor 数据漂移 / 模型质量 · CloudWatch 指标 · 触发重训 反馈重训 四个集成关键点 ① 批流统一 Glue 批 + Firehose 流 统一 Schema 与分区 ② 权限与网络 IAM Role + Lake Formation VPC Endpoint 打通 S3 ③ 特征一致性 在线/离线双写 避免训练-推理偏移 ④ 成本与性能 Parquet + 分区裁剪 Spot 训练 + 检查点

三、典型架构:一条可落地的端到端链路

把上面的分层落到具体服务,一条典型的推荐系统链路可以这样组织:

  1. 接入:用户行为事件经 Kinesis Data Streams 进入,Firehose 以 60 秒缓冲写入 s3://ml-datalake/raw/events/dt=YYYY-MM-DD/hour=HH/;业务库通过 AWS DMS 持续复制到 S3 的 raw/orders/ 前缀。
  2. 加工:Glue 作业每日 02:00 触发,读取 raw 层,做去重、类型转换、会话切分,写出 Parquet 到 curated/ 层,并更新 Glue Data Catalog 表 curated_user_behavior。
  3. 特征:Glue 作业同时计算用户近 7 日点击率、商品热度等特征,写入 SageMaker Feature Store 的 Feature Group user_click_features,在线存储供推理实时读取,离线存储供训练回溯。
  4. 训练:SageMaker Training Job 从 Feature Store 离线存储拉取训练集,使用 ml.m5.4xlarge 单机训练,产出模型注册到 Model Registry,版本号 v1.3。
  5. 部署与监控:Endpoint 上线后,Model Monitor 每小时采样推理请求,与训练基线对比,当特征分布 PSI 超过 0.2 时触发 CloudWatch 告警,并启动重训流水线。

四、课程实战项目:电商用户行为预测平台

本课程贯穿一个完整项目:为一家电商构建"用户次日复购预测"平台。项目数据规模设定为约 2000 万条行为事件、50 万用户、5 万商品,全部使用示例数据,便于在个人 AWS 账户中复现。项目分五个阶段推进:

阶段目标关键产出
阶段一 数据入湖打通批流两条接入路径S3 分区数据湖 + Glue Catalog 表
阶段二 特征工程建立可复用特征Feature Group 定义 + 离线/在线双写
阶段三 模型训练训练并调优 XGBoost 模型Model Registry 中的候选模型
阶段四 部署推理上线实时 Endpoint可调用的推理接口 + 自动扩缩容策略
阶段五 监控回流建立漂移检测与重训闭环Model Monitor 基线 + 告警规则

项目验收标准不是"模型准确率多高",而是链路是否可复现:给定同一份原始数据与同一份代码,能否在 24 小时内重新产出同样的特征、同样的模型版本、同样的推理结果。这一标准会贯穿后续每一章的实践环节。

学习建议:在进入第 2 章之前,先在自己的 AWS 账户中创建一个专用 S3 桶(例如 ml-datalake-<你的账号ID>),开启版本控制与默认加密,并记录下区域(建议 us-east-1 或 ap-northeast-1)。后续所有实验都会复用这个桶,提前建好可以避免每章重复配置。
成本提醒:本课程实验涉及 SageMaker 训练与 Endpoint。Endpoint 按小时计费,实验结束后务必执行删除操作;训练任务建议使用 Spot 实例并设置 MaxWaitTimeInSeconds。建议为实验账户设置 AWS Budgets 告警,阈值设为 20 美元。