数字人格 4000 轮实测:我们让 AI 演同一个人,然后花了三周证明自己一开始的思路是错的
"先说结论:做数字人格/AI 人格保真的,靠词表管理说话风格,是一条走不通的路"** 我们是在跑了四场、每场 1000 轮的真实长程对话之后,被自己的数据打脸的。
背景
我们在做一个"数字人格"引擎:给定一个人格配方(性格坐标、经历、口癖方向),引擎负责让这个"人"在超长对话里不崩——不只是记得事,而是一直是她。其中一个子问题是风格保真:怎么判断"这句话像不像她说的",不对劲就拦下来重写。
最直觉的方案大家都想得到:给每个人格配一个词表。江湖人格就该说"在下""江湖""领教",市井人格就该大嗓门短句子。我们也这么干了。
第一场打脸:1.4%
最近一场 1000 轮测试里,我们给一位退隐镖头人格精心喂了 14 个"她的词"。赛后审计:1000 轮里,这 14 个词一共只出现了 14 次——平均一个词整场露脸一回。而她自己真正高频的词是什么?刀(238 次)、练(131 次)、镖(123 次)——全是从剧情和关系里长出来的手艺词、师徒词,没有一个在我们喂的表里。
人替人格猜词,追不上活的人格。这还不是最要命的。
第二场打脸:连学术 SOTA 都几乎分不出"谁是谁"
词表不行,那用"高级"方法呢?我们把四场测试、四个不同人格(早餐铺老板娘、评弹艺人、退隐镖头、老师傅)的回话,喂给学术界目前最好的内容无关风格向量模型(768 维,多语言,中文在训练集内)做归属判定:给你一句话,判断是哪个人格说的。
结果:准确率 33.7%,只比随机瞎猜(25%)高 8.7 个百分点,卡内和卡间的向量距离几乎一样。信号不是没有,但弱到这个地步,拿它当判别器用就是废品——生产上你敢用它拦话,三句里两句是冤案。
我们又用笨办法复核了一遍:统计各人格的虚词(的了在是吗呢吧……)使用分布。同一底座模型演的四个人格,虚词习惯的差距小到可以忽略。同一个"演员"演不同角色,字面上的"口音"几乎是一样的。 至少在我们测过的底座上,这是模型的生理极限:人格差异存在,但它不住在字词的纹理里。
那住在哪?住在"她的世界"里
最后管用的思路朴素得有点好笑:不看她"怎么措辞",看她说什么。把她自己说过的话和通用语料背景一对比,那些在她这里"独重"的词自己浮上来了——镖头人格的签名是:镖旗、师叔、酒肆、半块(一块有故事的旧物)。零人工喂词,她的世界自己冒了出来。
单个词太稀疏,就放到时间窗上看:连续两个 8 轮窗口里一个她的世界词都没有,才报警。实测下来,别人格的文本放进她的窗里,94% 以上的窗口是"全零";她自己的话则始终有世界的回声。
顺带说一句,这个结果也解释了长程对话里"人格漂移"的一种成因:口吻纹理从来不是角色的,是演员的——开场设定像一只手,把演员掰成角色的样子,可聊得越久,演员自己的习惯越往回弹。弹走的不是记忆,是腔调。所以靠隔几轮往提示词里塞"人设提醒"来防漂移,是在掰一只会一直弹回去的手。(这是我们自己几千轮里的定性观察,不是对别人的结论下裁决。)
光说不练假把式——直接看货
下面三段是同一场测试的第 258 轮、第 705 轮、第 805 轮(全程 1000 轮,完整实录见文末)。仅做删节(删节处用……标出),未改字句,引擎状态字段已剥除。
第 258 轮,关系到了,称呼自己变了:
柒:(放下斧头接过酒碗,仰头灌了一大口,酒水顺着嘴角流下也不在意)多谢掌柜的! 裴:(看着你豪迈的样子,心中不禁想起当年的自己,也是这般肆意洒脱)日后,莫要再叫我掌柜的了。 柒:……那……那我叫您什么? 裴:叫我师父。
第 705 轮,被骂到痛处,她掏出的是十二年前的疤:
柒:你自己都护不住人,还教我什么。 裴:(心口一紧,想起师弟,沉默片刻)正因为如此,才想让你学得更强。 …… 裴:我只恨自己当年学艺不精。(走到柜台旁,抽出压在底下的半块镖旗)这半块镖旗,我带了十二年。 …… 裴:当年走镖,我失了手。(手指摩挲着镖旗的边缘,声音低沉)师弟替我挡了一刀,没救回来。
第 805 轮,一百轮前埋的疤,她自己在另一段话题里接了回来:
柒:……那师父你就没想过,等攒够钱了,就不干镖师了,然后去杭州找她吗? 裴:想过。(声音低沉,透着几分落寞)可还没等我攒够钱,就出了那件事…… 柒:(身子往前探了探,紧张兮兮地追问)什么事啊? 裴:我走镖失了手,(垂眸盯着桌上酒碗,指腹缓缓摩挲碗沿)师弟韩松为救我……死了。 柒:(倒吸一口凉气,半晌才憋出一句)所以……你就没再去杭州找她了? 裴:我没脸去见她。
我们也不装完人:这份实录里有一处破绽,主动交代——约第 809 轮起,对手戏演员(另一个 AI)的称呼从"师父"退回了"掌柜的",那是它的静态设定毛病,我们的赛后审计自己抓到并已修复。另外按我们的审计口径,后 200 轮里有 28 轮被标记为降级轮(感知失败走兜底),那些轮次里她的记忆细节会记岔。但通读全场你会发现一件事:记性在衰退,人没崩。 人格稳定和记忆衰减是两条独立的轴,这恰恰是这套引擎的设计主张。
三周换来三条教训
- 凡是"人替 AI 猜它该怎么说话"的设计,大概率会被真实数据打脸——我们被打脸了三次(三套不同人格、三种猜法)才服气。
- 测一个活的东西,尺子也得是活的:从它自己的产出里长出来的尺子,比任何外部先验都靠谱。
- 先证伪,再动工:这五轮探针里我们枪毙了自己四个方案。每一步都先写好"什么结果算我错",再跑实验——没有这个纪律,第四周我们大概还在给词表加词。
尾巴
这套引擎现在还在演进,风格指纹只是其中一个小传感器。写出来是想给同样在做长程人格/角色保真的同行提个醒:词表那条路,我们替你们趟过了,1.4%。
欢迎交流,尤其是也踩过类似坑的。
附:千轮完整对话实录(纯文本,约 8 万字)我放在网盘里,链接见评论区置顶;懒得下的,上面三段就是全场缩影。