原文:https://arxiv.org/pdf/2309.04269
速读:《从稀疏到密集:使用链式密度提示的GPT-4摘要生成》
收录到:总结知识常用prompts
摘要
在自动文本摘要中,确定要包含的“正确”信息量是一个具有挑战性的任务。一个好的摘要需要在保持详细和以实体为中心的同时,避免过于冗长和难以理解。为了更好地理解这种权衡,我们提出了一种名为“链式密度”(Chain of Density, CoD)的提示方法,通过这种方法,GPT-4能够生成越来越密集的摘要。我们发现,CoD生成的摘要比使用普通提示生成的GPT-4摘要更具抽象性、融合性,并且减少了开头偏差。通过对100篇CNN/DailyMail文章进行人类偏好研究,我们发现人类更喜欢比普通提示生成的GPT-4摘要更密集的摘要,并且其密度几乎与人工编写的摘要相当。
1. 引言
近年来,自动摘要技术取得了长足的进步,这主要归功于从监督微调到使用大型语言模型(LLMs)进行零样本提示的范式转变。例如,GPT-4可以在没有额外训练的情况下,通过精心设计的提示实现对摘要特征(如长度、主题和风格)的精细控制。
然而,摘要的信息密度是一个常被忽视的方面。理论上,作为对另一文本的压缩,摘要应该比源文档包含更高的信息浓度。然而,摘要的密度是一个开放性问题。如果摘要包含的信息不足,则会显得无足轻重;如果包含过多信息,则可能会变得难以理解,而不会增加整体长度。在固定的token预算下传达更多信息需要结合抽象、压缩和融合。在变得难以理解甚至事实错误之前,可以为额外信息腾出的空间是有限的。
2. 链式密度提示(CoD)
2.1 目标
我们的目标是生成一组具有不同信息密度的GPT-4摘要,同时控制长度,因为长度在评估摘要时已被证明是一个强烈的混杂因素。为此,我们设计了一个单一的链式密度(CoD)提示,通过该提示生成一个初始摘要,并使其逐渐变得实体密集。具体来说,对于固定数量的轮次,从源文本中识别出一组独特的显著实体,并将其融合到前一个摘要中,而不会增加长度。第一个摘要由于只关注1-3个初始实体,因此是实体稀疏的。
2.2 数据
我们从CNN/DailyMail摘要测试集中随机抽取了100篇文章,用于生成CoD摘要。
2.3 参考点
为了便于比较,我们将CoD摘要的统计数据与人工编写的要点式参考摘要以及使用普通提示生成的GPT-4摘要进行了比较:
- 普通提示: “用不超过70个单词为文章写一个非常简短的摘要。”
我们设置所需的token长度以匹配CoD摘要的长度(如下表所示)。
2.4 提示示例
以下是CoD提示的示例:
请生成一个非常简短的摘要,不超过70个单词。然后,逐步添加1-3个缺失的重要实体,而不增加长度。
完整的CoD提示词示例 (英文原文):
Article: {{ ARTICLE }}
You will generate increasingly concise, entity-dense summaries of the above article.
Repeat the following 2 steps 5 times.
Step 1. Identify 1-3 informative entities (";" delimited) from the article which are missing from the previously generated summary.
Step 2. Write a new, denser summary of identical length which covers every entity and detail from the previous summary plus the missing entities.
A missing entity is:
- relevant to the main story,
- specific yet concise (5 words or fewer),
- novel (not in the previous summary),
- faithful (present in the article),
- anywhere (can be located anywhere in the article).
Guidelines:
- The first summary should be long (4-5 sentences, ~80 words) yet highly non-specific, containing little information beyond the entities marked as missing. Use overly verbose language and fillers (e.g., "this article discusses") to reach ~80 words.
- Make every word count: rewrite the previous summary to improve flow and make space for additional entities.
- Make space with fusion, compression, and removal of uninformative phrases like "the article discusses".
- The summaries should become highly dense and concise yet self-contained, i.e., easily understood without the article.
- Missing entities can appear anywhere in the new summary.
- Never drop entities from the previous summary. If space cannot be made, add fewer new entities.
Remember, use the exact same number of words for each summary.
Answer in JSON. The JSON should be a list (length 5) of dictionaries whose keys are "Missing_Entities" and "Denser_Summary".
提示词解释:
这个详细的CoD提示词旨在引导GPT-4逐步生成更密集的摘要,其核心思想是通过迭代的方式,每一轮都向摘要中添加新的关键实体,同时保持摘要的长度不变。让我们分解一下这个提示词的各个部分:
Article: {{ ARTICLE }}
: 这是一个占位符,您需要将您想要摘要的文章内容替换{{ ARTICLE }}
。You will generate increasingly concise, entity-dense summaries of the above article.
: 这是指令的核心,告诉模型目标是生成越来越简洁且实体密集的摘要。Repeat the following 2 steps 5 times.
: 指定迭代次数为5次,意味着模型将重复执行接下来的两个步骤五轮,逐步增加摘要的密度。Step 1. Identify 1-3 informative entities (";" delimited) from the article which are missing from the previously generated summary.
: 步骤1:识别缺失实体。模型需要从原始文章中识别1到3个信息量大的实体,这些实体必须是之前生成的摘要中没有出现过的。实体之间用分号;
分隔。Step 2. Write a new, denser summary of identical length which covers every entity and detail from the previous summary plus the missing entities.
: 步骤 2:生成更密集的摘要。 模型需要基于之前的摘要,融入步骤1中识别出的缺失实体,生成一个新的摘要。关键是新摘要的长度要与之前的摘要完全相同,这就迫使模型必须压缩和融合信息,以容纳新实体。A missing entity is:
: 定义了“缺失实体”的标准,确保选择的实体是高质量且相关的:- relevant to the main story
: 与文章的主要故事相关。- specific yet concise (5 words or fewer)
: 具体且简洁,不超过5个词。- novel (not in the previous summary)
: 在之前的摘要中没有出现过。- faithful (present in the article)
: 必须在文章中真实存在。- anywhere (can be located anywhere in the article)
: 可以位于文章的任何位置。
Guidelines:
: 提供了一系列指南,更详细地指导模型如何执行摘要生成任务:- The first summary should be long (4-5 sentences, ~80 words) yet highly non-specific...
: 第一个摘要的指导:要求第一个摘要较长(约80词,4-5句),但信息量较低,主要目的是为后续迭代打下基础。可以使用冗余的语言和填充词。- Make every word count: rewrite the previous summary to improve flow and make space for additional entities.
: 精简语言: 强调需要重写之前的摘要,优化语言表达,为新实体的加入腾出空间。- Make space with fusion, compression, and removal of uninformative phrases like "the article discusses".
: 空间腾挪技巧: 明确指出使用融合、压缩和删除无信息短语等技巧来压缩摘要。- The summaries should become highly dense and concise yet self-contained, i.e., easily understood without the article.
: 摘要质量目标: 要求最终的摘要要高度密集、简洁,但同时也要是自包含的,即不看原文也能理解摘要的内容。- Missing entities can appear anywhere in the new summary.
: 实体位置: 新加入的实体可以出现在新摘要的任何位置。- Never drop entities from the previous summary. If space cannot be made, add fewer new entities.
: 实体保留: 强调绝不能删除之前摘要中的实体。如果空间实在不够,可以少添加新的实体。- Remember, use the exact same number of words for each summary.
: 长度一致: 再次强调每一轮生成的摘要的长度必须保持一致。Answer in JSON. The JSON should be a list (length 5) of dictionaries whose keys are "Missing_Entities" and "Denser_Summary".
: 输出格式: 要求模型以JSON格式输出结果。JSON应该是一个包含5个字典的列表,每个字典包含 "Missing_Entities" (本轮添加的缺失实体) 和 "Denser_Summary" (本轮生成的更密集的摘要) 两个键。
图1: 链式密度(CoD)提示和示例输出。在每一步中,都会向之前的摘要中添加1-3个额外的细节(实体),而不增加长度。为了腾出空间容纳新实体,现有内容会被改写(例如,压缩、融合)。一半的注释者(2/4)更喜欢倒数第二个摘要,其余的则更喜欢最后一个摘要。
CoD提示词实际工作使用示例:
假设我们有一篇关于“美国总统拜登访问波兰”的新闻文章,我们想要使用CoD提示词生成一系列不同密度的摘要。
步骤 1: 准备输入文章
首先,我们需要将新闻文章的内容准备好,例如:
美国总统乔·拜登 неожиданно 抵达波兰进行访问,与波兰总统安杰伊·杜达举行会晤。此次访问正值俄乌冲突一周年之际,预计两国领导人将讨论地区安全、对乌克兰的进一步支持以及加强北约东翼等议题。拜登的访问是对波兰在支持乌克兰难民和向乌克兰提供军事援助方面所做努力的肯定。此外,拜登还计划在华沙就俄乌冲突发表重要讲话,并会见在波兰的美军士兵。
步骤 2: 构建API请求 (以OpenAI API为例)
我们将使用OpenAI API (或其他支持GPT-4模型的API) 来发送请求。 请求的body部分将包含我们的CoD提示词,并将 {{ ARTICLE }}
替换为准备好的文章内容。
{
"model": "gpt-4",
"prompt": "Article: 美国总统乔·拜登 неожиданно 抵达波兰进行访问,与波兰总统安杰伊·杜达举行会晤。此次访问正值俄乌冲突一周年之际,预计两国领导人将讨论地区安全、对乌克兰的进一步支持以及加强北约东翼等议题。拜登的访问是对波兰在支持乌克兰难民和向乌克兰提供军事援助方面所做努力的肯定。此外,拜登还计划在华沙就俄乌冲突发表重要讲话,并会见在波兰的美军士兵。\nYou will generate increasingly concise, entity-dense summaries of the above article.\n\nRepeat the following 2 steps 5 times.\n\nStep 1. Identify 1-3 informative entities (\";\" delimited) from the article which are missing from the previously generated summary.\nStep 2. Write a new, denser summary of identical length which covers every entity and detail from the previous summary plus the missing entities.\n\nA missing entity is:\n- relevant to the main story, \n- specific yet concise (5 words or fewer), \n- novel (not in the previous summary), \n- faithful (present in the article), \n- anywhere (can be located anywhere in the article).\n\nGuidelines:\n\n- The first summary should be long (4-5 sentences, ~80 words) yet highly non-specific, containing little information beyond the entities marked as missing. Use overly verbose language and fillers (e.g., \"this article discusses\") to reach ~80 words.\n- Make every word count: rewrite the previous summary to improve flow and make space for additional entities.\n- Make space with fusion, compression, and removal of uninformative phrases like \"the article discusses\".\n- The summaries should become highly dense and concise yet self-contained, i.e., easily understood without the article. \n- Missing entities can appear anywhere in the new summary.\n- Never drop entities from the previous summary. If space cannot be made, add fewer new entities. \n\nRemember, use the exact same number of words for each summary.\nAnswer in JSON. The JSON should be a list (length 5) of dictionaries whose keys are \"Missing_Entities\" and \"Denser_Summary\".",
"max_tokens": 1000, // 确保模型有足够的token生成完整JSON输出
"temperature": 0.7// 可调整temperature控制生成结果的随机性
}
步骤 3: 发送API请求并接收JSON响应
将上述JSON请求发送到OpenAI API端点。 API会返回一个JSON格式的响应,其中包含五个不同密度的摘要以及每一步添加的缺失实体。
步骤 4: 解析JSON响应并使用摘要
解析API返回的JSON响应。 您会得到一个JSON列表,类似于:
{
"Missing_Entities": [],
"Denser_Summary": "This article discusses a visit. It is about a president visiting a country. The president is American. The country is Poland. This is related to international relations. The visit is happening during a time of conflict. This conflict involves Russia and Ukraine. The visit aims to show support and discuss important matters. More details will be provided."
},
{
"Missing_Entities": ["Joe Biden"; "Andrzej Duda"],
"Denser_Summary": "U.S. President Joe Biden visited Poland and met with Polish President Andrzej Duda. This visit is about international relations and is happening during the Russia-Ukraine conflict. They will discuss support and security. More details are expected."
},
{
"Missing_Entities": ["one-year anniversary of the Russia-Ukraine conflict"; "regional security"; "support for Ukraine"],
"Denser_Summary": "U.S. President Joe Biden met Polish President Andrzej Duda in Poland on the one-year anniversary of the Russia-Ukraine conflict. They discussed regional security and support for Ukraine, focusing on international relations."
},
{
"Missing_Entities": ["strengthening NATO's eastern flank"; "support for Ukrainian refugees"; "military aid to Ukraine"],
"Denser_Summary": "On the Russia-Ukraine conflict's one-year anniversary, U.S. President Joe Biden visited Poland, meeting President Andrzej Duda to discuss regional security, support for Ukraine (including refugees and military aid), and strengthening NATO's eastern flank."
},
{
"Missing_Entities": ["Warsaw"; "major speech"; "U.S. troops in Poland"],
"Denser_Summary": "To mark the Russia-Ukraine conflict's one-year mark, U.S. President Joe Biden visited Warsaw, Poland, meeting President Andrzej Duda to discuss regional security, Ukrainian refugee and military aid support, strengthening NATO's eastern flank, and Biden's planned major speech and meeting with U.S. troops in Poland."
}
]
您可以根据您的需求选择合适的摘要密度。 例如,如果您需要一个非常简短的摘要,可以选择第一个或第二个; 如果您需要更详细但仍然简洁的摘要,可以选择第四个或第五个。
实际应用场景:
- 新闻聚合和内容推荐: 为不同的用户或平台提供不同密度的摘要,满足不同信息需求。
- 信息检索: 在搜索结果中展示不同密度的摘要,帮助用户快速判断文章相关性。
- 辅助阅读理解: 通过逐步增加摘要密度,帮助读者由浅入深地理解文章内容。
- 社交媒体内容生成: 针对不同社交平台(如Twitter, Facebook)生成长度和密度不同的摘要。
通过以上步骤,您就可以在实际工作中有效地使用CoD提示词,利用GPT-4生成高质量、多密度的文本摘要。
3. 统计数据
3.1 直接统计数据
在表1中,我们使用NLTK计算token,使用Spacy测量唯一实体,并将实体密度计算为比率。CoD提示在很大程度上遵循了固定的token预算。实际上,第二步导致平均减少了5个token(从72个减少到67个),因为从最初冗长的摘要中删除了不必要的单词。实体密度上升——从最初的0.089开始,低于人类和普通GPT-4(分别为0.151和0.122)——在5步密集化后达到0.167。
CoD步骤 | Token | 实体 | 密度(E/T) |
---|---|---|---|
1 | 72 | 6.4 | 0.089 |
2 | 67 | 8.7 | 0.129 |
3 | 67 | 9.9 | 0.148 |
4 | 69 | 10.8 | 0.158 |
5 | 72 | 12.1 | 0.167 |
人类 | 60 | 8.8 | 0.151 |
普通GPT-4 | 70 | 8.5 | 0.122 |
3.2 间接统计数据
随着每一步CoD,抽象性应该会增加,因为摘要被反复改写以腾出空间容纳每个额外的实体。我们使用提取密度(extractive density)来衡量抽象性:提取片段的平均平方长度。同样,随着在固定长度摘要中添加实体,融合(Fusion)的水平应该会单调增加。我们将融合代理为每个摘要句子对齐的源句子的平均数量。对于对齐,我们使用相对ROUGE增益方法,该方法将对源句子与目标句子对齐,直到添加句子的相对ROUGE增益不再为正。我们还预计内容分布(Content Distribution)——摘要内容来源的文章中的位置——将会改变。具体来说,我们预计CoD摘要最初会表现出强烈的开头偏差(Lead Bias),但逐渐开始从文章的中部和结尾引入实体。为了衡量这一点,我们使用融合中的对齐,并测量所有对齐源句子的平均句子排名。图2证实了这些假设:随着改写步骤的增加,抽象性增加(左图),融合率上升(中间图),并且摘要开始包含来自文章中间和结尾的内容(右图)。有趣的是,所有CoD摘要都比人工编写和基线摘要更具抽象性。
图2: CoD生成的摘要变得越来越抽象,同时表现出更多的融合和更少的开头偏差。
4. 结果
4.1 人类偏好
为了更好地了解CoD摘要所呈现的权衡,我们进行了基于偏好的研究,并对GPT-4进行了评分评估。
CoD步骤 | 第一名投票百分比(单个注释者) | 合计 | ||
---|---|---|---|---|
1 | 3.0 2.0 | 13.0 | 17.4 | 8.3 |
2 | 25.0 28.0 | 43.0 | 31.4 | 30.8 |
3 | 22.0 28.0 21.0 | 24.4 | 23.0 | |
4 | 29.0 25.0 13.0 | 26.7 | 22.5 | |
5 | 21.0 17.0 10.0 | 16.3 | 15.5 |
表1: CoD摘要按步骤划分的第一名投票百分比。根据合计偏好,CoD步骤的众数是2,中位数是3,期望值是3.06。
首先,我们报告了Fleiss' kappa(Fleiss, 1971)的低值0.112,这表明摘要之间的微妙差异和任务的本质是主观的。最近的研究也注意到了在判断基于GPT的摘要时,低实例级一致性(Goyal et al., 2022)。
然而,在系统层面,一些趋势开始显现。对于4位注释者中的3位,CoD步骤1在100个示例中获得了第一名投票的最大份额(分别为28%、43%和31.4%)。然而,合计起来,61%的第一名摘要(23.0+22.5+15.5)涉及了≥3个密集化步骤。首选的CoD步骤的中位数在中间(3),期望步骤是3.06。
根据第3步摘要的平均密度,我们可以粗略地推断出在CoD候选者中首选的实体密度约为0.15。从表1中我们可以看出,这个密度与人工编写的摘要(0.151)一致,但明显高于使用普通GPT-4提示生成的摘要(0.122)。
4.2 自动指标
作为评估者,GPT-4已被证明能够充分地与人类判断相一致(Fu et al., 2023; Liu et al., 2023a),甚至在某些注释任务上可能优于众包工人(Gilardi et al., 2023)。作为对我们人类评估的补充,我们提示GPT-4对CoD摘要进行1-5评分,评分维度包括:信息量、质量、连贯性、可归因性和总体。信息量、质量和可归因性的定义来自Aharoni et al. (2023),而连贯性来自Fabbri et al. (2021)。总体旨在捕捉联合品质。请参见附录A,了解用于获取每个维度分数的提示。表3表明,密集化与信息量相关,但有一个限度,得分在第4步达到峰值(4.74)。无文章维度:质量和连贯性,在2步和1步后分别下降。所有摘要都被认为是可归因于源文章的。总体得分偏向于更密集和信息量更大的摘要,第4步的得分最高。平均而言,第一和最后一个CoD步骤最不受欢迎,而中间三个步骤的得分接近(分别为4.78、4.77和4.76)。
在附录A中,我们报告了总体指标与人类判断的最高摘要级相关性(Pearson相关性为0.31),但注意到总体相关性仍然很低——这种现象在Deutsch et al. (2022)的研究中也观察到,当摘要质量相似时。
4.3 定性分析
摘要的连贯性/可读性与信息量之间存在明显的权衡。为了说明这一点,在图4中,我们展示了两个CoD步骤:一个摘要通过更多细节得到了改进,另一个摘要则受到了损害。平均而言,中间的CoD摘要最好地实现了这种平衡,但我们将其留待未来的工作来精确定义和量化这种权衡。
图4: 人类偏好的密集化步骤示例(左)和一个不偏好的示例(右)。对于左边,底部的摘要更受欢迎,因为添加“利物浦”和进球者是与主题相关的。第二个摘要通过合理的压缩腾出了空间,例如将“潜在的回到比赛中的路线”合成为“反击”。对于右边,添加更多关于“TVMonde”的细节并不能弥补实体(“网络攻击”和“Yves Bigot”)的尴尬融合,这是由于必须收紧之前的摘要而直接导致的。
5. 相关工作
GPT摘要
Goyal et al. (2022)对GPT-3在新闻文章摘要生成方面进行了基准测试,并发现人类更喜欢GPT-3摘要,而不是之前的监督基线,这并没有反映出现有的基于参考和无参考的指标。Zhang et al. (2023)发现,通过从自由职业者那里征集高质量的摘要,零样本GPT-3摘要与人类的表现相当。
基于实体的摘要
Narayan et al. (2021)提出生成实体链作为监督微调摘要模型的规划步骤,与关键词(Li et al., 2020; Dou et al., 2021)或纯提取单元(Dou et al., 2021; Adams et al., 2023a)形成对比。实体也被纳入摘要作为一种控制形式(Liu and Chen, 2021; He et al., 2022; Maddela et al., 2022),以提高忠实度(Nan et al., 2021; Adams et al., 2022),以及作为评估的单位(Cao et al., 2022; Adams et al., 2023b)。
6. 结论
我们研究了摘要密集化对人类对整体质量偏好的影响。我们发现,一定程度的密集化是受欢迎的,然而,当摘要包含过多的实体时,很难保持可读性和连贯性。我们开源了带注释的测试集以及一个更大的未注释训练集,以便进一步研究固定长度、可变密度摘要的主题。
7. 局限性
我们仅分析了单一领域的CoD,即新闻摘要。注释并没有显示出高摘要级的一致性,但确实开始显示出系统级趋势,这与之前关于基于LLM的评估的工作是一致的(Goyal et al., 2022)。最后,GPT-4是一个封闭源代码的模型,因此我们无法共享模型权重。然而,我们确实发布了所有评估数据、注释以及5,000个未注释的CoD,用于下游用例,例如,将密度提取到开源模型(如LLAMA-2(Touvron et al., 2023))中。
参考文献
(此处省略参考文献列表)
GPT-4指标
对于GPT-4的Likert风格评估,我们使用以下提示模板。
摘要: {{摘要}} {{定义}}
以下是提供给每个质量指标的定义的示例。
- 信息量: 信息量高的摘要能够捕捉文章中的重要信息,并以准确和简洁的方式呈现。
- 质量: 高质量的摘要易于理解和理解。
- 连贯性: 连贯的摘要结构良好,组织良好。
- 可归因性: 摘要中的所有信息是否完全可归因于文章?
- 总体偏好: 一个好的摘要应该以简洁、逻辑和连贯的方式传达文章的主要思想。
质量和连贯性提示不包括文章中的提示。这些定义是从之前的摘要注释工作中改写的:(Fabbri et al., 2021; Aharoni et al., 2023)。
维度 | 相关性 |
---|---|
信息量 | 0.215 |
质量 | 0.120 |
连贯性 | 0.178 |
可归因性 | 0.245 |
总体 | 0.311 |
表2: 人类偏好与GPT-4 Likert评分之间的摘要级Pearson相关系数。
元评估
为了计算摘要级相关性,我们首先将偏好数据转换为向量,表示该摘要获得第一名投票的次数。表4显示了,不出所料,旨在捕捉总体摘要评级的提示与总体偏好的总体级Pearson相关性最高(0.31),但总体相关性仍然很低。
总结
这篇论文探讨了如何通过链式密度提示(CoD)方法,利用GPT-4生成越来越密集的摘要。研究发现,一定程度的密集化能够提升摘要的质量,但过高的密度则会损害可读性和连贯性。研究团队通过人类偏好研究和GPT-4自动评估,验证了这一结论,并开源了相关的注释数据和未注释的摘要数据,为未来的研究提供了宝贵的资源。
关键点总结:
- 链式密度提示(CoD): 通过逐步添加缺失的实体而不增加长度,生成更密集的摘要。
- 实体密度: 使用实体密度作为衡量摘要信息量的指标,发现人类偏好接近人工编写摘要的密度。
- 抽象性与融合: CoD生成的摘要更具抽象性和融合性,且减少了开头偏差。
- 人类偏好: 人类更喜欢比普通GPT-4摘要更密集的摘要,但过高的密度会降低可读性。
- 自动评估: GPT-4的自动评估结果与人类偏好基本一致,但总体相关性较低。
未来研究方向:
- 更精确的权衡定义: 未来的研究可以进一步定义和量化信息量与可读性之间的权衡。
- 多领域应用: 将CoD方法应用于其他领域,如学术论文、技术文档等,以验证其通用性。
- 模型改进: 探索如何改进模型以在保持高信息量的同时提升可读性。
通过这篇论文,我们可以看到,AI在文本处理和生成方面已经取得了令人瞩目的进展,但仍然面临着信息量与可读性之间的平衡挑战。未来,随着技术的不断进步,我们有理由相信,AI生成的摘要将更加智能和人性化。