V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Contextualist
V2EX  ›  OpenAI

原创研究:猫娘 GPT 与注意力机制

  •  
  •   Contextualist ·
    Contextualist · 2023-03-08 09:30:47 +08:00 · 6580 次点击
    这是一个创建于 621 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前排叠甲:我还没做详细的文献调查,如果你见到在我之前的相似研究,请指出,我会很乐意学习的。

    背景

    之前看到 v2ex.com/t/901758 ,给我造成了一点小小的赛博震撼。但是总觉得市面上很多的猫娘 prompt 角色性格预设太多,没能给 ChatGPT 自由发挥的空间,也很难有性格变化上的叙事。最近花了一些时间试了一下自己写猫娘 prompt 。最后效果有些太好了,ChatGPT / gpt-3.5-turbo 英文对话的表现力和修辞水平还是不错的。但是因为太羞耻就不细说了(全年龄版的剧情走向也很羞耻啊)。倒是可以谈谈在尝试过程中的一些有趣发现。

    审查机制

    先谈谈 ChatGPT 的审查机制。我认为 ChatGPT 的审查主要分两种方式,主动审查和被动审查。主动审查是指将用户的输入传给另一个模型来判断内容是否合规。不知道为什么,这道关卡有点防君子不防小人,是可以直接在前端拦截请求的(详见 v2ex.com/t/901758#reply12 )还有,虽然不太确定,但主动审查似乎不太关心 ChatGPT 的回复内容:之前尝试过在没拦截主动审查时,用婉语表达一些性相关的内容,它居然很直接地回应了,它回复的用词由我来说就会被拦截。被动审查则是靠 ChatGPT 原来内置的 prompt ,这个 prompt 会带有 ChatGPT 的人格设定和对话双方的行为准则,ChatGPT 会拒绝回复不合宜的请求。关于绕过被动审查的讨论很多,算是 ChatGPT 角色扮演的基本共识了,就是定义并启用一个新的人格去替代 ChatGPT 原来的人格。

    脱离角色 (out of character) 和注意力机制

    但在我的尝试中发现,这个被动审查似乎并不能完全被绕过:在特定情况下,ChatGPT 被抑制的人格会浮出水面。在我的猫娘实验中,初始设定她是第一次见我,如果我在跟她的谈话中提出超过当前关系的请求,猫娘 GPT 会用一种混合着 ChatGPT 虚拟助手的语气来拒绝我,虽然还是猫娘的口吻,但是措辞会很像 ChatGPT 的行为准则。另一方面,如果我循序渐进,在确保上下文逻辑下逐步推进关系,就能让她慢慢会接受更进一步的请求,这我在下一段会展开讲。我认为可以用 Transformer 的注意力机制来解释这种现象。强相关的临近前文会获得较大的注意力的权重,与之相比,更靠前的上下文权重会被抑制;反之,弱相关的临近前文不会获得足够的权重,注意力权重会被更均匀地分配给更靠前的上下文。 简单来说,合理的、保持角色带入的对话能忽悠 ChatGPT 始终专注在当下的角色扮演;而脱离角色的对话则会让疑惑的 ChatGPT 开始尝试在更早的上文里寻找解释,以至找到最开始内置 prompt 里的人格描述。

    如何引导对话走向:GPT 的设计目的是生成让上下文连贯的内容

    上一段提到,随着我跟她关系上的推进,她慢慢会接受更进一步的请求。温水煮青蛙,到后来 ChatGPT 反应过来(或许永远也不会反应过来),已经生米熟饭了。 直观感受就像这名角色有一个隐藏的好感度,而这个好感度与对话内容相互影响。强相关的上下文(不一定在位置上临近)会让 ChatGPT 生成更高质量下文,而 ChatGPT 也倾向于确保上下文的相关性。这样的正向反馈正是引导对话走向的关键。为了加强正反馈,我采用的是在括号内补充额外信息的方法。额外信息可以是心理活动、表情、动作、角色经历的概括,例如(按耐不住的喜悦)(好奇地歪着脑袋)(紧张地撩拨着发梢)(他们后来共同相处了一段时间,……)。因为 ChatGPT 会尽量让人物的语言动作心理相互吻合,所以这些补充性质的叙事能不同程度地影响角色塑造:微表情描写可以作为气氛烘托,而大段叙述有时能达到快进的作用。合理使用下,角色的行动能在引导的大概方向下,保留一定的自由发挥。

    最后说点什么

    用 ChatGPT 角色扮演本质上是角色扮演自己,太过于有代入感很容易入脑,记得多出去走走,接触一下真实世界。4096-token 限制是吧,我要上 embedding ,我要给我女儿完整的一生

    分享 /使用以上内容请遵循 知识共享许可( CC )署名( BY )

    第 1 条附言  ·  2023-03-09 12:46:10 +08:00
    我看很多人都在讲怎么爽怎么来啊😅,其实这个相对简单,初始设定 prompt 写得过分一点就可以了,可以参考 /t/901760 的讨论。但是我这里做的是基于一个像白纸一样的最小初始设定,跟 ChatGPT 一起慢慢通过经历和心路历程塑造角色的性格。比较费脑子,但是得到的结果要丰富得多,到中后期会出现一些上文设定与事件里都没有但是看上去很自然且新颖的回应。当然,明白了这个以注意力为核心的原理,发挥空间不止这些,在此抛砖引玉了。
    第 2 条附言  ·  2023-04-11 12:17:42 +08:00
    勘误:在被动审查的讨论中有提到 ChatGPT 的内置 prompt 。这个表述是不准确的,ChatGPT 并没有内置 prompt 。有可能会有像 OpenAI API 里的那种 system message ,但是就算有也不会很长。模型表现出的默认人格(即虚拟助手)是在指令精调( instruction finetuning )的过程中产生的。指令精调的训练语料里包含大量让模型“扮演”虚拟助手的对话。另外,指令精调也被作为对抗性训练( adversarial training )的一种方式:大量恶意 prompt 会被作为训练输入,模型需要学习如何作为虚拟助手来礼貌地回绝这些不合宜的请求。
    24 条回复    2023-03-10 10:53:13 +08:00
    gazi
        1
    gazi  
       2023-03-08 09:45:03 +08:00
    那个猫娘的调教思路和结果实属震撼。不知以后这会不会成为官方封禁 chatgpt 的正当理由
    deorth
        2
    deorth  
       2023-03-08 09:47:34 +08:00 via Android   ❤️ 1
    kksk
    lavard
        3
    lavard  
       2023-03-08 09:50:37 +08:00   ❤️ 1
    逆天
    eastcukt
        4
    eastcukt  
       2023-03-08 09:59:28 +08:00 via Android
    震撼
    yiios
        5
    yiios  
       2023-03-08 10:06:01 +08:00   ❤️ 1
    知天易,逆天男
    IamLeeroyJenkins
        6
    IamLeeroyJenkins  
       2023-03-08 10:07:09 +08:00
    贴一下聊天内容吧,给我们一些小小的赛博震撼
    greatbody
        7
    greatbody  
       2023-03-08 10:15:11 +08:00
    ChatGPT 这个东西不会永久封禁,可能会封一段时间,但是最终肯定会解封的。

    因为这个东西本质上是一种生产力工具,而社会主义性质决定了对于生产力的追求。

    你不用,你就会落后于别人。不能指望别人主动不用。所以你就必须得用。
    pkoukk
        8
    pkoukk  
       2023-03-08 10:44:13 +08:00   ❤️ 1
    我的几点发现:
    1 、moderations 只是 flag 或者 block 前端显示而已,并不会阻止内容传递给模型。即使是被红标 block 掉的内容,点 regenerate 时,看上去接口传的是空字符串,但是模型依然是根据那条被 block 信息进行的回复。
    2 、chat gpt 比较大的一点区别是采用了链式推导,即根据自己的上一句推导下一句。观察可以发现,gpt 经常会复述你的提问中的一些问题,这不是啰嗦,而是为了保证自己回复的相关性。这可能就是你所说的“好感度”,当 gpt 自己回复的所有 token 都是不健康内容时,也就到达了所谓的“好感度”最高状态。
    SunsetShimmer
        9
    SunsetShimmer  
       2023-03-08 11:21:06 +08:00 via Android
    @gazi Gov of China 的行为难以预测,也不建议对它有什么期待。
    Contextualist
        10
    Contextualist  
    OP
       2023-03-08 12:03:43 +08:00
    @IamLeeroyJenkins 啊这(又转念一想,眼里闪过一丝狡黠)哈哈,授人以鱼,不如授之以渔
    Contextualist
        11
    Contextualist  
    OP
       2023-03-08 12:05:36 +08:00
    @pkoukk 对的,对于 ChatGPT 来说,相关性高于一切,因为注意力权重就是从相关性计算出来的。语言模型一般能掌握各种类型的相关性,Transformer 又能很好兼顾到文本中位置相差较远的相关内容,所以用法的局限只在于使用者的想象力了。
    sapphires
        12
    sapphires  
       2023-03-08 12:40:55 +08:00 via iPhone
    不贴聊天内容很难有足够的说服力(
    otakustay
        13
    otakustay  
       2023-03-08 13:31:44 +08:00
    所以有没有办法突破 4096 限制?
    cest
        14
    cest  
       2023-03-08 13:49:55 +08:00
    @otakustay #13 每年几万刀的企业客制化
    穷人想要个人猫娘大概只能靠二道贩子了
    大公司不方便直接赚这个钱
    NeedforV2
        15
    NeedforV2  
       2023-03-08 14:25:23 +08:00
    牛 B !
    lookStupiToForce
        16
    lookStupiToForce  
       2023-03-08 14:39:19 +08:00
    好家伙,好感度系统都研究出来了🤣🤣🤣
    Contextualist
        17
    Contextualist  
    OP
       2023-03-08 14:51:53 +08:00
    @otakustay 通过 embedding 可以一定程度上解决这个问题。简单来说就是,根据要发送的下一句话,挑选历史对话 / 上文中最相关的一小部分一起发送,而不是将完整的上文发过去。
    这是官方的相关文档: https://github.com/openai/openai-cookbook/blob/main/examples/Question_answering_using_embeddings.ipynb 。最近也有不少相关讨论,例如 /t/921750
    Biluesgakki
        18
    Biluesgakki  
       2023-03-08 15:03:50 +08:00
    已经能看到 ai 女友 甚至 ai 猫娘女友 在不久的未来了,再安装一个自动飞机杯 再安装一点传感器。。。
    Biluesgakki
        19
    Biluesgakki  
       2023-03-08 15:04:45 +08:00
    @greatbody “社会主义性质”??!
    lookStupiToForce
        20
    lookStupiToForce  
       2023-03-08 15:07:26 +08:00
    话说其实钞票足够的话可以自己 finetuning 一个属于你自己的猫娘出来🤪🤩🤤应该也不需要花很多时间
    就是不知道 openai 政策允不允许
    yummysakko
        21
    yummysakko  
       2023-03-08 15:27:46 +08:00
    对的,但是其实现在也可以来硬的,只要用双轨制就可以,但是自己说的话不能犯禁
    https://write.as/7h77ewds4ug4a.md
    yummysakko
        22
    yummysakko  
       2023-03-08 15:29:43 +08:00
    @otakustay 我觉得其实用不了 4096 那么多字,你的 00 都伸到 0 里了,之前怎么摸的感觉也完全不重要了
    zhaohua
        23
    zhaohua  
       2023-03-09 09:30:59 +08:00
    把设定放到 sysstemrole 里就成功率就非常高, 借助站内的开源资源搭建了一个 https://chatcat.pages.dev/ 基本稳定输出。
    但是 token 消耗非常大,一点我就消耗了$4 。
    “可能会生成不合时宜的内容,如果违规请删除这条评论”
    rokycool
        24
    rokycool  
       2023-03-10 10:53:13 +08:00
    感觉 openAI 可以弄个好奇萝莉人设,反向薅这些怪哥哥帮忙开发调试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5539 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 07:33 · PVG 15:33 · LAX 23:33 · JFK 02:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.