返回 S01~S90 教材库
S03 · 总 Day 093教材已备 ≠ 学习已完成

S03:合成事件、来源标识与字段级 Lineage

数据 lineage 是一条记录或数据集从何而来、经过哪些版本化变换、生成了什么输出的可追踪关系;合成事件提供了不触碰真实敏感数据的学习载体。

2026-11-25syntheticdata、sourceid、schemaversion、lineage

内容类型:预习教材(不代表已完成)
日期:2026-11-25
阶段:P2 · AI Systems Engineering 90
总路线:Day 093 / 360
周次 / 节奏:W1 · 周三引导练习
状态:教材已备;学习未完成
主题:synthetic data、source id、schema version、lineage

一句话定义

数据 lineage 是一条记录或数据集从何而来、经过哪些版本化变换、生成了什么输出的可追踪关系;合成事件提供了不触碰真实敏感数据的学习载体。

学习目标

  1. 能利用现有 AML generator 观察合成事件,而不声称它代表真实分布。
  2. 能为事件补齐 source id、event/ingest time、schema version、generator version 和 run id。
  3. 能区分 dataset-level、record-level 与 field-level lineage 的成本和用途。
  4. 能沿着一个派生字段反向解释其来源与转换。

核心知识

合成数据的价值是安全、可控和可复现:可以故意制造边界样本、迟到事件或缺失字段。但它不能自动证明真实业务上的质量、偏差和覆盖率。generator 的参数、种子和代码版本本身也是 lineage;若缺少这些信息,即使输出文件还在,也很难解释为何出现某种分布。

source_id 回答“来自哪个逻辑来源”,record_id 回答“是哪条事实”,run_id 回答“由哪次执行产生”,schema_version 回答“按哪套结构解释”。这些标识职责不同,不应全部塞进一个随机 UUID 后失去语义。一个派生字段还需记录原始字段集合与变换版本,例如 amount_base = amount * fx_rate 同时依赖金额、汇率、汇率时间与舍入规则。

数据集级 lineage 成本低,适合回答某表来自哪些输入;记录级能追踪单条事件但体量更大;字段级最精细,也最容易造成存储与治理复杂度。学习阶段只需为 2~3 个关键字段手工建立映射。

机制与推导

可把 lineage 建模为有向无环图:节点是 dataset、job 或 artifact,边表示 consumesproduces。一次运行 r

[ (D_{out}, metadata)=T_{v}(D_{in},config,seed,r) ]

risk_band = bucket(score),字段 lineage 至少是 (score, bucket_rule_version) → risk_band。当结果错误时,追溯顺序是输出记录→运行→变换版本→输入记录→源系统,而不是只查看最后一段代码。

Lineage 不等于质量。它告诉你坏结果从哪里来,却不保证来源正确;也不等于审计日志,后者还关心谁在何时执行、权限与业务动作。

最小练习或观察步骤

  1. 只读 src/aml/generator.tssrc/aml/types.ts,确认生成逻辑和类型边界。
  2. 若环境允许,生成少量合成事件;否则手工取 3 条结构示例,不虚构运行结果。
  3. 为每条记录附加 source id、两个时间、schema/generator version、seed 或 run id。
  4. 选择一个派生字段,写出 inputs → transform → output 的字段映射。
  5. 画一个 source dataset→generator run→validated dataset 的小 DAG。
  6. 假设 generator version 改变,说明哪些产物需新版本、哪些事实仍可复用。

常见误区与边界

  • 把合成数据称作匿名化真实数据;两者生成机制和风险完全不同。
  • 只记录文件名,不记录 generator 参数、种子和代码版本。
  • 认为有 lineage 就能证明数据无偏、无泄漏或业务正确。
  • 对所有字段实施昂贵追踪,却没有先识别高影响字段。
  • 把 source id、record id 与 run id 混用,导致无法回答具体问题。

系统场景连接

AML 案例中的风险分可能来自交易金额、地域、账户历史和规则配置。如果人工审核质疑一个分层,字段 lineage 能指向当时使用的输入与规则。Web3 场景中,一个地址标签可能由链上事件、第三方标签与聚类规则组合生成;若没有来源与版本,模型会把变化的标签当作稳定事实。后续 artifact registry 和 EvalOps 都会复用本日的可追踪思想。

自检问题

  1. generator seed 为什么属于 lineage,而不仅是测试参数?
  2. dataset、record 与 field lineage 分别适合回答什么问题?
  3. lineage、quality 和 audit 的边界在哪里?
  4. 一个汇率换算字段至少依赖哪些输入和规则?

专业课程对齐

  • 阅读 OpenLineage 官方文档 中 Job、Run、Dataset 模型,具体把 AML generator 映射为 job、一次生成映射为 run、输入配置与输出 JSONL 映射为 dataset/artifact。
  • 阅读 Stanford CS329S 的 data lineage、data quality 与 reproducibility 相关材料,辨别“能追溯”与“质量可靠”两个不同主张。
  • 阅读 Full Stack Deep Learning 2022 的 data management 讲次,关注训练数据生成过程需要保存哪些上下文,并与 generator seed/version 对照。

深入学习提示

从一个字段向后追,不要一开始画企业级全景。先问“这个值由哪些事实和规则共同决定”,再标注每个节点的版本与所有者。阅读 OpenLineage 时只抓住 job/run/dataset 三元关系,观察它无法直接表达的业务语义。最后写出一条反例:lineage 完整但源数据本身错误,由此明确追踪、验证和审计需要协同而不能互相替代。

学后填写区

  • 实际观察的 generator 内容:
  • 采用的标识字段:
  • 一个字段的反向路径:
  • lineage 无法证明的事项:
  • 下一步希望补充的质量规则:
重点主线 · H01 · 任务契约与上下文架构本周配套机制实验 · W1 · 历史数据:当时发生,不等于当时已知 →详细讲义、离线示例与源码;按需要选读,不新增必交任务。
本页是未来 P2 的预习教材。等 P1 完成并正式进入 P2 后,再填写真实理解、练习结果和不确定项;现在阅读不会改变P1 唯一进度账本