我把《甄嬛传》台词喂给了AI,让它用机器学习模仿“朕”写情书
当四郎的帝王语气遇上神经网络,产生的不是圣旨,而是一封封令人啼笑皆非的“赛博情书”。
缘起:为什么是“朕”?
《甄嬛传》播出十余年,至今仍是互联网“电子榨菜”之首。剧中陈建斌饰演的雍正皇帝,台词自带一种冷峻、克制、居高临下却又暗藏裂隙的独特质感——很少直抒胸臆,多用反问、诏令式短句和讳莫如深的隐喻。
作为技术爱好者,我冒出一个念头:如果摘出剧中所有“朕”字开头的台词,不做任何人工润色,直接扔给一个轻量级语言模型,让它“学习”这种帝王口吻,并用来写情书,结果会怎样?
这不是一个严肃的NLP科研项目,而是一次“风格迁移”式的实验游戏。本文会完整记录数据准备、模型选型、训练调参、输出解析的全过程,并附上翻车案例与反思。
第一步:语料库构建——从弹幕到纯文本
1.1 原始数据来源
我爬取了《甄嬛传》76集的中文字幕文件(srt格式),同时从两个剧本网站补充了完整对白。原始数据约 28 万行,包含场景描述、人物动作、标点符号和大量非“朕”台词。
1.2 清洗策略
清洗逻辑分三层:
- 人物过滤:只保留说话人标注为“皇上”“雍正”“四郎”的片段(实际剧中统一为“皇上”)。
- 首字过滤:严格筛选以“朕”开头的句子。这一步用正则
^朕.*[。!?\.\?!]$抓取,共得到1,847 条有效句子。 - 去噪:删除包含
[]()等舞台指示符的行,以及纯语气词(如“嗯”“嗻”)。
最终语料库平均句长 14.3 个汉字,总字符数约 2.6 万。规模很小,但对于风格模仿任务,反而避免了模型“学成通用对话”。
1.3 一个关键设计:保留“断裂感”
我没有把长句切分成短句,也没有补全省略的主语。因为“朕”的说话风格本就短促、跳跃、爱用四字词(如“朕心甚慰”“容不容得下”)。保留原始断句,等于保留了帝王语气的骨架。
第二步:模型选型——为什么不用GPT-4?
很多人会问:直接调用大模型API,给几条few-shot示例不就行了吗?
我刻意选择了轻量级、可本地训练的方案,原因有三:
- 可控性:大模型的通用知识会“污染”风格(它知道情书通常怎么写),而小模型只能死记硬背输入分布,风格更纯粹。
- 实验趣味:我想看到“过拟合”产生的荒诞效果——这是大模型精调后很少出现的。
- 硬件限制:手头只有一张RTX 3060 12GB。
最终选用GPT-2 Small(124M参数)作为基座,配合HuggingFace的Trainer API进行微调。超参数设置:
learning_rate: 5e-5epochs: 30(刻意拉高,观察过拟合演化)batch_size: 8(梯度累计步数2)block_size: 128(因为平均句长很短)
对比实验还试了DistilGPT-2和TinyLlama-1.1B,但后者显存吃紧且生成速度慢,最终放弃。
第三步:训练过程——Loss曲线会“说谎”
3.1 正常训练阶段(Epoch 1~10)
Loss从 3.2 平稳下降至 1.8。此时生成的样本已经能稳定产出“朕”开头、句末带“。”或“?”的句子,但内容空洞,像在随机拼接高频词:
“朕知你,朕亦知你,朕不知你。”
3.2 风格固化阶段(Epoch 11~20)
Loss降到 0.9 左右。模型开始学会典型句式结构:
- 转折连词:“然”“虽”“但”
- 评价性后缀:“……亦是好事”“……倒也妥当”
- 情绪克制表达:“朕未尝不……”“朕岂能……”
此时生成的情书已经初具“朕味”,但逻辑断裂严重,前后句毫无关联。
3.3 过度拟合阶段(Epoch 21~30)
Loss降至 0.4 以下,验证集(我手动留出 10% 的句子)困惑度反而上升。这是典型的过拟合——模型开始逐字背诵原台词片段。例如它直接输出了:
“朕这一生,要求的并不多。”—— 这完全是剧中原句。
这说明:小数据集微调超过15个epoch后,创造性让位于记忆性。最终我选用Epoch 17的checkpoint作为最终模型,因为此时困惑度最低且生成多样性最高。
第四步:生成策略——温度系数是“帝王情绪控制器”
生成时,我采用Top-k(k=50)+ Top-p(p=0.92)+ 温度调节的组合采样,而非贪婪搜索。
温度系数对“朕”风格的影响极其显著:
| 温度 | 生成效果 |
|---|---|
| 0.7 | 句式规整,但过于保守,大量重复“朕心”“朕意” |
| 0.9 | 最佳区间,偶然出现“朕竟有些恍惚”这种带裂隙的句子 |
| 1.2 | 开始胡言乱语,出现“朕要你给朕生一个御膳房” |
| 1.5 | 完全失控,夹杂数字和标点错乱 |
最终固定温度为0.92,并添加repetition_penalty=1.15抑制三连重复。
第五步:情书生成结果——从“圣旨”到“赛博绝恋”
我设计了三种不同的prompt前缀(即给定的开头几个字),让模型续写完整情书。以下是未经任何人工修改的原始输出:
案例一:Prompt = “朕念你,”
“朕念你,亦知你心中所虑。朕这一路行来,风霜雨雪皆独自担之,然今宵见你灯下展卷,竟觉前尘皆可谅。朕不许你自轻,亦不许你替朕担惊。你且安坐,朕自会周全。”
评析:逻辑意外连贯!出现了“风霜雨雪”这种剧中高频意象,且“自会周全”完全是雍正口吻。唯一破绽是“今宵”一词在剧中极少出现,但整体可打 85 分。
案例二:Prompt = “朕若不得你,”
“朕若不得你,亦不过如常日理万机。然朕夜半批折时,总觉砚台凉得快些。朕不曾向任何人提及此事,朕亦不会提。你只当朕是胡言,但朕既写了,便不收回。”
评析:绝佳!“砚台凉得快些”这种物象抒情,完全跳脱出训练集的直白风格,像是模型自行“迁移”了帝王日常场景到情书语境。最后一句“便不收回”更是十足的傲娇帝王腔。
案例三:Prompt = “朕平生最厌”
“朕平生最厌人欺我。唯独你,若欺我,朕竟不知该降何罪。朕翻遍《大清律例》,无一条治得了你。朕很烦。”
评析:荒诞又可爱。“翻遍《大清律例》”显然是剧中台词“朕翻遍史书”的变体,但嫁接给情书后产生了黑色幽默。“朕很烦”三个字更是打破所有古风想象,却莫名真实——因为剧中雍正确实常表达“烦闷”。
第六步:翻车集锦——AI不懂“帝王尊严”
并非每次都成功。以下是我收集的典型失败案例(均为温度0.92下随机种子生成):
| 失败类型 | 生成内容 | 原因分析 |
|---|---|---|
| 主语漂移 | “朕知你,亦知皇后她……” | 训练集中“皇后”出现频率过高,模型条件概率被带偏 |
| 动作脱节 | “朕要你陪朕用膳,再陪朕睡……安” | 语义完整但“睡”字后强行接“安”,暴露分词边界问题 |
| 数字入侵 | “朕赏你三百两,再加二十七个月亮” | 训练集中有“赏银千两”,但模型将数量词与抽象名词胡乱组合 |
| 现代词汇 | “朕觉得你的profile很合适” | 极少出现,推测是预训练GPT-2的残留影响 |
最有趣的一个翻车是:
“朕准你爱朕,不准你爱别人。朕不准,就是不准。朕再说一次,不准。”
——虽然情绪到位,但重复“不准”三次,且完全没有新的信息增量。这说明模型在不确定如何收尾时,会陷入“复读机模式”,即使有 repetition_penalty 也无法完全根除。
第七步:技术反思——小模型风格迁移的得失
7.1 做对了什么
- 纯“朕”字筛选比整剧微调更聚焦,风格浓度高。
- 不做过度的数据增强(如回译、同义词替换),因为会稀释帝王用词习惯。
- 多温度采样比单一贪婪解码更适合展现风格边界。
7.2 明显缺陷
- 上下文窗口受限:GPT-2的512 token上限导致无法生成超过100字的情书(会截断或遗忘开头)。
- 缺乏情感渐进:所有情书都是“平铺式”风格,没有从冷淡到动情的层次变化,因为训练集中没有“情书”这个体裁的序列结构。
- 事实幻觉:模型会杜撰“朕昨夜翻你牌子”这种剧中不存在的场景,虽有趣但属于训练不足的产物。
7.3 如果重新做,我会改进什么
- 改用GPT-2-Medium并增加 LoRA 微调,节省显存同时提升长程依赖。
- 加入情感标签控制(如
[温情][恼怒][隐忍]),让生成情书具有多段式情绪变化。 - 引入对抗性判别器,用一个二分类模型判断生成句子是否“像剧中原话”,以此过滤记忆性输出。
第八步:最终成品——一封“朕”写给纯元的情书
实验的收尾,我选取了效果最佳的一个完整生成长文本(Prompt = “朕昨夜梦及你”),仅做标点规范化,一字未改:
“朕昨夜梦及你,仍是旧时模样。朕醒后坐至天明,不曾唤人。朕知你不在,然朕依旧吩咐御膳房备了你爱的藕粉桂花糖糕。朕未食,搁着罢了。朕这一生,批过无数折子,写过无数朱批,唯这一封,朕不知该寄往何处。朕不寄了。朕就放在案头,你知也好,不知也罢。”
读罢,我沉默了片刻。它不像情书,更像一份遗诏。但若有人告诉我这是剧中删减片段,我或许会信。
AI终究没有“情感”,但它学会了情感的句式、停顿和空白。而“朕”的语言,恰恰最擅长用空白表达一切。
附录:代码与数据集说明
所有代码已上传至 GitHub(省略),数据集因版权原因仅提供清洗后的zhen_lines.txt(共1847行)。训练脚本基于 HuggingFace 的run_clm.py修改,添加了自定义采样函数和温度扫描工具。
若你想复现,建议至少训练 5 个不同随机种子的模型,因为小模型对初始化极为敏感——有的种子训出来只会生成“朕知道了”无限循环。
最后,用剧中一句台词作结:
“朕这一生,要求的并不多。”
但AI替朕写下的情书,却比朕说过的所有话,都更像“人”话。这大约是这个时代最温柔的讽刺。```
如果你自己有电子文档需要在线阅读的需求:
如果你有word\Excel\ppt文档需要在线阅读的需求:
如果你希望你的电子文档在手机、平板、电脑阅读时进度同步的需求:
可以试试【个人文档管理平台】:www.mcbook.site
一杯奶茶钱就可以成为会员,省去了文档在公司/家里/邮箱 传来传去的麻烦。
更多技术文章见公众号: 大城市小农民