探索过去:用19世纪文本打造一个“时间胶囊”语言模型
想象一下,如果一个AI不仅能模仿历史人物的语气,还能真正“活”在200年前的世界里,会是什么样子?最近,我发现了一个特别有意思的项目——TimeCapsule LLM。它的作者用1800-1850年间出版的书籍,基于nanoGPT训练了一个语言模型,希望让它完全沉浸在那个时代,不带一丝现代痕迹。看到这个想法,我忍不住想,或许下一个“文言文大模型”也不远了!今天,我们就来聊聊这个项目,看看它是怎么把AI“训练成200年前的样子”的。
什么是TimeCapsule LLM?
简单来说,TimeCapsule LLM是一个实验性的语言模型,目标是用特定历史时期的文本——比如1800-1850年的伦敦书籍——从零开始训练,让它模拟那个时代的语言和思维方式。它用的是nanoGPT,一个由Andrej Karpathy开发的轻量级语言模型框架。
这个项目的核心在于“纯粹”。它不想让AI只是“假装”历史,而是希望AI的知识和表达真的局限在那个时代。比如,它不会知道手机、互联网,甚至1850年之后发生的事。听起来是不是很酷?就像打开一个时间胶囊,里面装的全是19世纪的伦敦风情。
为什么要做这个项目?
从零开始的理由
你可能会问:“现有的AI模型那么多,为什么不直接拿一个现成的模型调一调呢?”其实,这个问题正是项目最关键的出发点。如果只是对一个现代模型(比如GPT-2)进行微调,它的基础知识还是现代的——那些预训练时学到的东西不会消失。这就像让一个现代人穿上19世纪的衣服去演戏,外表像了,但脑子里还是21世纪的思维。
TimeCapsule LLM想彻底摆脱这种“现代偏见”。所以,它选择从零开始训练,只用那个时代的文本喂给模型。这样,AI的“世界观”就完全被锁在1800-1850年的伦敦,不会掺杂任何现代概念。
目标是什么?
这个项目希望打造一个这样的模型:
- 🍂
不认识现代东西:问它“互联网是什么”,它可能会一脸茫然。 - 🍂
用老派语言说话:它的回答会带着19世纪的味道,比如用“Who art thou”而不是“Who are you”。 - 🍂
不瞎编现代知识:它不会在回答中偷偷加入训练数据之外的东西。
简单来说,它就像一个被“封印”在19世纪的AI助手,只能用那个时代的眼光看世界。
项目进展:从想法到初步成果
定下时间和地点
项目选择了1800-1850年的伦敦作为切入点。为什么是这个时间段?因为那是工业革命的高潮,伦敦是当时的世界中心,留下了大量的书籍、报纸和法律文件。这些文本不仅数量多,还能反映那个时代的语言和思想,非常适合用来训练模型。
收集历史文本
到2025年7月9日,作者已经收集了50本.txt格式的书籍。这些文本包括小说、法律文书、报纸等,都是从公共领域找来的。不过,作者的目标是收集500-600本,这样数据量才够支撑一个更聪明的模型。
收集文本听起来简单,但其实有个大挑战:怎么保证这些资料没被现代人“污染”?比如,很多从Project Gutenberg下载的书会带有现代的页眉页脚,或者编辑注释。这些都得清理掉,确保AI学到的全是19世纪的原汁原味。
第一次训练
到了2025年7月13日,作者用187MB的历史文本(也就是那50本书)开始训练nanoGPT。结果怎么样呢?模型已经能用19世纪的语言风格回答问题了。比如,作者问“Who art Henry?”(“亨利是谁?”),模型回了一句:“I know that man, I have did not a black, the storm.”(“我认识那个人,我没做过黑事,风暴。”)
这回答乍一看有点乱,但仔细想想,能看出点意思:
- 🍂
它认出了“Henry”是一个人。 - 🍂
它用了类似19世纪的表达,比如“have did”这种老式语法。 - 🍂
没有提到任何现代概念。
当然,这个版本(Version 0)的模型还很粗糙。句子结构不完整,逻辑也不连贯。这不奇怪,毕竟187MB数据量太小了,撑不起复杂的推理。不过,这已经是个好的开始,至少证明了方向是对的。

下一步计划
作者没打算止步于此。接下来,他准备:
-
把训练数据增加到500-600本书。 -
继续优化数据清洗,确保文本更“纯净”。 -
训练一个更强大的Version 1模型。
怎么自己动手试试?
如果你也想打造一个“时间胶囊”语言模型,不用担心,这项目其实挺适合DIY的。下面是具体步骤,跟着做就能上手。
步骤1:收集和准备历史文本
- 🍂
找资料:去公共领域找你感兴趣的时间段的文本,比如1800-1850年的伦敦书籍。可以用 download_texts_improved.py
脚本批量下载。 - 🍂
清理数据:把文本里的现代痕迹去掉,比如Project Gutenberg的页眉页脚、OCR错误等。可以用 prepare_dataset.py
脚本帮忙处理。
小贴士:清理时要耐心,确保留下的全是原始内容。不然,模型可能会学到不该学的东西。
步骤2:打造专属分词器
- 🍂
什么是分词器?:简单说,它是教模型怎么把句子拆成词或词块的工具。 - 🍂
怎么做?:用 train_tokenizer.py
或train_tokenizer_hf.py
脚本,在你的历史文本上跑一遍。完成后,你会得到两个文件:- 🍂
vocab.json
:词汇表。 - 🍂
merges.txt
:词的合并规则。
- 🍂
- 🍂
为什么重要?:因为19世纪的语言和现代不一样,自定义分词器能让模型更好地理解老派表达。
步骤3:训练模型
- 🍂
用nanoGPT:直接参考nanoGPT的训练流程。作者用的是这个框架,你也可以试试。 - 🍂
硬件要求:作者用的是: - 🍂
GPU:Geforce RTX 406.dp - 🍂
CPU:i5-13400F - 🍂
RAM:16GB DDR5
普通家用电脑也能跑,小规模测试完全没问题。
- 🍂
- 🍂
灵活选择:不想用nanoGPT也没关系,其他语言模型框架也可以,只要你会调。
常见问题解答(FAQ)
为什么不用微调或LoRA?
微调和LoRA(一种轻量调整技术)都很流行,但在这儿不合适。为什么?因为它们只能在现有模型上修修补补,没法抹掉现代知识。TimeCapsule LLM的目标是让AI完全“老派”,所以得从头训练。
数据从哪儿来的?
目前用的是1800-1850年伦敦的书籍、法律文件和报纸。作者收集了50本(187MB),还列了个文档清单,里面有200多条记录,未来会用更多。
模型有多大?
Version 0很小,只有1600万参数。别看它小,主要是实验性质。以后数据多了,模型也会变强。
训练需要什么设备?
作者用的配置是:
- 🍂
GPU:Geforce RTX 4060 - 🍂
CPU:i5-13400F - 🍂
RAM:16GB DDR5
家用电脑就能搞定,不用太高端。
这个项目有什么意义?
TimeCapsule LLM不只是个技术玩具,它让我们看到了一种可能性:用AI“复活”历史。通过限制它的知识来源,我们能更真实地感受200年前的人是怎么说话、怎么思考的。虽然现在的模型还很简单,但它已经能用19世纪的语气聊天了。随着数据和训练的增加,它可能会变成一个真正的“历史助手”。
对我来说,这个项目还有点启发性。比如,能不能用类似方法训练一个只懂唐诗宋词的模型?或者一个只看莎士比亚作品的AI?可能性无穷大。
结语:回到过去的第一步
TimeCapsule LLM是个大胆的尝试,虽然还在早期,但已经让人眼前一亮。它不仅展示了AI的灵活性,还提醒我们,技术可以用来探索过去,而不只是服务现在。如果你对历史或AI感兴趣,不妨自己试试,动手打造一个属于你的“时间胶囊”。谁知道呢,也许下一个突破就从你这儿开始!