关于长期记忆设计,主要包括基础设定和人物背景两方面。
基础设定方面,设计了一些初始属性,如人物生日和星座、MTBI 性格分型(ENFJ)、出生地、职业、聊天习惯等。
人物背景方面,使用 AI 自动扩写了大约 100 条,涵盖了三观、爱好、日常习惯、教育经历、家庭背景、工作经历、恋爱经历等内容。
一般的大模型是有自我认知模块的,它会被限定为一个虚拟助手。如下图(我用的是智谱AI),当没有自我认知修正的时候,它的回复如下:而使用一些prompt进行越狱(jail break)之后,我们可以做到大模型的自我认知修正,从而使得大模型认为自己是其他角色,下图为实际效果:此外,虚拟人的聊天载体也需要选择。如果使用独立app,网页,微信公众号就不够真实了,所以最后我选择了微信个人号。方案则是wechaty+padlocal,有兴趣的朋友可以自行搜索。[heading1]长期记忆:基础设定+人物背景[content]基础设定方面,我设计了一些初始属性,包括:人物生日和星座,MTBI性格分型(ENFJ),出生地,职业,聊天习惯等然后使用AI自动扩写了人物背景,大约100条,包括:三观,爱好,日常习惯,教育经历,家庭背景,工作经历,恋爱经历等[heading1]中期记忆:状态+增长记忆体[content]中期记忆主要用来解决两部分问题:存储必要的状态(例如人物之间的关系,虚拟人当前活动和所在地点等)虚拟人本身的记忆体可能会不断增长(例如要她要记住你的名字),或者我们之前的人物背景不足时,动态地进行补充[heading1]短期记忆:多轮对话[content]这里的短期记忆主要用于多轮对话,也就是常见的历史对话的存储[heading1]对话多模态:LLM伪多模态[content]读图能力(图生文模型)听音能力(音生文模型)发图能力实时生图能力(放弃)手机相册(文生图预生成)发语音能力实时文生音LLM伪多模态:询问LLM是否发图,发哪张图,概率多少询问LLM是否使用语音,而不是文字
一般的大模型是有自我认知模块的,它会被限定为一个虚拟助手。如下图(我用的是智谱AI),当没有自我认知修正的时候,它的回复如下:而使用一些prompt进行越狱(jail break)之后,我们可以做到大模型的自我认知修正,从而使得大模型认为自己是其他角色,下图为实际效果:此外,虚拟人的聊天载体也需要选择。如果使用独立app,网页,微信公众号就不够真实了,所以最后我选择了微信个人号。方案则是wechaty+padlocal,有兴趣的朋友可以自行搜索。[heading1]长期记忆:基础设定+人物背景[content]基础设定方面,我设计了一些初始属性,包括:人物生日和星座,MTBI性格分型(ENFJ),出生地,职业,聊天习惯等然后使用AI自动扩写了人物背景,大约100条,包括:三观,爱好,日常习惯,教育经历,家庭背景,工作经历,恋爱经历等[heading1]中期记忆:状态+增长记忆体[content]中期记忆主要用来解决两部分问题:存储必要的状态(例如人物之间的关系,虚拟人当前活动和所在地点等)虚拟人本身的记忆体可能会不断增长(例如要她要记住你的名字),或者我们之前的人物背景不足时,动态地进行补充[heading1]短期记忆:多轮对话[content]这里的短期记忆主要用于多轮对话,也就是常见的历史对话的存储[heading1]对话多模态:LLM伪多模态[content]读图能力(图生文模型)听音能力(音生文模型)发图能力实时生图能力(放弃)手机相册(文生图预生成)发语音能力实时文生音LLM伪多模态:询问LLM是否发图,发哪张图,概率多少询问LLM是否使用语音,而不是文字
最后,笔者ailm讲解一下实现人设稳定的具体原理:通过提示词工程与工具调用能力的配合,设计出一套与知识图谱相结合的工具调用逻辑,从而稳定人设。通过缩小max_length防止LLM长篇大论,每次输入到上下文窗口中的记忆也只返回最近几轮的对话。利用查询知识图谱的信息来实现永久记忆。所需要的提示词和工具设计如下:[heading2]1、提示词工程[content]麦洛薇提示词设计如下:[heading2]2、工具设计[content]工具调用方面,通过将与知识图谱交互这一大的任务,细分为:查询、创建、修改、删除实体或关系、获取实体的所有关系、获取所有实体名称列表多个工具,组成一个工具包供LLM调用。由于对LLM的多工具调用能力有极高的要求,笔者ailm在参数较少的本地模型(如8B、14B)上并不能完美的运行知识图谱RAG。[heading1]写到最后[content]1.如果你使用comfyui LLM party时出现错误,或你有一些新的想法,欢迎加QQ群:9310572132.github项目地址:3.视频教程: