Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions docs/zh/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,27 +29,27 @@
- [本篇目录](part1/index.md)
- [第1章:大语言模型时代的数据革命](part1/ch01_data_change.md)
- [第2章:LLM数据生命周期与质量评估框架](part1/ch02_quality_framework.md)
- [第3章 AI原生数据栈与成本治理](part1/ch03_data_stack.md)
- [第3章:AI原生数据栈与成本治理](part1/ch03_data_stack.md)

## 第二篇:文本预训练数据工程

面向大规模文本语料,覆盖数据来源、采集版权、清洗去重、分词序列化、高效加载和质量闭环。

- [本篇目录](part2/index.md)
- [第4章 数据源、采集与版权](part2/ch04_data_sources.md)
- [第5章 清洗、去重与去污染](part2/ch05_cleaning_dedup.md)
- [第6章 分词、序列化与高效加载](part2/ch06_tokenization_loading.md)
- [第7章 数据评估、质量闭环与运营迭代](part2/ch07_data_operations.md)
- [第4章:数据源、采集与版权](part2/ch04_data_sources.md)
- [第5章:清洗、去重与去污染](part2/ch05_cleaning_dedup.md)
- [第6章:分词、序列化与高效加载](part2/ch06_tokenization_loading.md)
- [第7章:数据评估、质量闭环与运营迭代](part2/ch07_data_operations.md)

## 第三篇:多模态数据工程

处理图文、文档、视频、音频与跨模态对齐数据,关注样本结构、质量控制、标注增强和融合训练。

- [本篇目录](part3/index.md)
- [第8章 图文对数据工程](part3/ch08_multimodal_image.md)
- [第9章 重标注与文档理解](part3/ch09_recaptioning_ocr.md)
- [第10章 视频与音频数据工程](part3/ch10_video_audio.md)
- [第11章 跨模态对齐与融合](part3/ch11_cross_modal_alignment.md)
- [第8章:图文对数据工程](part3/ch08_multimodal_image.md)
- [第9章:重标注与文档理解](part3/ch09_recaptioning_ocr.md)
- [第10章:视频与音频数据工程](part3/ch10_video_audio.md)
- [第11章:跨模态对齐与融合](part3/ch11_cross_modal_alignment.md)

## 第四篇:指令微调与偏好数据

Expand Down
2 changes: 1 addition & 1 deletion docs/zh/part1/ch03_data_stack.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 第3章 AI原生数据栈与成本治理
# 第3章:AI原生数据栈与成本治理

<div class="chapter-authors">於俊;王柯;陈长汶</div>

Expand Down
2 changes: 1 addition & 1 deletion docs/zh/part1/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@

- [第1章:大语言模型时代的数据革命](ch01_data_change.md)
- [第2章:LLM数据生命周期与质量评估框架](ch02_quality_framework.md)
- [第3章 AI原生数据栈与成本治理](ch03_data_stack.md)
- [第3章:AI原生数据栈与成本治理](ch03_data_stack.md)

## 建议阅读顺序

Expand Down
8 changes: 4 additions & 4 deletions docs/zh/part2/ch04_data_sources.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 第4章 数据源、采集与版权
# 第4章:数据源、采集与版权

<div class="chapter-authors">於俊;王柯;陈长汶</div>

Expand Down Expand Up @@ -159,7 +159,7 @@ class AsyncEthicalCrawler:
domain = urlparse(url).netloc
if domain not in self.rp_cache:
await self.fetch_robots(session, domain)

# 强制合规检查
if not self.rp_cache[domain].can_fetch(self.user_agent, url):
print(f"Skipping {url} (disallowed by robots.txt)")
Expand All @@ -180,7 +180,7 @@ class AsyncEthicalCrawler:
async def bounded_fetch(url):
async with sem:
return await self.fetch_url(session, url)

tasks = [bounded_fetch(url) for url in urls]
return await asyncio.gather(*tasks)
```
Expand Down Expand Up @@ -417,7 +417,7 @@ def classify_license(license_text: str) -> dict:

本章从源头质量如何约束模型能力出发,建立了预训练数据源体系的认知框架。章节构建了涵盖八类核心数据源的分层地图,并通过风险矩阵(表4-1)和配比策略矩阵(表4-2)为工程决策提供可操作的量化工具。在采集流水线部分,本章说明了直接使用 WET 的风险,给出了基于 Trafilatura 的高质量 WARC 解析实现,并建立了“每条数据都有出生证明”的元数据存证标准。版权治理部分引入白名单、灰名单、黑名单的三级管理机制,配合许可证自动分类代码,为商业化 LLM 团队提供可落地的合规工程方案。两个案例分别从技术和法律两个维度说明,源头治理是预训练数据工程的第一道质量门禁。

进入下一章,我们将在本章采集到的原始数据基础上,讨论**第5章 清洗、去重与去污染**。源头治理决定可以送入清洗管线的语料上限,而清洗管线决定哪些样本能够最终进入训练集。两章共同构成文本预训练数据工程的质量守门体系。
进入下一章,我们将在本章采集到的原始数据基础上,讨论**第5章:清洗、去重与去污染**。源头治理决定可以送入清洗管线的语料上限,而清洗管线决定哪些样本能够最终进入训练集。两章共同构成文本预训练数据工程的质量守门体系。

## 参考文献

Expand Down
4 changes: 2 additions & 2 deletions docs/zh/part2/ch05_cleaning_dedup.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 第5章 清洗、去重与去污染
# 第5章:清洗、去重与去污染

<div class="chapter-authors">於俊;王柯;陈长汶</div>

Expand Down Expand Up @@ -640,7 +640,7 @@ class DocumentQualityScore:

本章围绕"清洗为何构成训练数据质量上限"展开,按照清洗生命周期的顺序,系统介绍了规则过滤、模型评分、精确去重、MinHash 模糊去重、PII 脱敏与基准去污染的完整技术体系。两张表格(表5-1 缺陷-检测-代价矩阵、表5-2 清洗动作效果对照)为工程师提供了可直接参考的决策工具。两个匿名化复合案例——"清洗过度导致知识损失"和"PII 遗漏引发安全风险"——从正反两个方向印证了清洗体系的精细化配置要求。

完成清洗、去重与去污染后,原始语料才具备进入训练输入组织阶段的基础条件。下一章将在清洗完成的数据上,继续讨论预训练数据工程的最后一公里:**第6章 分词、序列化与高效加载**,即如何把干净文本转化为 GPU 可以高效消费的 Token 序列。
完成清洗、去重与去污染后,原始语料才具备进入训练输入组织阶段的基础条件。下一章将在清洗完成的数据上,继续讨论预训练数据工程的最后一公里:**第6章:分词、序列化与高效加载**,即如何把干净文本转化为 GPU 可以高效消费的 Token 序列。

## 参考文献

Expand Down
4 changes: 2 additions & 2 deletions docs/zh/part2/ch06_tokenization_loading.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 第6章 分词、序列化与高效加载
# 第6章:分词、序列化与高效加载

<div class="chapter-authors">王柯;于璠;於俊</div>

Expand Down Expand Up @@ -472,7 +472,7 @@ dataloader = DataLoader(

本章以一个匿名化复合案例说明 I/O 瓶颈如何导致 GPU 空转和成本浪费,系统建立了训练输入管道的完整技术认知。我们详细梳理了分词算法选型(BPE/SentencePiece 的工程权衡)、数据格式选择(从 JSONL 到 MDS/Arrow 的性能取舍)、Packing 策略(减少 Padding 带来的无效计算)、温度采样与课程学习的混采策略(表6-2),以及系统化的 I/O 瓶颈诊断三步法(图6-1)。附录中的"输入管道优化检查清单"可直接作为生产级预训练任务的启动前核验工具。

本章与第3章成本治理的视角呼应:在 GPU 算力成本极高的预训练项目中,输入管道的工程质量会直接影响有效训练时间和总预算。进入下一章,我们将视角从"如何把数据送进模型"转向"如何评价模型用这些数据学到了什么":**第7章 数据评估、质量闭环与运营迭代**。
本章与第3章成本治理的视角呼应:在 GPU 算力成本极高的预训练项目中,输入管道的工程质量会直接影响有效训练时间和总预算。进入下一章,我们将视角从"如何把数据送进模型"转向"如何评价模型用这些数据学到了什么":**第7章:数据评估、质量闭环与运营迭代**。

## 参考文献

Expand Down
12 changes: 6 additions & 6 deletions docs/zh/part2/ch07_data_operations.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 第7章 数据评估、质量闭环与运营迭代
# 第7章:数据评估、质量闭环与运营迭代

<div class="chapter-authors">王柯;于璠;於俊</div>

Expand Down Expand Up @@ -102,7 +102,7 @@ def calculate_perplexity_batch(texts, cache_model_path="llama-1b-ref"):
tokenizer = AutoTokenizer.from_pretrained(cache_model_path)
model = AutoModelForCausalLM.from_pretrained(cache_model_path).cuda()
model.eval()

ppl_results = []
with torch.no_grad():
for text in texts:
Expand All @@ -114,7 +114,7 @@ def calculate_perplexity_batch(texts, cache_model_path="llama-1b-ref"):
loss = outputs.loss
ppl = torch.exp(loss)
ppl_results.append(ppl.item())

return ppl_results # 返回数组供下游生成直方图
```

Expand All @@ -139,10 +139,10 @@ def calculate_ttr(texts, tokenizer=None):
else:
# 使用真实的 LLM 分词器
tokens = tokenizer.tokenize(" ".join(texts))

total_tokens = len(tokens)
unique_types = len(set(tokens))

if total_tokens == 0:
return 0.0
return unique_types / total_tokens
Expand Down Expand Up @@ -392,7 +392,7 @@ def calculate_ttr(texts, tokenizer=None):

为此,本章系统说明了建立“离线代理指标(PPL/TTR 等)”的必要性,并由此引出 DVC 版本比对、问题样本库留存、A/B Testing 实验,最终沉淀为包含四大运营动作周期的敏捷工作流。这使得大语言模型的数据研发不再是孤立的黑盒流程,而是一条能够通过效果缺失反推上游采集和清洗策略的质量闭环。

从原始网页到质量把控、清洗去重、混合配比,再到高效流入 GPU,第二篇完成了文本预训练数据工程的主体链路。下一章将进入第三篇,讨论结构更复杂、成本更高、对齐要求更严格的多模态数据工程:**第8章 图文对数据工程**。
从原始网页到质量把控、清洗去重、混合配比,再到高效流入 GPU,第二篇完成了文本预训练数据工程的主体链路。下一章将进入第三篇,讨论结构更复杂、成本更高、对齐要求更严格的多模态数据工程:**第8章:图文对数据工程**。

## 参考文献

Expand Down
8 changes: 4 additions & 4 deletions docs/zh/part2/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@

## 本篇目录

- [第4章 数据源、采集与版权](ch04_data_sources.md)
- [第5章 清洗、去重与去污染](ch05_cleaning_dedup.md)
- [第6章 分词、序列化与高效加载](ch06_tokenization_loading.md)
- [第7章 数据评估、质量闭环与运营迭代](ch07_data_operations.md)
- [第4章:数据源、采集与版权](ch04_data_sources.md)
- [第5章:清洗、去重与去污染](ch05_cleaning_dedup.md)
- [第6章:分词、序列化与高效加载](ch06_tokenization_loading.md)
- [第7章:数据评估、质量闭环与运营迭代](ch07_data_operations.md)

建议按第4章至第7章顺序阅读。已有预训练经验的读者可以先读第7章建立质量闭环视角,再回到第4至第6章检查自己的数据管线是否具备可追溯、可诊断和可复现能力。
12 changes: 6 additions & 6 deletions docs/zh/part3/ch08_multimodal_image.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 第8章 图文对数据工程
# 第8章:图文对数据工程

<div class="chapter-authors">於俊;王柯;王聪</div>

Expand Down Expand Up @@ -81,7 +81,7 @@
- **适用场景**:这是当今**生成式 VLM 预训练**的重要数据形态。它教会模型如何根据“前文”和“图片 1”,去推断“后文”或“图片 2”应该是什么。
- **采集挑战与 DOM 解析工程**:交错图文的工程难度庞大。传统的文本爬虫遇到 `<img>` 标签直接跳过,而为了组装交错格式,爬虫需要解析复杂的文档对象模型(Document Object Model,DOM)树,并进行**“基于渲染坐标的相对距离计算”**。
因为在很多现代网页的复杂级联样式(CSS)中,代码文档树的顺序往往并不是用户眼里的视觉排版顺序。如果仅按照 HTML 标签顺序提取,很可能把页面底部的免责声明错误绑定到顶部配图。

为此,工程团队通常会使用带渲染引擎的无头浏览器(Headless Browser,如 Playwright)运行 JavaScript 生成页面快照,利用类似于下面的规则提取元素。

代码清单8-1展示了 DOM 交错节点提取的示意逻辑。
Expand All @@ -92,7 +92,7 @@
# 简化的 DOM 交错节点提取伪代码
text_nodes, img_nodes = get_rendered_nodes(page)
interleaved_sequence = []

for node in all_nodes_sorted_by_y_axis():
if node.type == 'TEXT':
if len(node.content.split()) > 5: # 抛弃过短文本,如导航栏
Expand Down Expand Up @@ -210,11 +210,11 @@ def filter_by_semantic_score(image, text_caption, threshold=0.25):
# 提取融合后的特征并计算点积相似度
image_embeds = outputs.image_embeds / outputs.image_embeds.norm(p=2, dim=-1, keepdim=True)
text_embeds = outputs.text_embeds / outputs.text_embeds.norm(p=2, dim=-1, keepdim=True)

# 获取受模型温度系数缩放的 Logit,转化为客观置信度
logits_per_image = image_embeds @ text_embeds.T * model.logit_scale.exp()
similarity = logits_per_image.item()

return similarity >= threshold, similarity
```

Expand Down Expand Up @@ -313,7 +313,7 @@ def filter_by_semantic_score(image, text_caption, threshold=0.25):

针对复杂的语义对齐问题,本章以图解形式说明了“CLIP Score 过滤”与“VLM 重标注”的组合流程(见图8-2)。最后,本章通过配比调参和匿名化复合案例,说明了企业级视觉语言模型训练中需要持续维护的质量边界。

虽然图文交错是当前多模态训练的重要形态,但在复杂的 B 端工业应用场景(财报解析、复杂发票查验、手写医疗单识别)中,仅依靠自然景物图仍难以应对高密度字符和版面结构挑战。下一章将进入**第9章 重标注与文档理解**,讨论 OCR、版面解析和长文档理解数据工程。
虽然图文交错是当前多模态训练的重要形态,但在复杂的 B 端工业应用场景(财报解析、复杂发票查验、手写医疗单识别)中,仅依靠自然景物图仍难以应对高密度字符和版面结构挑战。下一章将进入**第9章:重标注与文档理解**,讨论 OCR、版面解析和长文档理解数据工程。

## 参考文献

Expand Down
8 changes: 4 additions & 4 deletions docs/zh/part3/ch09_recaptioning_ocr.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 第9章 重标注与文档理解
# 第9章:重标注与文档理解

<div class="chapter-authors">於俊;王柯;王聪</div>

Expand Down Expand Up @@ -81,8 +81,8 @@


```text
[System Instruction]: You are a neutral, highly objective visually impaired helper.
[Task]: Describe the main objects, actions, and physical background in this image concisely and accurately.
[System Instruction]: You are a neutral, highly objective visually impaired helper.
[Task]: Describe the main objects, actions, and physical background in this image concisely and accurately.
[Constraint]: Do NOT use any generic filler words like 'This is an image of' or 'I can see'. Do NOT guess the location if no text is shown. Keep the entire response strictly under 50 words. Focus solely on visible facts.
```

Expand Down Expand Up @@ -260,7 +260,7 @@

但现实世界并不只是一幅静态图片或一页电子发票。许多关键场景包含连续时间逻辑、运动轨迹和多波段音频信号。AnyRes 等静态图片策略虽然可以处理高分辨率图像,但面对每秒 30-60 帧、持续数分钟甚至数小时的视频时,视觉 Token、解码 I/O、音频转写和时间对齐成本会迅速增长,并可能触发显存溢出(Out-of-Memory)和数据加载瓶颈。

因此,下一章将从静态图文与文档理解转向长时序数据,讨论视频与音频流的切片、转写、降噪和时间对齐问题:**第10章 视频与音频数据工程**。
因此,下一章将从静态图文与文档理解转向长时序数据,讨论视频与音频流的切片、转写、降噪和时间对齐问题:**第10章:视频与音频数据工程**。

## 本章小结

Expand Down
4 changes: 2 additions & 2 deletions docs/zh/part3/ch10_video_audio.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 第10章 视频与音频数据工程
# 第10章:视频与音频数据工程

<div class="chapter-authors">王柯;王聪;於俊</div>

Expand Down Expand Up @@ -205,7 +205,7 @@

从第一、二篇的文本清洗,到第8、9章的图文像素对齐,再到本章处理的长时序音视频数据,我们已系统地掌握了各类异构数据的预处理方法——包括视频帧抽取、ASR 转写、音画对齐、事件标注与质量过滤。

视频与音频管线解决了长时序样本的切片、转写和时间同步问题,但多模态训练还需要回答另一个问题:图像、文本、音频和视频这些信号如何在同一语义空间中形成稳定对应关系。下一章将进入**第11章 跨模态对齐与融合**,讨论对象级、片段级和文档级的对齐样本构建。
视频与音频管线解决了长时序样本的切片、转写和时间同步问题,但多模态训练还需要回答另一个问题:图像、文本、音频和视频这些信号如何在同一语义空间中形成稳定对应关系。下一章将进入**第11章:跨模态对齐与融合**,讨论对象级、片段级和文档级的对齐样本构建。



Expand Down
2 changes: 1 addition & 1 deletion docs/zh/part3/ch11_cross_modal_alignment.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 第11章 跨模态对齐与融合
# 第11章:跨模态对齐与融合

<div class="chapter-authors">王柯;王聪;於俊</div>

Expand Down
8 changes: 4 additions & 4 deletions docs/zh/part3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@

## 本篇目录

- [第8章 图文对数据工程](ch08_multimodal_image.md)
- [第9章 重标注与文档理解](ch09_recaptioning_ocr.md)
- [第10章 视频与音频数据工程](ch10_video_audio.md)
- [第11章 跨模态对齐与融合](ch11_cross_modal_alignment.md)
- [第8章:图文对数据工程](ch08_multimodal_image.md)
- [第9章:重标注与文档理解](ch09_recaptioning_ocr.md)
- [第10章:视频与音频数据工程](ch10_video_audio.md)
- [第11章:跨模态对齐与融合](ch11_cross_modal_alignment.md)

建议按第8章至第11章顺序阅读。已有视觉语言模型经验的读者可以先读第11章理解跨模态对齐目标,再回读第8章、第9章与第10章,定位各类对齐信号的来源。
2 changes: 1 addition & 1 deletion docs/zh/part9/ch29_data_valuation_and_reuse.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ $$

第三条路径是 RAG。与预训练、后训练把数据价值固化进参数不同,RAG 路径让数据以"外部知识"的形式被在线、按需地调用,其价值通过检索命中体现。这条路径的独特价值在于时效性与可更新性:知识库可以随业务变化持续更新,而无需重新训练模型(Lewis et al. 2020)。

一份领域数据资产进入 RAG 路径时,需要经过第21章 RAG 数据流水线所述的文档工程处理——解析、清洗、切分、索引——才能成为可被稳定检索的知识单元。这意味着 RAG 复用的维护成本不可忽视:知识库需要持续更新与重建索引,否则其检索价值会随知识过时而衰减。RAG 复用的收益记录应包括:该数据支撑了哪些查询场景、在真实查询分布下的命中率与证据支持率、答案的可引用溯源比例(Thakur et al. 2021)。
一份领域数据资产进入 RAG 路径时,需要经过第21章:RAG 数据流水线所述的文档工程处理——解析、清洗、切分、索引——才能成为可被稳定检索的知识单元。这意味着 RAG 复用的维护成本不可忽视:知识库需要持续更新与重建索引,否则其检索价值会随知识过时而衰减。RAG 复用的收益记录应包括:该数据支撑了哪些查询场景、在真实查询分布下的命中率与证据支持率、答案的可引用溯源比例(Thakur et al. 2021)。

RAG 路径与训练路径并非互斥,而常常互补:同一份知识数据,其中稳定、通用的部分适合通过后训练固化进模型,而高频更新、强时效的部分则更适合留在 RAG 知识库中按需调用。如何在两条路径间合理划分一份数据,本身就是一个重要的价值优化问题——把频繁变动的知识错误地固化进模型,会带来高昂的重训练成本与过时风险;而把稳定核心知识完全交给 RAG,又会增加每次查询的检索负担。

Expand Down