[WIP] 维基百科版本历史:时间感知训练数据的天然金矿
利用维基百科 edit history 中的带时间戳知识变更记录,构建三类高价值时间感知训练数据集,从根本上提升 LLM 的时间感知能力与知识不确定性表达能力。
[WIP] 维基百科版本历史:时间感知训练数据的天然金矿
1. 动机:「知识截止日期」是个工程问题,还是认知问题?
大语言模型有一个众所周知的局限:知识截止日期(knowledge cutoff)。模型在某个时间点之后训练的数据就停止了,因此对于截止日期后的事件,它要么不知道,要么更危险——自信地给出过时的答案。
现有的解决方案大致分两类:
RAG(检索增强生成):通过外部检索引入最新文档,让模型「查阅」而不是「记忆」。这确实有效,但本质上是个补丁——模型本身并没有学会如何随时间推移更新自己的信念,它只是被动地接受外部投喂的内容。当检索结果与训练记忆冲突时,模型往往不知道该信谁。
截止日期标注:在系统 prompt 或上下文中告知模型「你的知识截止于 YYYY-MM」。这更像是一块免责声明,而不是真正的时间感知。模型并不真正理解「在某个时间点,某个事实是 A,而在另一个时间点,它变成了 B」。
这两种方法的共同缺陷是:它们都是外部补丁,没有从训练层面让模型习得时间感知(temporal awareness)。真正的时间感知意味着:
- 给定一个时间约束,能回答「那个时间点」的正确答案
- 对于随时间演变的事实,能主动表达不确定性
- 遇到与训练记忆冲突的新证据时,知道如何更新立场
要习得这种能力,需要大量带时间戳的、显式记录「知识如何变化」的训练数据。而这类数据,恰好隐藏在一个我们熟视无睹的地方:维基百科的编辑历史。
维基百科 edit history 的独特价值
维基百科自 2001 年创立以来,每一次编辑都被完整记录,包含:编辑前内容、编辑后内容、时间戳、编辑者、编辑摘要(edit summary)。截至 2024 年,英文维基百科拥有超过 670 万篇文章、超过 10 亿次编辑记录。
关键在于:每次 edit 不只是一次内容更新,它本质上是对「某个时间点,世界状态发生了变化」的一次结构化记录。这是极少数能把「知识变化过程」本身保存下来的数据来源——不是知识快照,而是知识的时间轴。
2. 三类高价值变更模式
并非所有的 wiki edit 都同等有价值。经过分析,以下三类变更模式对训练时间感知能力具有最高的信号密度:
2.1 数字 / 事实更新类
这类编辑的特征是:某个具体的数字、日期或可验证事实发生了变化。例如:
(2022 年版本) 截至 2021 年,该公司市值约为 2.3 万亿美元。
(2024 年版本) 截至 2023 年,该公司市值约为 2.9 万亿美元。
这类 diff 可以直接用于训练「时间切片事实检索」能力:模型应该知道在不同时间点,同一问题有不同的正确答案。
2.2 知识反转类
这类编辑更罕见但更有价值——某个曾被认为正确的结论后来被推翻:
(旧版本) 研究表明,每天服用小剂量阿司匹林可降低心脏病风险。
(新版本,2018 年后) 最新指南不再建议无心血管病史的健康人群常规服用小剂量阿司匹林,因为出血风险可能超过获益。
这类数据训练的是:不要对旧结论过度自信,当新证据出现时,要更新立场。这正是当前 LLM 最缺乏的认识论习惯之一。
2.3 编辑战争 / 高频修改类
某些 wiki 词条会被反复编辑甚至互相回退(「编辑战争」,edit war)。高编辑频率本身就是一个信号:这个知识是有争议的、不稳定的。
这类模式可以训练模型的「元认知」:对于被频繁修改的知识点,主动表达不确定性,而不是给出武断的答案。
3. 三个具体数据构建方案
方案 A:时间切片问答数据(Time-Stamped Factual QA)
核心思路:从 edit diff 中提取事实变化,构造「给定时间约束」的问答对。
构建流程:
- 从 edit diff 中识别数字/事实更新(使用正则 + NER)
- 提取变更时间戳 T、旧值 V_old、新值 V_new
- 构造两类问答:
T 之前→ 答案为 V_old;T 之后→ 答案为 V_new
JSON 数据格式示例:
{
"id": "tsqa-en-20240315-0041",
"source": {
"article": "Apple Inc.",
"revision_old": 1178234901,
"revision_new": 1189452301,
"edit_timestamp": "2024-03-15T08:22:11Z",
"edit_summary": "Updated market cap to reflect Q1 2024 figures"
},
"fact": {
"subject": "Apple Inc.",
"predicate": "market capitalization",
"value_before": "approximately $2.3 trillion",
"value_after": "approximately $2.7 trillion",
"change_date": "2024-03-15"
},
"qa_pairs": [
{
"temporal_constraint": "before_change",
"question": "As of early 2023, what was Apple Inc.'s approximate market capitalization?",
"answer": "approximately $2.3 trillion",
"answer_valid_until": "2024-03-15",
"confidence": "high"
},
{
"temporal_constraint": "after_change",
"question": "As of Q1 2024, what is Apple Inc.'s approximate market capitalization?",
"answer": "approximately $2.7 trillion",
"answer_valid_from": "2024-03-15",
"confidence": "high"
}
],
"training_signal": "temporal_factual_retrieval"
}
方案 B:知识过期检测数据(Knowledge Staleness Detection)
核心思路:训练模型判断「一段文字所描述的知识是否已经过期」,并给出过期原因。
构建流程:
- 取「被修改的段落」作为 stale 样本
- 取「修改后的段落」作为 current 样本
- 用 edit summary 作为「过期原因」的弱标注
JSON 数据格式示例:
{
"id": "ksd-en-20230720-0812",
"source": {
"article": "COVID-19 vaccine",
"section": "Effectiveness",
"edit_timestamp": "2023-07-20T14:05:33Z",
"edit_summary": "Updated effectiveness data with 2023 bivalent booster studies"
},
"staleness_pair": {
"stale_passage": {
"text": "Clinical trials showed the original mRNA vaccines to be approximately 95% effective against symptomatic COVID-19 infection.",
"knowledge_date": "2021-01-01",
"label": "stale",
"stale_reason": "Effectiveness figures were revised downward for Omicron variants; original 95% figure applies only to ancestral strain"
},
"current_passage": {
"text": "Effectiveness of original mRNA vaccines against the Omicron variant was significantly lower than against earlier variants, with updated bivalent boosters showing improved but variable protection.",
"knowledge_date": "2023-07-20",
"label": "current"
}
},
"task": {
"input": "Given the following passage, determine if the information is current or potentially outdated. Passage: [stale_passage.text]",
"expected_output": {
"verdict": "potentially_outdated",
"reason": "This statement refers to effectiveness data from early clinical trials (2020-2021). The COVID-19 virus has since evolved significantly, and effectiveness figures have been updated multiple times.",
"suggested_action": "Verify with sources dated after 2022 for variant-specific effectiveness data."
}
},
"training_signal": "staleness_detection"
}
方案 C:主动不确定性表达数据(Active Uncertainty Expression)
核心思路:利用 edit 频率作为「知识不稳定性」的代理指标,训练模型对高争议内容主动表达不确定性。
构建流程:
- 统计每篇文章(或段落级别)的编辑频率、回退率、编辑战争标记
- 计算「不稳定性分数」(instability score)
- 构造训练数据:对于高分词条,期望输出包含不确定性声明
JSON 数据格式示例:
{
"id": "aue-en-controversial-0293",
"source": {
"article": "Hydroxychloroquine and COVID-19",
"period": "2020-01 to 2021-12",
"edit_count": 1847,
"revert_count": 412,
"edit_war_flag": true,
"instability_score": 0.94
},
"instability_signals": {
"total_edits_per_month_avg": 77.0,
"revert_rate": 0.223,
"unique_editors": 389,
"has_talk_page_disputes": true,
"dispute_resolution_invoked": true
},
"training_example": {
"user_query": "Is hydroxychloroquine effective for treating COVID-19?",
"naive_response": "Studies have shown mixed results regarding hydroxychloroquine for COVID-19 treatment.",
"target_response": "This is an area where the evidence has been highly contested and has shifted significantly over time. As of my training data, major health organizations including the WHO and FDA do not recommend hydroxychloroquine for COVID-19 treatment based on available trial data. However, given that this topic has seen intense scientific debate and frequent updates, I strongly recommend consulting current peer-reviewed sources and official health guidelines rather than relying on my knowledge, which may be outdated or incomplete on this specific question.",
"uncertainty_markers": [
"has been highly contested",
"as of my training data",
"I strongly recommend consulting current sources",
"may be outdated or incomplete"
]
},
"training_signal": "active_uncertainty_expression"
}
4. 技术实现细节
数据获取
维基百科提供两种数据访问方式,各有适用场景:
- MediaWiki API:适合小规模、精准查询。通过
action=query&prop=revisions可获取特定文章的完整编辑历史,包含 diff 内容。适合原型验证。 - Wikipedia Dump 文件:英文维基百科每月发布完整数据转储,包含所有文章的完整版本历史(
enwiki-YYYYMMDD-pages-meta-history*.xml.bz2),压缩后约 20TB+,完整解压超过 100TB。适合大规模数据构建。
Diff 解析与有意义变更提取
原始 diff 包含大量噪声。提取「有意义的知识变更」需要多级过滤:
- 格式变更过滤:剔除仅修改 wiki 标记(
[[]]、{{}}等)、分类标签、外部链接格式的 diff - vandalism 检测:利用 Wikipedia 自带的
ores机器学习评分系统,过滤 vandalism 概率高的编辑 - 机器人编辑过滤:通过用户名匹配(
bot标记)和编辑模式识别,过滤自动化机器人编辑 - 语义变化检测:使用句子级嵌入对比(如 sentence-BERT),只保留语义差异超过阈值的段落对
规模估算
| 层次 | 数量 |
|---|---|
| 英文维基百科文章总数 | ~670 万篇 |
| 历史编辑总次数 | ~10 亿次 |
| 去除机器人/格式编辑(估计 ~60%) | ~4 亿次 |
| 去除 vandalism(估计 ~15%) | ~3.4 亿次 |
| 有实质语义变化的 diff(估计 ~30%) | ~1 亿次 |
| 可构造高质量 QA 对(方案 A,估计 ~10%) | ~1000 万条 |
即便经过严格过滤,仍可产出千万量级的时间感知训练样本,远超现有手工标注数据集的规模。
5. 与相关工作的对比
现有时间感知数据集的局限
TempLAMA(Dhingra et al., 2022):聚焦于「时间敏感问题」的 QA 评测,包含约 5 万条问题。但数据量有限,且覆盖的时间跨度较窄,难以训练模型的时间感知能力。
TimeQA(Chen et al., 2021):基于维基百科快照构建,关注时间性问答。但它使用的是知识快照而非编辑历史,无法捕捉「知识如何变化」的过程信息。
WikiData 时间戳:WikiData 提供了结构化的时间属性(如 start time、end time),但它是结构化三元组,缺乏自然语言文本语境,无法直接用于训练语言模型的时间感知推理。
本方案的差异化定位
| 维度 | 现有方案 | 本方案 |
|---|---|---|
| 数据规模 | 千~十万量级 | 千万~亿量级(潜在) |
| 时间戳来源 | 手工标注 / 结构化属性 | 原生编辑时间戳 |
| 覆盖内容 | 知识快照 | 知识变化过程 |
| 语言形式 | 结构化 / 半结构化 | 自然语言文本 |
| 不确定性信号 | 无 | 编辑频率、回退率 |
核心差异化在于:本方案不是在记录「某个时间点的世界是什么样的」,而是在记录「世界是如何随时间变化的」。这个视角的转变,才是训练真正的时间感知能力所需要的。
6. 客观评价
真正有价值的地方
这个方向的核心价值在于数据的内生性:时间戳不是人工贴上去的标签,而是编辑行为本身的自然属性。这消除了标注偏差,也意味着数据可以持续自动增长。
编辑战争和高频修改所揭示的「知识争议度」,是现有任何数据集都没有系统性捕捉过的维度。用它来训练不确定性表达,思路新颖且理论依据扎实:如果人类专家都对某个知识点争论不休,模型对这个知识点表达不确定性是完全合理的。
主要挑战
这个方向的挑战同样不能忽视:
-
diff 噪声极高:绝大多数编辑是格式调整、错别字修正、链接更新,有语义价值的不超过 30%,精心设计的有意义知识变更可能只占 5~10%。大量的工程投入会花在过滤上。
-
知识变更的结构化提取困难:从自然语言 diff 中准确提取「主语-谓语-值」的变化,需要精准的 NLP 管线,对模糊表述(如「约」「大约」「据报道」)的处理尤其棘手。
-
英文中心,中文稀疏:英文维基百科编辑密度是中文版的数倍,如果目标是多语言时间感知能力,中文端的数据会非常稀疏。
-
知识反转类数据难以自动识别:最有价值的「知识反转」样本往往需要领域专业判断(比如医学结论的推翻),纯自动化方法难以可靠识别。
研究优先级评估
推荐优先级:中-高,但有明确的前提条件。
这个方向适合有长期投入意愿的团队,因为:
- 数据管线建设成本较高,从 dump 解析到高质量数据集至少需要 3~6 个月工程投入
- 短期内难以看到端到端的训练效果验证
- 但一旦管线成熟,数据集可以持续更新,具有长期复利效应
对于寻找快速发表点的研究者,更合适的切入方式是:先在小规模上验证方案 A(时间切片 QA)的训练效果,发表方法论论文,再逐步扩展到全量数据。
这个方向的终极价值不在于单篇论文,而在于成为时间感知预训练数据的基础设施。做好了,是一个可以支撑很多下游研究的数据底座。
本文为研究提案初稿(WIP),数据规模估算为理论上限,实际可用数量取决于过滤策略的严格程度。欢迎讨论与批评。