1.前言
(相关资料图)
先前一直都在写如何部署text-generation-webui/tavernai的文章,但却没有提到同等重要的创建角色卡。翻了一下国内的资料,基本寥寥无几···大部分资料都在外网 因此就打算整合下资料来写个教程吧。目前因为大部分开源模型
角色卡设定将使用英文来编写,因为这样更能节省token,另外一个原因是当前很多开源模型对中文的支持不是很好(
教程目前还不完善,我也在学习中,希望各位大佬们能指出错误的地方,感激不尽
希望大家看完后可以有所收获,写出一个属于自己的AI老婆
2.起步
首先,建议使用这个网站来创建和编辑角色卡 https://zoltanai.github.io/character-editor/
点击新建角色后,会看到创建一个角色的基本元素:Name(名字),Personality(个性),Scenario(对话的场景),Greeting Message(角色第一条消息),Example Messages(示例对话),以及左侧的角色头像 [Summary在tgwebui中无效,故不用填写]
其中我认为最重要的是Personality(个性),这将决定AI是谁,要做什么事情,怎么做。其次是Example Messages(示例对话)和Greeting Message(角色第一条消息),这将告诉AI它所扮演的角色将会用怎样的对话语气和口癖来与你进行对话。
接下来我将创建一个猫娘角色——nana来进行示范。
3.Name(名字)
这真没什么好说的,符合你的XP就行
我这里填入名字为nana
4.Personality(个性)
在此之前,先了解一下什么是Token?
“在大型语言模型中,"token"是指文本中的一个最小单位。通常,一个token可以是一个单词、一个标点符号、一个数字、一个符号等。”——new bing
你可以简单的理解为Token是AI的记忆力单位,目前大部分开源模型的最大Token长度是2048tokens(Mpt-7B-storywriter却能高达65000tokens),GPT3.5-turbo是4096tokens,GPT4是8192tokens,GPT-4-32K是32768tokens。你可能会问,为什么不把模型的最大Token长度调大呢,不是越大越好吗?
一是因为技术限制,二是随着你的文本Token长度上升,在没有达到该模型的最大上限Token之前,显存消耗将一直持续增大。在Mpt-7B-storywriter的模型卡介绍中提到,他们使用了8张A100-80GB GPUs来达到84k tokens 的文本长度。
正因为有着最大文本Token的限制,AI角色就有个无法避免的问题——记忆力差(这也是各位在催眠GPT容易半路失败的原因),容易失忆。因此,在我们书写AI角色的时候,要合理利用Token,并不是描述越详细越好。角色卡的内容也是记录到模型的最大文本Token中的,如果你角色内容就已经有1500token,那角色的实际记忆力只剩下500token左右了(说几句就忘记前文了
因此我推荐角色卡的总Token在500~800tokens即可。
在刚刚推荐的角色卡制作网站中,Example Messages下方会有当前角色卡的总Tokens数
既然有Token限制,那么怎样才能比较好的书写角色的Personality(个性)呢?
社区给出的主流方法是使用W++格式来描写,以下是W++格式的模板
其中双引号里面的内容便是你想要填入的内容。
我们一步一步来介绍
W++最基本的格式是这个,即角色的名字。
我要创建的角色名字是nana,则改成
在W++格式中,我们需要填入一个键和对应的值来完成角色的Personality(个性)的描述。
现在我们想要给nana这个角色赋予猫娘(catgirl)物种(species),因此我们需要填入一个键(species)和一直对应值(catgirl)
对应的值要用英文圆括号( )括起来,值里的每一项需要用英文双引号" "来括住,并且项与项之间用 + 来隔开。
接下来我们再给猫娘nana赋予人物性格"cute" + "shy" + "intelligent" + "considerate" + "emotional"
之后就是自由发挥了,看自己喜好(xp
其中,mind和personality其实是一样的东西,只是用于强化特性而已,看自己选择。
5.Scenario(对话的场景)
简单描述你与AI进行初次对话的场景即可,可以描述AI或你正在做什么。我这里就比较随便,简单描述了一下
6.Example Messages(示例对话)和Greeting Message(角色第一条消息)
这将决定角色的对话方式和习惯,请编写符合角色性格的内容。
PS:如果你想要在对话中描述一个动作时,请使用 * 动作 * 的形式来输入。
假设nene正在打扫房屋,“我“”回到家后开始与进行nene对话。那么Greeting Message(角色第一条消息)可以这么书写
而想要nene尽量在每一句话都加上"meow~"的后缀,那么Example Messages(示例对话)可以这么写(请注意,我尽量在每一句都加上了动作描写* 动作 *,这能丰富对话内容)
其中{{user}}代表用户,{{char}}代表角色,不要修改这两个词。这里我只写了一个样例对话,实际上你可以写多个,只需要在每一个对话前加上<START>即可。
至此,角色基本书写完毕,总tokens为430
最后,添加上角色的头像图片。
7.导出角色卡
导出PNG格式或json格式后,进入chat settings
来到最下方的上传角色选项,上传对应格式即可。
标签:
X 关闭
X 关闭