目录
方法介绍
评估
分析
首页 科技周边 人工智能 符合人类创作过程的AIGC:自动生成长故事的模型出现了

符合人类创作过程的AIGC:自动生成长故事的模型出现了

Apr 11, 2023 pm 10:13 PM
ai 创作

在今天的人工智能领域,AI 写作神器层出不穷,技术和产品可谓日新月异。

如果说 OpenAI 两年前发布的 GPT-3 在文笔上还稍欠火候,那么前段时间的 ChatGPT 的生成结果可以算是「文笔华丽、情节饱满、逻辑自洽兼而有之」。

有人说,AI 要是动起笔来,那真是没人类什么事了。

但不管是人类还是 AI,一旦把「字数要求」提高,文章就会变得更难「驾驭」。

近日,华人 AI 研究科学家田渊栋和其他几位研究者最近一起发布了一个新的语言模型——Re^3,这项研究也入选了 EMNLP 2022。

符合人类创作过程的AIGC:自动生成长故事的模型出现了

论文链接:​https://arxiv.org/pdf/2210.06774.pdf​

田渊栋曾在知乎上介绍这个模型:

Re^3 的想法极为简单,通过设计 prompt 让它生成一致性强的故事,完全不需要微调大模型。我们跳出语言模型的逐词生成的线性逻辑,改用层次化生成方式:先在 Plan 阶段生成故事角色,角色的各种属性和大纲,然后在 Draft 阶段给定故事大纲和角色,反复生成具体的段落,这些具体段落由 Rewrite 阶段筛选,挑出与前一段落高度相关的生成段落,而丢弃关系不大的(这需要训练一个小模型),最后在 Edit 阶段修正一些明显的事实错误。

方法介绍

Re^3 的思路是通过递归 Reprompt 和调整生成更长的故事,这更符合人类作家的创作过程。Re^3 将人类写作过程分解为规划、草稿、改写和编辑 4 个模块。

符合人类创作过程的AIGC:自动生成长故事的模型出现了

规划(Plan)模块

如下图 2 所示,规划模块会将故事前提(Premise)扩展为背景、人物角色和故事大纲。首先,背景是故事前提简单的一句话扩展,使用 GPT3-Instruct-175B (Ouyang et al.,2022) 获得;然后,GPT3-Instruct175B 再生成角色名称,并根据前提和背景生成角色描述;最后,该方法 prompt GPT3-Instruct175B,以编写故事大纲。规划模块中的组件是通过 prompt 自己生成的,将被反复使用。

符合人类创作过程的AIGC:自动生成长故事的模型出现了

草稿(Draft)模块

针对规划模块得到的每一条大纲,草稿模块会继续生成几个故事段落。每个段落都是从结构化 prompt 生成的固定长度续写,结构化 prompt 由递归 reprompt 形成,草稿模块如下图 3 所示。

符合人类创作过程的AIGC:自动生成长故事的模型出现了

改写(Rewrite)模块

生成器的第一个输出通常是低质量的,就像人们完成的初稿,二稿可能需要在反馈的基础上改写一篇文章。

改写模块通过根据与先前段落的连贯性和与当前大纲点的相关性对草稿模块输出重新排序来模拟改写过程,如下图 4 所示。

符合人类创作过程的AIGC:自动生成长故事的模型出现了

编辑(Edit)模块

与大幅改写不同的是,编辑模块是对通过规划、草稿和改写模块生成的段落的局部编辑,进一步完善生成内容。具体来说,目标是消除长序列的事实不一致。当人们在校对时发现一个小的事实不连续,可能只是简单地编辑一下有问题的细节,而不是对高层次的文章规划进行重大修改或进行实质性的改写。编辑模块通过两个步骤来模仿人类创作的这个过程:检测事实的不一致,并对其进行纠正,如下图 5 所示。

符合人类创作过程的AIGC:自动生成长故事的模型出现了

评估

在评估环节,研究者将任务设定为在一个简短的初始前情下生成一个故事。由于「故事」很难用基于规则的方式来定义,研究者没有对可接受的输出施加任何基于规则的约束,而是通过几个人为注释的指标来评估。为了生成初始前提,研究者用 GPT3-Instruct-175B 进行了 prompt,以获得 100 个不同的前情。

Baseline

由于先前的方法与 Re^3 相比更侧重于短故事,所以很难直接比较。于是研究者使用了以下两个基于 GPT3-175B 的基线:

1. ROLLING,通过 GPT3-175B 一次生成 256 个 token,使用前情和所有先前生成的故事文本作为 prompt,如果超过 768 个 token,则左截断 prompt。因此,「滚动窗口」最大上下文长度是 1024,与 RE^3 中使用的最大上下文长度相同。在生成了 3072 个 token 后,研究者使用了与 RE^3 相同的故事结束机制。

2. ROLLING-FT,与 ROLLING 相同,只是 GPT3-175B 首先会对 WritingPrompts 故事中的几百个段落进行微调,这些段落至少有 3000 个 token。

指标

研究者使用的几个评估指标包括:

1、有趣。对读者来说是有趣的。

2、连贯性。情节连贯。

3、相关性。忠实于最初的前情。

4、类人。被判断为是人类写的。

此外,研究者还追踪了生成的故事有多少次出现以下几方面的写作问题:

1、叙事。叙述或风格上的令人震惊的变化。

2、不一致。与事实不符或包含非常奇怪的细节。

3、混乱。令人困惑或难以理解。

4、重复性。高度的重复性。

5、不流畅。频繁的语法错误。

结果

符合人类创作过程的AIGC:自动生成长故事的模型出现了

如表 1 所示,Re^3 在根据预期前情写一个较长的故事方面非常有效,同时能保持连贯的总体情节,验证了研究者受人类写作过程启发而做出的设计选择,以及递归 reprompting 生成方法。与 ROLLING 和 ROLLING-FT 相比,Re^3 在连贯性和相关性方面都有明显提高。注释者还将 Re^3 的故事标记为「具有明显较少的冗杂写作问题」。

Re^3 表现出了绝对意义上的强大性能:注释者认为在两次对比中,Re^3 的故事分别有 83.3% 和 80.0% 是由人类写的。表 2 显示了 Re^3 的一个经过大量删节的故事实例,可以看出很强的连贯性和前情相关性:

符合人类创作过程的AIGC:自动生成长故事的模型出现了

尽管如此,研究者仍从质量上观察到 Re^3 仍有很大的改进空间。

表 3 中显示了两个共同的问题。首先,尽管 Re^3 几乎总是在某种程度上遵循故事前情,但与基线故事不同,它们可能无法捕捉到前提的所有部分,也可能无法遵循规划模块生成的部分大纲(例如,表 3 中前情和大纲的第一部分)。其次,由于改写模块,特别是编辑模块的失败,仍然有一些混乱的段落或矛盾的语句:例如,在表 3 中,人物 Jaxon 在某些地方有一个矛盾的身份。

符合人类创作过程的AIGC:自动生成长故事的模型出现了

不过,与滚动窗口方法(rolling window)不同,Re^3 的规划方法能够「自我纠正」,回到最初的情节。表 3 中故事的后半部分说明了这种能力。

分析

消融实验

研究者探讨了 Re^3 的各个模块的相对贡献:规划、草稿、改写和编辑,并依次对每个模块进行消融实验。Draft 模块除外,因为尚不清楚没有它的话系统会如何运行。

符合人类创作过程的AIGC:自动生成长故事的模型出现了

表 4 显示,模仿人类规划和改写过程的「规划」和「改写」模块对整体情节的连贯性和前提的相关性至关重要。然而,「编辑」模块对这些指标的贡献很小。研究者还从质量上观察到,在 Re^3 的最终故事中仍然存在许多连贯性问题,这些问题没有被编辑模块所解决,但这些问题可以由一个细心的人类编辑来解决。

「编辑」模块的进一步分析

研究者使用了一个可控的环境,以研究「编辑」模块是否至少能检测到基于角色的事实不一致。检测子系统称为 STRUCTURED-DETECT,避免与整个编辑模块混为一谈。

如表 5 所示,当检测基于角色的不一致时,根据标准的 ROC-AUC 分类指标,STRUCTUREDDETECT 优于两个基线。ENTAILMENT 系统的 ROC-AUC 得分勉强优于偶然表现(0.5),突出了核心挑战,即检测系统必须是压倒性的精确。此外,STRUCTURED-DETECT 的设计是为了扩展到较长的段落。研究者假设,与基线相比,性能差距会在有较长输入的评估中扩大。

符合人类创作过程的AIGC:自动生成长故事的模型出现了

即使在这种简化的环境中,所有系统的绝对性能仍然很低。此外,许多生成的完整故事包含非角色的不一致,例如背景与当前场景的不一致。虽然研究者没有正式分析 GPT-3 编辑 API 在检测到不一致之处后的修正能力,但也观察到它可以修正孤立的细节,而在处理较大的变化时会很吃力。

综上所述,来自检测和修正子系统的复合错误使得本研究目前的编辑模块很难在数千字的范围内有效地改善事实的一致性,而不同时引入不必要的变化。

以上是符合人类创作过程的AIGC:自动生成长故事的模型出现了的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SQL 如何添加新列 SQL 如何添加新列 Apr 09, 2025 pm 02:09 PM

SQL 中通过使用 ALTER TABLE 语句为现有表添加新列。具体步骤包括:确定表名称和列信息、编写 ALTER TABLE 语句、执行语句。例如,为 Customers 表添加 email 列(VARCHAR(50)):ALTER TABLE Customers ADD email VARCHAR(50);

SQL 添加列的语法是什么 SQL 添加列的语法是什么 Apr 09, 2025 pm 02:51 PM

SQL 中添加列的语法为 ALTER TABLE table_name ADD column_name data_type [NOT NULL] [DEFAULT default_value]; 其中,table_name 是表名,column_name 是新列名,data_type 是数据类型,NOT NULL 指定是否允许空值,DEFAULT default_value 指定默认值。

SQL 添加列时如何设置默认值 SQL 添加列时如何设置默认值 Apr 09, 2025 pm 02:45 PM

为新添加的列设置默认值,使用 ALTER TABLE 语句:指定添加列并设置默认值:ALTER TABLE table_name ADD column_name data_type DEFAULT default_value;使用 CONSTRAINT 子句指定默认值:ALTER TABLE table_name ADD COLUMN column_name data_type CONSTRAINT default_constraint DEFAULT default_value;

SQL 清空表:性能优化技巧 SQL 清空表:性能优化技巧 Apr 09, 2025 pm 02:54 PM

提高 SQL 清空表性能的技巧:使用 TRUNCATE TABLE 代替 DELETE,释放空间并重置标识列。禁用外键约束,防止级联删除。使用事务封装操作,保证数据一致性。批量删除大数据,通过 LIMIT 限制行数。清空后重建索引,提高查询效率。

使用 DELETE 语句清空 SQL 表 使用 DELETE 语句清空 SQL 表 Apr 09, 2025 pm 03:00 PM

是的,DELETE 语句可用于清空 SQL 表,步骤如下:使用 DELETE 语句:DELETE FROM table_name;替换 table_name 为要清空的表的名称。

如何在 SQL 表中添加一列 如何在 SQL 表中添加一列 Apr 09, 2025 pm 02:06 PM

在 SQL 表中添加列需要执行以下步骤:打开 SQL 环境并选择数据库。选择要修改的表,并使用 "ADD COLUMN" 子句添加一列,其中包括列名、数据类型和是否允许空值。执行 "ALTER TABLE" 语句以完成添加。

Redis内存碎片如何处理? Redis内存碎片如何处理? Apr 10, 2025 pm 02:24 PM

Redis内存碎片是指分配的内存中存在无法再分配的小块空闲区域。应对策略包括:重启Redis:彻底清空内存,但会中断服务。优化数据结构:使用更适合Redis的结构,减少内存分配和释放次数。调整配置参数:使用策略淘汰最近最少使用的键值对。使用持久化机制:定期备份数据,重启Redis清理碎片。监控内存使用情况:及时发现问题并采取措施。

phpmyadmin建立数据表 phpmyadmin建立数据表 Apr 10, 2025 pm 11:00 PM

要使用 phpMyAdmin 创建数据表,以下步骤必不可少:连接到数据库并单击“新建”标签。为表命名并选择存储引擎(推荐 InnoDB)。通过单击“添加列”按钮添加列详细信息,包括列名、数据类型、是否允许空值以及其他属性。选择一个或多个列作为主键。单击“保存”按钮创建表和列。

See all articles