前言
ChatGPT 是万能的吗?
显然不是,至少在今天我们讨论的长文本生成方面,ChatGPT 几乎不可能生成长篇小说。
这一现象在某种程度上源于 Transformer 模型的固有局限性。其核心组件 self-attention 的复杂度决定了其无法处理过长的输入,因此也不太适合生成冗长的输出。
为了解决这个问题,许多研究试图将循环机制(RNN)引入 Transformer,如著名的 Transformer-XL 和 Block-Recurrent Transformer。然而,这些方法面临一个关键而现实的问题:它们需要修改模型的架构,这与像 ChatGPT 这样闭源的大模型不兼容。由于 ChatGPT 的模型参数和结构并不对外公开,因此我们只能通过提供提示(Prompt)来与之交互。
正因为这些大模型的闭源属性,使得我们在使用它们时,不得不把整个模型作为最小单元,无法拆解内部模块以满足长文本生成的需求。
在这种情况下,我们该如何将循环机制引入到闭源大模型中呢?
今天讨论的文章实现了一个巧妙的想法:仅通过自然语言 Prompt,我们即可模拟 LSTM 机制,无需对 ChatGPT 的内部结构进行任何修改!
论文地址:
RecurrentGPT 论文
出版机构:
苏黎世联邦理工大学
项目地址:
RecurrentGPT GitHub
在线 Demo 一:
长篇小说写作
在线 Demo 二:
交互式小说
基本原理
RecurrentGPT 的整体架构基于模型之间的互动(可参考文献Interactive Natural Language Processing)。在每个时间步上,ChatGPT 接受四种输入:
- 上一个时刻的输出
- 梗概(Plan)
- 短期记忆(Short-Term Memory)
- 长期记忆(Long-Term Memory)
在生成内容的过程中,ChatGPT 执行三种类型的操作:
- 更新梗概:生成下一步内容的梗概,可能有多个备选参考。可以使用一个额外的“用户模拟器”来筛选出最合适的梗概。
- 更新短期记忆:记录最近生成内容的摘要。
- 更新长期记忆:保存历史生成内容中与当前时间步最相关的信息。
例如,如下图所示,展示了具体的一种实现方式:
在具体的实现中,作者采用了如下的 Prompt:
- RecurrentGPT 使用的具体 Prompt
作者通过这个 Prompt 指示语言模型在更新短期记忆时,不仅需要加入最新生成内容中的有用部分,还要删除与后续内容生成无关的过往记忆。此外,作者在 Prompt 中特别强调了小说写作场景的复现,以使 ChatGPT 生成的内容更具小说风格与细节,避免其过快完成情节叙述。
实验结果
作者通过人工逐对评测得出了以下结果:
在多样的小说风格和类型方面,人类读者普遍认为 RecurrentGPT 的表现更具趣味性与连贯性。
实际效果
- 用法一:内容创作者输入场景设定和需求,RecurrentGPT 可自动生成长文本,而无需过多的人为干预。
- 用法二:在生成梗概的过程中,用户可以对梗概进行选择或编辑,从而控制长文本的生成过程。
- 用法三:除了支持内容创作者外,RecurrentGPT 还为内容消费者提供新的互动体验,作者称之为 “AI as Content”(”AI即内容”)。内容消费者不仅可以阅读小说,还能够与小说进行互动,跳过内容创作者使用 AI 进行内容创作的步骤。
总结
本文介绍了一种名为 RecurrentGPT 的方法,通过使用自然语言的 Prompt 模拟了 LSTM 的循环机制,从而在闭源大模型(如 ChatGPT)中实现了长文本生成的能力,且无需修改模型的内部结构。RecurrentGPT 的整体架构基于模型与自身的交互,通过更新梗概、短期记忆和长期记忆生成内容。作者通过人工评测和实验结果展示了 RecurrentGPT 在多样的小说风格和类型中的表现优势。在实际应用方面,RecurrentGPT 可以自动生成长文本,让内容创作者选择或编辑梗概以控制生成过程,并为内容消费者提供互动式体验,使 AI 成为内容的一部分。