乐于分享
好东西不私藏

你的AI助手,能不能别一开口就像同一个人?

你的AI助手,能不能别一开口就像同一个人?

有个做在线教育的朋友跟我说:他们公司用大模型搭了个AI伴学,产品经理提的需求很简单:小学生提问时,AI要像幼儿园老师一样耐心温柔;高中生提问时,AI要像个竞赛教练,简洁犀利,有一说一。

可谁知,技术部折腾了两周,给出两个方案:要么写两套巨长无比的提示词,祈祷模型别演着演着就崩;要么微调两个模型,一个温柔版一个犀利版。第一个方案不稳定,聊着聊着AI就开始胡编乱造;第二个方案成本特别高,每多一个人格就要多训一个模型,GPU烧得肉疼。

哥们最后问我:有没有一种办法,让一个模型瞬间变成任何人,而且不花大钱?

当时没有。但现在有了,就是接下来介绍的 PersLLM

你写的提示词,为什么总在长对话里失效?

这个问题可能困扰过每个玩过AI角色扮演的人。

你费尽心思写了一大段设定:你是一个毒舌但专业的法律顾问,说话简洁,偶尔带点讽刺,绝不啰嗦。前几轮对话还行,能感觉到那味儿。但聊着聊着,你会发现它开始说车轱辘话了,开始变得像个普通的客服了,你精心设定的那些特质像沙子一样从指缝里漏掉了。

不是模型不听话。是它的注意力被稀释了。

大模型在生成长文本时,越往后,它对开头那几段提示词的关注度就越低。就像你跟一个人交代了十件事,他办到第七件的时候可能已经忘了第一件是什么。传统提示词是写在对话最开头的,聊得越久,它就离模型的注意力中心越远,自然越来越淡。

微调倒是能解决这个问题,但微调一个人格的成本大概是几万到几十万,还得准备海量对话数据。你不可能为每一种角色都微调一次。这账根本算不过来。

PersLLM干了件很的事

它换了个思路。

不把人格写在提示词里,也不去修改模型本身。它只在模型准备说话的时候,悄悄地、持续地一下模型内部的偏好开关。

具体来说,你给它几段目标角色的对话样本——比如几段律师咨询记录。它不看内容讲的是什么案子,只看这个人说话的方式。用词是口语还是书面?句子是长还是短?回应是直接还是迂回?然后把这些风格特征压成一个小小的人格向量

这个向量,就是那个律师的说话灵魂

在模型准备回答你的时候,这个向量会持续地、轻微地调整模型生成每个词时的倾向。同样一个问题我该怎么处理这个合同纠纷,模型的知识储备是一样的,但如果没有向量调制,它可能说:建议您咨询专业律师,通过法律途径解决纠纷。有向量调制后,它可能说:先看合同第4条。对方已经触发了解除条件,你不用跟他客气。

内容都对,但一个是通识回答,一个是律师口吻。PersLLM做的事,就是在不改变内容实质的前提下,精确控制怎么说话

一个模型,万亿种人格,切换成本是零

这件事的商业价值在哪?

如果你是一家做AI客服的公司,你的客户有卖母婴用品的,有做工业设备的,有开医美诊所的。每一家都希望AI的说话风格和自己的品牌调性匹配。以前你怎么做?要么给每个客户维护一套复杂的提示词模版,要么针对大客户做专门微调。前者不稳定,后者养不起。

PersLLM的逻辑,你只需要从每个客户那里拿几段他们满意的真人对话记录,提取成人格向量存进数据库。切换客户的时候,系统自动调出对应的向量,同一个模型底座就变成了完全不同的。母婴客服温柔耐心,工业客服严谨准确,医美客服亲和但不轻浮。

没有任何额外训练成本。不需要GPU。人格向量小到可以放在内存里随时调用。这相当于把个性化AI”这件事,从定制品变成了标品。而定制品和标品之间,隔着一整个商业化的鸿沟。

还有个更有意思的方向

我一直觉得,内容行业会是最早被这种技术改变的领域之一。

做游戏的朋友经常抱怨,NPC的对话永远是那几套模版,玩家聊两圈就知道这是个机器人。如果能给每个NPC都生成一个PersLLM的人格向量呢?村口铁匠说话粗鲁直接,酒馆老板娘八卦刻薄,城主大人严肃傲慢。同一个对话模型底座,不同NPC加载不同人格。玩家和铁匠聊天,跟和城主聊天的体验完全不同。

而且这些角色不会演着演着就崩了。因为人格向量是持续调制的,不管对话进行多久,铁匠永远粗鲁,城主永远傲慢。角色一致性,是沉浸感的基石。

更进一步想,短视频和直播里的虚拟人,是不是也可以用同样的技术来稳定人设?一个虚拟主播,今天毒舌明天温柔,观众会觉得它精分。但如果有一个持续调制的人设向量,它就可以在成千上万小时的直播里保持一致的人格表现。

这事给我最大的触动

很多人觉得要把AI用好的核心,是选对模型、堆够数据、调好参数。但PersLLM提供了一个完全不同的思路:模型内部其实已经拥有了成为各种人的原材料,只是缺少一把精准的钥匙去按需提取。

这个洞察挺重要的。因为它意味着我们不需要再造一个模型,只需要学会怎么更聪明地使用已有的模型。

造新车换挡位,这中间省下的不只是钱,还有把AI从极客玩具变成大众工具的那道坎。

相关资源:

  • 📄 arXivhttps://arxiv.org/abs/2504.09559
  • 🧬 Githttps://github.com/PointLLM/PointLLM-2.0