Google PDE: 机器学习、AI 与数据服务 — 学习指南
属于 Google Professional Data Engineer — 学习指南. 使用经过验证的答案练习: Google 考试中心, 或参加限时模拟考试: ExamRoll.io.
概述
在 Google Cloud 上构建生产级的机器学习和数据服务系统,需要严谨的数据建模、稳健的流水线以及可靠的运维保障。本节内容涵盖:在 BigQuery ML 中进行模型开发;在 Vertex AI 上进行全生命周期管理(包括数据集、训练、流水线、端点、特征工程和监控);预测路径设计(批量与在线);特征存储与时间点正确性(point-in-time correctness);数据标注与偏差控制;向量搜索与检索增强生成(RAG)模式;数据血缘与治理;模型漂移监控与再训练触发器;分析服务层;以及保护隐私的数据使用方式。重点将放在设计决策、扩展策略以及需要避免的常见故障模式上。
BigQuery ML 与特征工程
BigQuery ML 支持直接在 SQL 中进行训练、评估和预测,从而避免了数据迁移,并将模型开发与分析数据集紧密结合。
模型创建:使用 CREATE MODEL,明确指定标签列和特征转换,以避免数据泄露并标准化输入。 示例: CREATE OR REPLACE MODEL ds.churn_model OPTIONS( model_type=‘logistic_reg’, input_label_cols=[‘churned’], l1_reg=0.0, l2_reg=1.0, data_split_method=‘AUTO’ ) TRANSFORM( standardize(tenure_months) AS tenure_std, quantile_bucketize(monthly_spend, 10) AS spend_bkt, one_hot_encoder(region) AS region_ohe, ml.feature_cross(struct(bucketize(lat, 60), bucketize(lon, 60))) AS latlon_cross, (xx + yy) AS r2 – 在需要时添加圆形决策边界支持 ) AS SELECT churned, tenure_months, monthly_spend, region, lat, lon, x, y FROM ds.customer_features;
评估:使用 ML.EVALUATE 获取与模型类型相匹配的评估指标(例如,分类模型的 ROC AUC,回归模型的 RMSE)。跟踪基线和置信区间;保持评估数据集按时间排序,以近似模拟未来的性能。 SELECT * FROM ML.EVALUATE(MODEL ds.churn_model, TABLE ds.eval_features);
预测:使用 ML.PREDICT 在 BigQuery 中进行类在线(online-like)评分,或导出模型到其他地方进行服务化部署。当使用 BigQuery 进行同步评分时,需考虑模型的延迟预算;对于高 QPS 的 API,应将模型部署到托管端点。 SELECT user_id, predicted_churn FROM ML.PREDICT(MODEL ds.churn_model, TABLE ds.scoring_candidates);
特征转换:优先使用声明式的 TRANSFORM 函数(如 standardize、one_hot_encoder、bucketize、quantile_bucketize、ml.feature_cross),以保证可复现性,并将预处理逻辑锁定在模型工件中。保持转换操作的幂等性和确定性。
运维考量与故障模式:
- 流式插入与查询新鲜度:BigQuery 流式插入具有最终一致性。对于必须包含刚写入行的实时聚合,运行时应设置一个时间延迟,该延迟需超过实测的流式缓冲区延迟。一个保守的起点是等待大约 2 倍于观测到的平均可用性延迟的时间,或者在数据落地到 BigQuery 之前,在 Dataflow 中设计水印(watermark)和迟到数据处理机制。
- 成本与并发:如果按需 slot 的并发限制成为瓶颈,应切换到固定费率(flat-rate)或弹性预留(flexible reservations),并实施工作负载管理(通过预留层次结构和分配)以确保可预测的容量。
- 数据质量:对于包含格式错误行的 GCS 批量加载任务,应使用 Dataflow 来解析和验证记录,将合规的行写入 BigQuery,将错误的行写入死信表(dead-letter table)以供排查。避免因少量坏数据导致 BigQuery 拒绝整个文件。
Vertex AI 生命周期、预测路径和特征库
Vertex AI 为训练、流水线、模型注册表、端点和监控提供端到端的托管服务。
数据集和训练:注册数据集和元数据;在适当情况下使用自定义训练作业或 AutoML。根据约束条件选择算法:
- 资源受限的单虚拟机工作负载因其内存/CPU 需求较低,更适合使用简单模型(例如,线性回归或逻辑回归)。
- 高维任务通常可以从特征选择或合并冗余特征中受益,从而在精度损失最小的情况下加快训练速度。
- 当正例稀少且预计未来异常将与已知异常特征相似时,适合使用无监督异常检测。
流水线:实施 Vertex AI Pipelines,将数据准备、训练、评估和部署门控进行代码化。持久化参数、代码提交的 SHA、容器摘要和数据集快照,以保证可复现性。
端点和预测:
- 在线预测适用于低延迟工作负载。配置最小和最大副本数以及自动扩缩策略;在 P95 延迟下对模型进行性能分析,并相应地设置 SLO。添加金丝雀部署和流量拆分以实现安全发布。
- 批量预测适用于吞吐量优先的作业(例如,夜间评分)。批量处理避免了单次请求的开销,对于大批量数据更便宜,但延迟较高。
特征工程和特征库:使用 Vertex AI Feature Store 实现:
- 用于训练的离线存储,位于 BigQuery 中。
- 用于按实体 ID 进行低延迟查找的在线存储。 通过共享相同的转换逻辑(例如,Dataflow 库或特征定义)并使用特征时间戳来防止数据泄露,从而强制实现训练-服务一致性。通过时间连接(temporal joins)来保持时间点正确性:
undefined
设计权衡:
- 在线存储的延迟与新鲜度:由 Bigtable 支持的在线存储提供低延迟;确保回填和流式更新插入操作是幂等的。过度的写入偏斜或热点键会降低性能——设计实体 ID 以均匀分布流量。
- 批量与在线:批量处理降低了服务复杂性和成本,但可能提供过时的预测。对于动态行为(例如,推荐),应将定期重训练与在服务时使用最新特征相结合。
数据质量、标注、偏见、隐私和治理
高质量的标签和严格的治理是构建可信赖模型的基础。
标注和不平衡:
- 使用清晰的标注指南和质量保证(QA)抽样。跟踪标注者间一致性。
- 通过分层抽样、重加权或重采样来解决类别不平衡问题;监控每个类别的精确率/召回率,而不仅仅是总体准确率。
- 有意保留 null 值。如果模型需要数字输入,则显式编码 null 值(例如,使用 0 并附带一个 “was_null” 指示符),并验证其对下游的影响;避免静默地丢弃包含信息的缺失值。
过拟合和泛化:
- 缓解措施包括使用更多样化的训练数据、更小的特征集和更强的正则化。
- 提前停止和交叉验证对神经网络至关重要;当架构或硬件扩展不可行时,子抽样可以减少训练时间。
治理和血缘:
- 使用 Vertex ML Metadata、Model Registry 和 Data Catalog 跟踪血缘。记录数据集版本、转换、超参数和环境。
- 审批工作流:在部署前要求人工批准,使用 Model Registry 的状态和带有策略检查的 Cloud Build/Deploy。将工件存储在 Artifact Registry 中;对容器进行签名,并强制执行 Binary Authorization 以实现门控发布。
监控、漂移和重训练:
- 启用模型监控以检测预测偏移、特征漂移和性能下降。使用分布度量(例如,PSI、KL 散度)以及在真实标签(ground-truth)延迟到达时进行感知延迟的评估。
- 基于统计上显著的漂移、SLO 违规或业务事件窗口建立重训练触发器。自动化重训练流水线,但通过评估和偏见检查来控制模型晋升。
- 警惕由上游模式(schema)变更引起的静默数据漂移;强制执行模式契约,并在特征缺失或发生变化时发出警报。
隐私感知设计:
- 使用 Data Catalog 策略标签对数据进行分类;在 BigQuery 中通过数据脱敏策略强制执行列级和行级安全性。
- 最小化数据收集;实施与目的限制相关的数据保留和删除 SLA。
- 应用 DLP 进行发现和去标识化;使用 CMEK 加密数据;通过 VPC Service Controls 隔离服务;确保细粒度的 IAM 并使用具有最小权限的专用服务账户。
- 对于监控和日志记录,对 PII 进行脱敏处理,并在非必要时避免记录请求负载(payload)。
向量搜索、RAG 流水线与分析服务层
现代的检索和服务需要向量原生组件和成熟的分析存储。
向量搜索和嵌入:
- 使用 Vertex AI Vector Search 或 BigQuery 向量搜索进行大规模、低延迟的最近邻检索;选择带有 pgvector 的 AlloyDB for PostgreSQL 以满足以应用为中心的语义和事务性需求。
- 使用 Vertex Pipelines 批量生成嵌入;将向量与密集元数据一同存储;智能地进行分区和索引(例如,按文档域)以控制延迟。
检索增强生成(RAG)流水线:
- 通过 Dataflow 或 Dataproc 注入内容,提取文本、分块、嵌入并索引到向量存储中。维护真实来源(source-of-truth)的引用以实现可追溯性。
- 实施新鲜度策略:定期重新嵌入、源更新时失效、以及在交换索引前通过金丝雀索引验证质量。
- 监控检索质量(命中率、MRR、nDCG)和内容安全;对受限数据强制执行护栏和访问控制。
分析服务层和数据产品:
- 在 BigQuery 中管理铜/银/金级数据产品;使用分区和聚类来最小化扫描成本。物化视图可以加速常见查询。
- 对于低延迟键值或高 QPS 计数器,使用具有良好分布行键的 Bigtable;通过对前缀进行加盐或哈希来避免热点问题。
- 对于 OLTP 工作负载和强一致性,使用 Cloud SQL 或 Spanner;通过计划的 ELT 将分析任务卸载到 BigQuery。
- 流式设计:Pub/Sub → Dataflow → BigQuery/Bigtable,并启用自动扩缩。监控积压(backlog)和水位线(watermark)指标;默认的自动扩缩足以应对弹性负载,同时控制成本。
操作提示:
- 要在特定的 BigQuery 表插入作业上触发通知,请使用高级过滤器将相关的 Cloud Logging 条目导出到 Pub/Sub,然后从该订阅连接警报:
undefined
实际问题场景
AcmeStyle 是一家时尚电商平台,希望随着用户偏好每小时的变化,保持其站内推荐的实时性。他们流式传输点击和购买行为,并需要将这些行为与商品目录上下文相结合,以低延迟和可控的成本刷新推荐。
方法:
- 流式注入和质量门控
- 使用 Pub/Sub 从 Web 和移动端注入事件。一个 Dataflow 流处理作业会验证 schema、用商品目录数据丰富事件,并写入:
- 将清洗后的事件写入 BigQuery 分区表(按 event_date 分区),用于离线分析和训练。
- 将聚合的用户特征更新写入以 user_id 为键的 Vertex AI Feature Store(在线存储)。 理由:Pub/Sub 解耦了生产者和消费者;Dataflow 通过幂等更新提供精确一次(exactly-once)语义;分区的 BigQuery 管理成本和保留策略;在线存储支持毫秒级查找。
- 具有时间点正确性的特征定义
- 定义滚动 CTR、品牌偏好度和新近度等特征,并使用明确的 event_time。物化到:
- BigQuery 中的离线存储,用于训练时进行时间连接(temporal join),约束条件为 feature_ts <= label_ts。
- 在线存储,用于服务,并设置 TTL 以防止数据陈旧。 理由:明确的时间戳可防止标签泄漏;离线和在线之间一致的定义确保了训练-服务的一致性。
- 模型训练与血缘
- 实施一个 Vertex AI Pipeline,该流水线:
- 使用时间窗口(例如,过去 30 天)从 BigQuery 提取训练数据。
- 应用与服务中相同的转换(使用共享库)。
- 训练一个排序模型;将元数据(数据集快照 ID、代码提交的 SHA、超参数)记录到 ML Metadata,并将模型注册到 Model Registry。 理由:Pipelines 使运行可复现和可审计;Model Registry 集中管理版本和审批。
- 批量和在线预测路径
- 每晚进行批量预测,对整个商品-用户矩阵进行评分,并将结果存入 BigQuery,用于回填和 A/B 测试。
- 通过一个 Vertex 端点进行在线预测,该端点:
- 从在线存储中获取最新的用户特征。
- 对按库存和可售状态过滤后的 top-K 候选集进行评分。
- 短期缓存结果以吸收突发流量。 理由:批量预测提供了广度和成本效益;在线预测捕捉了高价值会话的最新行为。自动扩缩的端点维持延迟 SLO;缓存降低了尾部延迟和成本。
- 监控、漂移检测和再训练策略
- 启用模型监控以检测特征漂移和预测偏差;将分布与训练基线进行比较。跟踪 CTR/CVR 的 SLO,并在性能下降时发出警报。
- 使用结合了历史和新数据的滚动窗口持续进行再训练;当漂移超过阈值或至少每周触发一次再训练。 理由:时尚趋势变化迅速;将历史与最新信号融合可以在保持更新的同时稳定学习过程。
- 隐私与治理
- 使用 Data Catalog 策略标签标记 PII 列;在 BigQuery 中强制执行列级安全性,并在需要时进行数据脱敏。对原始事件运行 DLP 扫描;仅存储必要的字段。
- 通过与 Model Registry 审批状态集成的 Cloud Build 触发器,要求人工批准才能将模型从预发布(staging)环境提升到生产环境。 理由:最小权限访问降低了风险;门控部署确保了合规性和安全性。
- 成本与容量控制
- 使用 BigQuery 预留来保证训练窗口期间可预测的槽位容量。
- 根据积压(backlog)自动扩缩 Dataflow 工作器;通过哈希 user_id 前缀来分片特征存储中的热键,以防止热点问题。 理由:可预测的容量避免了资源争用;自动扩缩使支出与需求相匹配;均衡的键可维持低延迟更新。
该设计通过将用于服务的流式特征与基于近期数据的定期再训练相结合,在保持大规模下的正确性、治理和可预测性能的同时,确保了推荐内容的新鲜度。
← 工作流编排与流水线自动化 · 所有领域 · 数据治理、安全性、可靠性与成本运营 →
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →