CritiCS:智能协作下的创意长篇故事生成框架 | EMNLP‘24

部署运行你感兴趣的模型镜像

来源:晓飞的算法工程笔记 公众号,转载请注明出处

论文: Collective Critics for Creative Story Generation

创新点


  • 提出了 C r i t i C S {\tt CritiCS} CritiCS 的框架,旨在通过基于创造力标准的集体评议,创造性地增强故事计划和文本表现力。
  • 通过实验表明, C r i t i C S {\tt CritiCS} CritiCS 有效地创造了具有创造性和连贯性的故事,使用了多样化的标准、领导者和角色等关键组件。
  • C r i t i C S {\tt CritiCS} CritiCS 支持交互式写作,使人类用户能够介入评议并主动完善故事。

内容概述


使用大型语言模型(LLMs)生成几千字的叙事连贯的长篇故事一直是一项具有挑战性的任务。之前的研究通过提出不同的框架来解决这一挑战,这些框架创建了故事计划,并基于该计划生成长篇故事。然而,这些框架主要集中在维持故事的叙事连贯性上,往往忽视了故事计划中的创造力以及从这些计划中生成的故事的表现力,而这些都是吸引读者兴趣的理想特性。

论文提出了创意故事生成框架Collective Critics for Creative Story C r i t i C S {\tt CritiCS} CritiCS ),该框架由计划优化阶段( C r P l a n {\tt CrPlan} CrPlan )和故事生成阶段( C r T e x t {\tt CrText} CrText )组成,旨在将协同修订机制融入长篇故事生成过程中。

在每个阶段,多位LLM评审者评估草稿,并根据评估创造力的标准(例如,叙事流的独特性和生成文本的生动性)提供改进建议。然后,一位领导者选择最有帮助于优化草稿的评审意见。这个修订过程经过多轮迭代,最终生成一个完整的计划和故事

广泛的人类评估表明, C r i t i C S {\tt CritiCS} CritiCS 显著提高了故事的创造力和读者的参与度,同时也保持了叙事的连贯性。此外,该框架的设计允许人类作者在整个评审过程中以任何角色积极参与,从而实现故事创作中的人机互动协作。

CritiCS


C r i t i C S {\tt CritiCS} CritiCS 由两个阶段组成( C r P l a n {\tt CrPlan} CrPlan C r T e x t {\tt CrText} CrText ),利用大语言模型(LLM)的能力来创作创意故事,并将基于创意标准的评论过程纳入其中。

CrPlan

C r P l a n {\tt CrPlan} CrPlan 中,三个评论者根据三个标准评估故事计划的创造力:原创的主题和背景设置不寻常的故事结构和不寻常的结局。这种评估确保为故事注入多样化的元素,同时赋予其新颖感。

上表展示了一个优化计划的例子,其中主角的孤独感被拟人化,从而增强了叙事背景的独特性。

首先,三个评论者各自提供建议,以利用他们的独特专业知识来增强草稿计划。接下来,领导者对三个建议进行评估、排名,并选择其认为最佳的一个。然后,将所选择的建议应用于完善计划。

为了进行详细的评论,三个评论者被赋予与故事计划相关的专业角色。同时,领导者被具身为文学编辑或创意写作专家,负责调和任何冲突。

整个过程重复进行若干轮,之后,计划评估者审查每轮候选计划,以选出最终一个在创造力与连贯性之间有效平衡的计划。

CrText

C r T e x t {\tt CrText} CrText 中,两位评论者根据来自 C r P l a n {\tt CrPlan} CrPlan 的计划审查已创作的故事,使用两个关注创意文本表现力的标准:图像和声音。

上表展示了一个经过优化的文本示例,其中动词raised被替换为arched,使得短语更具独特性。

图像表示读者被生动的心理意象所激发的程度。这包括视觉图像、声音、气味、身体感觉和情感(例如,从月球发出的柔和光辉、阴郁的阴影)。声音则指作者在创造独特且易于识别的写作风格方面的成功程度(例如,以恐怖故事风格书写、俚语、像lol这样的非正式语言)。与 C r P l a n {\tt CrPlan} CrPlan 类似,领导者选择两个建议中的一个来完善表达。

C r P l a n {\tt CrPlan} CrPlan 不同,在此过程中评论者没有角色,因为图像和声音标准提供了明确的表达修改指示,消除了需要角色来固定故事主题的必要。同时,由于每轮中的句子都在不同程度上被修改,因此没有评估者。

人机交互写作

C r i t i C S {\tt CritiCS} CritiCS 能够促进人类写作者在修订过程中的积极参与,从而实现人类与机器在创意写作中的互动协作。人类参与者能够修改系统生成的评论或撰写自己的评论,也可以担任领导者的角色,负责评估和选择评论。

主要实验




如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

### MADDPG 多智能协作实现 MADDPG(Multi-Agent Deep Deterministic Policy Gradient)是一种多智能体强化学习算法,其核心思想是通过集中式的 Critic 和分布式的 Actor 来实现多个智能体的协同或竞争优化策略[^1]。在协作任务中,MADDPG 的关键在于如何设计智能体之间的交互机制以及如何利用全局信息进行策略更新。 #### 1. 核心结构 MADDPG 的架构可以分为两个主要部分: - **分布式 Actor**:每个智能体都有一个独立的 Actor 网络,用于生成自身的动作策略。 - **集中式 Critic**:所有智能体共享一个 Critic 网络,该网络接收所有智能体的状态和动作作为输入,并评估整体联合动作的价值。 这种设计使得每个智能体能够基于局部观察执行动作,同时通过全局信息来优化策略[^1]。 #### 2. 工程实现方式 以下是一个基于 PyTorch 的简单 MADDPG 实现示例,适用于协作任务: ```python import torch import torch.nn as nn import torch.optim as optim class Actor(nn.Module): def __init__(self, obs_dim, action_dim): super(Actor, self).__init__() self.fc = nn.Sequential( nn.Linear(obs_dim, 64), nn.ReLU(), nn.Linear(64, action_dim), nn.Tanh() ) def forward(self, obs): return self.fc(obs) class Critic(nn.Module): def __init__(self, obs_dim, action_dim, n_agents): super(Critic, self).__init__() input_dim = obs_dim * n_agents + action_dim * n_agents self.fc = nn.Sequential( nn.Linear(input_dim, 128), nn.ReLU(), nn.Linear(128, 1) ) def forward(self, obs, actions): x = torch.cat([obs, actions], dim=-1) return self.fc(x) class MADDPG: def __init__(self, obs_dim, action_dim, n_agents): self.actors = [Actor(obs_dim, action_dim) for _ in range(n_agents)] self.critics = [Critic(obs_dim, action_dim, n_agents) for _ in range(n_agents)] self.actor_optims = [optim.Adam(actor.parameters(), lr=0.001) for actor in self.actors] self.critic_optims = [optim.Adam(critic.parameters(), lr=0.001) for critic in self.critics] def select_actions(self, obs): actions = [] for i in range(len(self.actors)): action = self.actors[i](torch.tensor(obs[i]).float()) actions.append(action.detach().numpy()) return actions def update(self, obs, actions, rewards, next_obs, dones): # Update critics for i in range(len(self.critics)): current_q = self.critics[i](torch.tensor(obs).float(), torch.tensor(actions).float()) next_actions = [actor(torch.tensor(next_ob).float()) for actor, next_ob in zip(self.actors, next_obs)] target_q = rewards[i] + (1 - dones[i]) * 0.99 * self.critics[i](torch.tensor(next_obs).float(), torch.stack(next_actions)) critic_loss = nn.MSELoss()(current_q, target_q.detach()) self.critic_optims[i].zero_grad() critic_loss.backward() self.critic_optims[i].step() # Update actors for i in range(len(self.actors)): actor_loss = -self.critics[i](torch.tensor(obs).float(), torch.stack([actor(torch.tensor(ob).float()) for actor, ob in zip(self.actors, obs)])).mean() self.actor_optims[i].zero_grad() actor_loss.backward() self.actor_optims[i].step() ``` #### 3. 策略联动路径 在 MADDPG 中,智能体之间的策略联动主要通过 Critic 网络实现。Critic 接收所有智能体的状态和动作作为输入,从而可以考虑全局信息来评估联合动作的价值。这种设计使得智能体能够在协作任务中学会相互配合,例如避免冲突、共享资源等[^1]。 #### 4. 挑战与解决方案 多智能体强化学习面临的主要挑战包括非平稳性、通信限制、合作与竞争等[^2]。为了解决这些问题,MADDPG 引入了集中式训练和分布式执行的思想,即在训练阶段使用全局信息优化策略,在执行阶段仅依赖局部观察生成动作[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值