Repository Reading Site
本轮操作记录:大模型数据集样本与治理文档编写
这一轮继续沿着大模型课程主线推进,但重点不再是泛泛讲“大模型是什么”,而是把“数据”这一层单独讲透。 目标有四个: 1. 让小白真正看见大模型数据长什么样。 2. 系统解释原始数据、清洗数据、SFT、偏好数据、评测集、RAG 文档的区别。 3. 引入数据版本、数据卡、血缘、隐私和质量治理这些平台工程概念。 4. 为后续训练、微调和部署课程打一个更扎实的数据地
本轮操作记录:大模型数据集样本与治理文档编写
本轮目标
这一轮继续沿着大模型课程主线推进,但重点不再是泛泛讲“大模型是什么”,而是把“数据”这一层单独讲透。
目标有四个:
- 让小白真正看见大模型数据长什么样。
- 系统解释原始数据、清洗数据、SFT、偏好数据、评测集、RAG 文档的区别。
- 引入数据版本、数据卡、血缘、隐私和质量治理这些平台工程概念。
- 为后续训练、微调和部署课程打一个更扎实的数据地基。
Step 1:先确认现有 ml-platform 目录里没有“数据样本”目录
实际命令
find /Users/yuanjun/coding/github/k8s-lab/ml-platform -maxdepth 2 -type d | sort
sed -n '1,220p' /Users/yuanjun/coding/github/k8s-lab/ml-platform/training/train.py
sed -n '1,220p' /Users/yuanjun/coding/github/k8s-lab/18-第十八课-大模型全生态-从数据到训练到部署到治理原理.md
为什么先查这一步
因为我需要先判断:
- 仓库里有没有现成的数据示例可以复用
- 当前
ml-platform是否已经有“数据长相”的学习材料 - 新内容应该补在文档层,还是要同时补示例文件
我看到的结果
ml-platform 当前目录
有:
docstraininginferenceoperatormanifests
但没有:
- 面向大模型的数据样本目录
training/train.py
它展示的是一个传统 ML 的训练脚本,重点在:
- California Housing 数据
- 特征工程
- ONNX / JSON 导出
这对理解通用 ML 很好,但不等于大模型数据工程。
原理解释
这一步让我确认:
这轮不应该只写一篇概念文,还应该补一组真实示例文件,让“数据长相”这件事真正可见。
Step 2:决定新增一个专门的示例数据目录
我新增的位置
为什么放这里
原因有三个:
- 它和
ml-platform主题天然相关。 - 这类文件属于“学习样本资产”,比放在根目录更有组织性。
- 后续如果继续讲 tokenizer、SFT、评测、RAG,都可以继续往这个
examples目录扩展。
原理解释
这是一个小但重要的工程习惯:
文档讲概念,示例文件讲形状,二者最好同时存在,而且目录层次要清楚。
如果只写概念,没有示例文件,读者常常会“似懂非懂”。
如果只有示例文件,没有解释文档,读者又很容易只看见格式,看不见原理。
Step 3:设计示例文件时,我没有只放一种数据,而是故意覆盖 6 类核心数据
我新增的文件
- README.md
- 00-raw-corpus.jsonl
- 01-cleaned-corpus.jsonl
- 02-sft-messages.jsonl
- 03-preference-dpo.jsonl
- 04-eval-set.jsonl
- 05-rag-documents.jsonl
- 06-dataset-card.yaml
为什么不是只放一个 dataset.jsonl
因为如果只给一个文件,小白很容易继续误会:
- “大模型数据集就是一堆 JSONL”
这不够。
我故意把不同用途的数据拆开,是为了让读者直接建立边界感:
00-raw-corpus.jsonl
展示:
- 原始数据带噪声、带 HTML、带 PII、带垃圾内容,是真实世界的样子
01-cleaned-corpus.jsonl
展示:
- 清洗后数据多了质量分、脱敏标记、去重分组等治理字段
02-sft-messages.jsonl
展示:
- 聊天 / 指令微调数据的
messages结构
03-preference-dpo.jsonl
展示:
- 偏好数据不是“一个标准答案”,而是
chosen和rejected
04-eval-set.jsonl
展示:
- 评测集和训练集是两回事
05-rag-documents.jsonl
展示:
- RAG 文档在生态里重要,但不等于训练数据
06-dataset-card.yaml
展示:
- 数据集不是裸文件,还需要元数据说明、用途说明和治理说明
原理解释
这是一个很重要的教学设计:
用“多类最小样本”替代“单类抽象定义”,能更快帮助读者建立概念边界。
Step 4:设计原始数据样本时,故意保留了真实项目里最常见的脏问题
为什么这样做
如果我把原始数据也写得特别干净,那读者会得到错误印象,以为:
- 数据集通常一下载就能训练
这是不真实的。
所以在:
里,我故意放了这些问题:
- HTML 和脚本标签
- 手机号这类 PII
- 营销灌水文本
- 代码样本
原理解释
这样做是为了帮助读者建立一个非常现实的工程认知:
真实原始数据不是“高质量教材”,而是“未经治理的混杂原料”。
而数据工程的价值,正是把这批原料变成可用资产。
Step 5:清洗后数据里,我故意加了治理字段,而不只是留一个 text
我为什么这么做
如果清洗后数据只长这样:
{"text": "..."}
那读者还是容易停留在:
- “清洗就是把文字变干净”
这不够。
所以在:
里,我额外加了:
source_doc_idquality_scorepii_removeddedup_group
原理解释
这些字段在教学上非常关键,因为它们分别对应:
- 来源追踪
- 质量评估
- 合规状态
- 去重关系
这能帮助读者更早理解:
清洗后的数据不只是“文本变干净了”,而是“进入治理体系了”。
Step 6:主文档没有只解释名词,而是围绕“边界感”来组织
我新增的主文档
这篇文章的主线不是“数据多重要”,而是“把边界彻底分清”
我重点拆开的边界包括:
- 原始数据 vs 训练就绪数据
- 预训练数据 vs SFT 数据
- SFT 数据 vs 偏好数据
- 训练集 vs 评测集
- 训练数据 vs RAG 文档
- 数据文件 vs 数据资产
- 数据版本 vs 模型版本
- 数据说明文档 vs 数据卡
原理解释
因为小白最容易犯的错误不是“没见过名词”,而是:
- 把不同层级和不同用途的数据对象混淆
一旦这些边界不清,后面你无论学:
- SFT
- DPO
- RAG
- 训练平台
- 模型注册
都会混乱。
Step 7:文档里专门强调了 train / validation / test 和泄漏问题
为什么要把这部分单拎出来
因为很多人做大模型时,会误以为:
- 评测数据只是“少量题库”
- 混进去一点也没关系
这是非常危险的。
所以我在正文里专门把:
trainvalidationtest- data leakage
拆开讲了。
原理解释
这是在给后面真正做训练和评测埋关键伏笔。
如果一个人从第一天就没有建立“评测集必须隔离”的意识,那后面做任何 benchmark 都会有很大失真风险。
Step 8:我没有把这一课写成“数据工具列表”,而是先讲通用原则
为什么不先讲 DVC / LakeFS / Label Studio / Airflow 这些工具
因为工具会变,原则相对稳定。
用户现在最缺的是:
- 知道为什么要做这些事
而不是:
- 立刻装某个工具
所以这篇文章更关注:
- 数据对象的定义
- 各类数据的边界
- 清洗和治理的目标
- 版本和血缘的必要性
- 企业里最容易踩的坑
原理解释
这是一个很重要的教学取舍:
初期先讲稳定原则,再讲具体工具,读者更容易形成长期可迁移的能力。
本轮新增文件
主文档
操作记录
示例数据目录
- ml-platform/examples/19-llm-data/README.md
- ml-platform/examples/19-llm-data/00-raw-corpus.jsonl
- ml-platform/examples/19-llm-data/01-cleaned-corpus.jsonl
- ml-platform/examples/19-llm-data/02-sft-messages.jsonl
- ml-platform/examples/19-llm-data/03-preference-dpo.jsonl
- ml-platform/examples/19-llm-data/04-eval-set.jsonl
- ml-platform/examples/19-llm-data/05-rag-documents.jsonl
- ml-platform/examples/19-llm-data/06-dataset-card.yaml
本轮没有做的事
这轮仍然是概念与样本建设,没有实际执行:
- 数据清洗脚本
- 数据集切分脚本
- 标注平台部署
- 训练任务提交
原因不是偷懒,而是教学顺序上的刻意安排:
只有先把“数据对象和治理目标”讲清楚,后面再做脚本和平台,读者才会真正明白自己在搭什么。
下一步最自然的推进
这节课讲完,后面最自然就该进入:
- 训练和微调
也就是重点讲透:
- SFT 是怎么喂进去的
- LoRA 到底改了什么
- checkpoint 是什么
- adapter 和 base model 是什么关系
- 训练完的模型产物长什么样
所以我建议下一课直接推进:
20-第二十课-大模型训练-SFT-LoRA-Checkpoint-Adapter与模型产物原理.md