在OpenAI GPT-2 论文的第 3.6 节中,它提到了基于与此相关的总结文本,但该方法是用非常高级的术语描述的:
为了诱导摘要行为,我们在文章
TL;DR:
之后添加文本并使用 Top-k 随机抽样 (Fan et al., 2018) 生成 100 个标记,其中 k=2,这减少了重复并鼓励比贪婪解码更抽象的摘要。我们使用这 100 个标记中的前 3 个生成的句子作为摘要。
给定一个文本语料库,用具体的代码术语(首选python),我将如何生成它的摘要?
在OpenAI GPT-2 论文的第 3.6 节中,它提到了基于与此相关的总结文本,但该方法是用非常高级的术语描述的:
为了诱导摘要行为,我们在文章
TL;DR:
之后添加文本并使用 Top-k 随机抽样 (Fan et al., 2018) 生成 100 个标记,其中 k=2,这减少了重复并鼓励比贪婪解码更抽象的摘要。我们使用这 100 个标记中的前 3 个生成的句子作为摘要。
给定一个文本语料库,用具体的代码术语(首选python),我将如何生成它的摘要?
每种方法都需要不同的架构和不同的代码。
设置环境/API 后,您将通过提供初始提示和一些参数来运行它:
GPT-2(任何 GPT 模型)是一个通用的、开放域的文本生成模型,它试图预测任何给定上下文的下一个单词。
因此,设置“汇总模式”不仅仅是标记参数。这是一个不确定的过程,需要尝试和错误。
GPT 设置是实验性的:
一个非常简单的方法是:
prompt = text+"\nTD;DR:"
如果您的文本简单而小,它应该特别好用。
如果最初提示一些上下文,您可能会得到更好的结果,例如:
"Here is a text and it's respective summary.\n"+
"#Full text:" + text + "\n"+
"#Summary:"
另一种方法是在原始提示之前用一些(高质量)示例填充您的提示:
prompt = sample_1+"\nTD;DR:"+summary_1
prompt += "\n###\n"
prompt += sample_2+"\nTD;DR:"+summary_2
prompt += "\n###\n"
prompt += your_input+"\nTD;DR:"
你意识到生成器的下一个合乎逻辑的事情是对你的输入进行总结。
结果将在很大程度上取决于您的文本大小和样式。因此,您应该找到最适合您需求的提示模板。
请记住,GPT 不会从以前的执行中学习。它在两次执行之间没有记忆或学习,这意味着每个输入都将再次需要整个提示。
所以你的主程序应该运行一个循环并为每个文本文件提示一次 GPT。就像是:
for file in glob(./files.txt)
text = open(file, "r")
prompt = text+"\nTLDR:\n"
result = GPT(prompt, parameters)
如果您没有示例:
如果您有一些示例,它应该复制您的示例样式。但:
如果原文太大: