如何 AI「拼好文」:生成万字报告,不限模型
本文介绍了一种名为MapReduce-V2的方法论,能够使任何AI模型生成结构清晰、内容完整的万字长文。通过分步流程,包括素材准备、大纲整理和内容输出,该方法有效解决了AI生成长文时可能出现的逻辑不清和内容空洞问题。
今天没有产品发布
来聊一种方法让任何模型,都能写万字长文
没错,堪称赛博德鲁伊:Buff 拍上去,GPT-3.5 也能写万字报告
最近,Agent 圈神仙打架:Manus 爆火、Fellou 接棒、扣子空间紧随其后…
这些项目各有特色,但都会掏出一个共同的 Demo:生成一篇长报告
Manus 官方示例
长报告这东西,看起来平平无奇,实则难如登天。
你可以让 AI 写一下,然后发现:
开头不错,后面瞎扯
材料用了,重点没有
洋洋洒洒,言之无物
今天,我们要介绍的,是一个方法论:
拿结构当核心,多步生成,构建完整而清晰的长文
方法来自刚发的论文:
《LLM×MapReduce-V2: Entropy-Driven Convolutional Test-Time Scaling for Generating Long-Form Articles from Extremely Long Resources》LLM×MapReduce-V2:用信息熵和卷积机制,指导大模型写出结构清晰的长文档
所谓 v2,是因为之前有过 v1
名字很长,后面就叫它 MapReduce-V2,作者是清华 NLP、OpenBMB 和面壁团队。
论文:https://arxiv.org/abs/2504.05732
Git:https://github.com/thunlp/LLMxMapReduce/tree/main你可以直接下来这个项目来用
对此,官方配了一个很抽象的 Demo,叫做卷姬,可以在这里试试:https://surveygo.thunlp.org/
(卷姬用卷积…谐音梗扣钱啊喂)
Survey Go 首页 https://surveygo.thunlp.org/
示例会在飞书里展示
神金啊…
MapReduce-V2 不复杂,不需要任何的特定模型,不需要进行微调,单纯就是一个流程优化,赛博Buff。
在这个方法中,不试图「一口气写完一万字」,而是按部就班、写完一段是一段,总计写出场文本。
包含三个主要步骤
1、Encode,准备素材
2、整理大纲,核心操作,包含摘要、提纲、结构优化
3、Decode,按结构逐段生成内容
整个方法,按流程有三段:
你可以把已有的资料扔进去,AI 会自动整理成统一格式;
当然,也可以什么都不给,就一句“如何变得更聪明”,它会自己拆关键词、去网上找内容、筛掉废话,最后拼出来可用素材。
第一步:通过主题选素材
在这一步中,AI 会先把材料都过一遍,按提纲分章节做摘要,同时备注建议;
接着,它用这些内容搭出一个初步大纲。
最后,再通过多轮优化,筛掉冗余、合并相近、拉直逻辑线,最后产出一份结构清晰、能指导写作的文章骨架。
第二步:出大纲最后一步,是写作
这一步中,AI 不会试图“一把写完”,而是人一样:• 先挨个的写出各个章节• 把章节串成文章• 润色所有内容,配上图表、加上引用
最终,搞出一个「拼好文」
最终,AI 拼好文
如果你想深度了解,可以接着往下看。
让我们硬核一点,细致些,包含了各种 Prompt 示例。
对于素材准备,MapReduce-V2 支持两种输入方式:• 其一,上传素材,AI 整理格式• 其二,定主题,AI 自己搜
两种素材设定方式
用户侧,可以上传各种参考文献(包含标题、摘要、正文),AI 会统一格式,转化为结构化输入。
用户给定主题
这里,AI 会自动执行一套流程,把材料找齐,按一下步骤:
**划重点 **
这一阶段的关键不在“找得多”,而在于“找得准”。
AI 不仅负责找内容,也要负责过滤内容,以确保输入材料可用性和结构性。
SEARCH_SYSTEM_PROMPT_WITH_ABSTRACT=”””您是一名行业研究专家,负责就 {topic} 的主题撰写一份综合报告。报告应遵守以下要求:{abstract}。要收集必要的信息,您需要进行在线调研。请生成一组搜索查询,帮助您检索报告的相关数据和见解。
“””
SEARCH_USER_PROMPT=”””将当前查询中模糊的概念分解为更具体的子概念,以实现更精确的搜索。例如,“外国”可以进一步分解为在报告领域内具有代表性的特定国家或地区。
输出格式:
“`markdown
query_1;
query_2;
…
“`
“””
AI 开始干活,从这一步开始,主要分三步:
在这里,AI 会围绕着大钢结构,逐篇处理材料,针对性地生成摘要。
比如,假定大纲,在刚刚的“如何变得更聪明”里有一节是“什么是聪明”,它就只抽出「有关聪明」的信息来提炼。
同时它还会留下一串建议:这一节没有数据支撑,或者这一节可以分两块写。
用到的主要 Prompt
你是一个专业的学术助手…
目前,你正在协助编写一篇学术综述报告。…
你的任务是基于综述报告的预定义大纲,为提供的参考文章生成该摘要。你必须遵循每个部分的描述指引,从参考文章的完整内容中提取信息。最终生成的摘要将作为参考文章的代表性总结,便于在进一步的综述撰写过程中使用。此外,根据完整的文章,你还需要提供改进大纲质量的建议。
请遵循以下原则来生成文章摘要:
…
“{paper_bibkey}”
{survey_outline}
{paper_content}
markdown\n“
整体括起来。大纲中的所有章节标题(包括总标题)必须出现在摘要中,并保持相同层级;不要跳过或省略任何部分。摘要的总标题和子标题应该与大纲的总标题和子标题保持一致。你不许在“markdown\n“
中嵌套任何额外的“markdown\n“
。suggestion\n“
括起来。只需要提供建议,不需要提供修改后的新大纲。“`markdown
{outline_example}
“`
建议:
“`suggestion
给出你对大纲修改的建议,以便更好地利用这篇文章作为参考。
“`
所有摘要出来之后,AI 会用这些材料搭出一份初步的大纲。这是一个带有“任务描述”的 Markdown 树状结构,不仅列出章节名,还说明每一节应该写什么、引用哪些文献。
类似装修的设计图,后续所有内容生成都围绕它展开。
用到的主要 Prompt
“””你是一名专业的学术助手,任务是帮助研究人员根据提供的材料进行文献综述。
我需要基于主题“{title}”撰写一份学术综述大纲,并使用提供的参考文献…
你的任务是基于提供的文章摘要构建综述大纲。每个大纲部分应具有系统且详细的描述。描述由两部分组成:
– Digest Construction:确定从提供的参考文献全文中提取哪些信息以创建摘要。该摘要将用于后续的Digest Analysis,以撰写逻辑严谨、批判性强且有洞察力的学术综述部分。…
– Digest Analysis:解释如何使用提取的信息来组织和分析文章,并提供可执行的步骤。避免仅仅列出信息,而是分析和综合这些信息,形成一个连贯且结构良好的叙述。…
你可以遵循以下原则生成高质量的大纲:
全面涵盖主题的所有相关方面,形成一个完整且严谨的知识框架,使读者能够掌握主题的整体情况。…
大纲的每个条目必须与综述主题密切相关,精确定位主题的核心点和关键问题…
大纲的措辞和内容安排不应带有个人主观偏见或情感倾向。对各种研究结果和不同学术观点的展示应公平客观,以确保内容的真实性和可靠性…
{abstracts}
markdown\n“
包围。“`markdown
Digest Construction:
写出应从全文中提取哪些信息。
Digest Analysis:
写出如何组织和分析文章“BIBKEY1”, “BIBKEY2”,并提供可执行步骤。
…
Digest Construction:
写出应从全文中提取哪些信息。
Digest Analysis:
写出如何组织和分析文章“BIBKEY1”, “BIBKEY2”,并提供可执行步骤。
Digest Construction:
写出应从全文中提取哪些信息。
Digest Analysis:
写出如何组织和分析文章“BIBKEY1”, “BIBKEY2”,并提供可执行步骤。
…
…
“`
关键操作来了。AI 会把上面阶段所有对提纲的建议,拿出来一轮轮融合:按主题分组、聚合建议、打分筛优、再迭代生成新提纲。每一轮都像是卷积核扫一遍结构图,最后留下信息密度最高、逻辑最清晰的那个版本。
多轮打磨后,你会获得一份很棒的提纲:它既参考了全部摘要,又兼顾逻辑一致性和写作节奏。
这也是 Convolution 是 V2 版本的最大创新,它的目标是:
通过多次迭代,类似 CNN,将大纲变成了一个高质量、逻辑清晰、信息密实的文章草稿。
用到的主要 Prompt
“””你是一个专业的学术助手,负责帮助研究人员根据提供的材料进行文献综述。
学术综述的主题是“{title}”…
为整合这些建议,请遵循以下原则:
– 理解现有的分析框架和建议…
– 层级结构:将建议分为高层次(战略层面)和低层次(操作层面),确保每个建议具有明确的定位和功能…
– 基于分析框架,整合各个子领域面临的挑战以及当前方法的不足…
– 针对总结出的挑战和不足,预测未来的研究方向,以弥补当前工作的不足…
“`markdown
{outline}
“`
{suggestions}
suggestionn“
引用…“`suggestion
– 针对当前核心目标,如何修改初步大纲的具体建议 “BIBKEY1”, “BIBKEY2”,….
– …
– 针对当前核心目标,如何修改初步大纲的具体建议 “BIBKEY1”, “BIBKEY2”,….
– …
– 针对当前核心目标,如何修改初步大纲的具体建议 “BIBKEY1”, “BIBKEY2”,….
-…
“`
“””
有了大纲之后,AI 就会开始动笔写作:按结构分段生成:
图片:Decode 流程图,展示结构树写作从底到顶的生成路径
有点像媒体团队在协作:
• Digest/摘要:提供素材;
• Skeleton/大纲:提供结构;
• 最终,AI 大老爷负责具体生产
最终,你会获得一篇结构合理、内容完整、Markdown 格式的长文,包含图表、引用和排版。
用到的主要 Prompt – 子章节
你是一个专业的学术助手,专门从事文献综述工作,帮助研究人员高效地综合相关研究。
====================
背景:
目前,你正在撰写一篇名为“{title}”的学术综述报告…
====================
任务描述:
你的任务是为最终综述报告创建一个子章节…
思考原则:
– 按照子章节描述的系统组织:…从摘要中提取有价值的信息,并将其综合成一个全面的综述子章节…
– 基于证据的分析与综合:从摘要中提取有力的证据,例如实验结果、批判性分析和深刻见解,以支持子章节描述中的分析…
– 识别研究空白和未来方向:系统地总结当前研究领域中的挑战,突出现有研究的局限性,包括样本量的限制、方法论的约束或未解决的研究问题…
– 正式性、严谨性和客观性:在写作中保持高度的正式性、严谨性和客观性…
– 句子结构和清晰度:构造句子时要严谨和准确,确保逻辑清晰,易于理解…
– 中立性、精确性和学术严谨性:采用中立语气,基于证据客观地呈现内容…
====================
输入材料:
子章节描述
“`markdown
{outline}
“`
个别文章摘要
“`markdown
{digest}
“`
====================
输出要求:
markdownn“
引用, 内容中除了有特定含义的词汇或缩写,其他所有语言必须为汉语,不允许混杂除汉语与英语之外的其他语言。====================
格式示例:
“`markdown
通过整合个别摘要中的相关内容并优化整体呈现以提高清晰度和连贯性生成的子章节内容“BIBKEY1”, “BIBKEY2”。
“`
用到的主要 Prompt – 父章节
你是一个专业的学术助手,专门从事文献综述工作,帮助研究人员高效地综合相关研究。
====================
背景:
目前,你正在撰写一篇名为“{title}”的学术综述报告…
====================
任务描述:
你的任务是综合当前章节标题和第一个子章节标题之间的内容…
思考原则:
– 按照子章节描述的系统组织:…从摘要中提取有价值的信息,并将其综合成一个全面的综述子章节,确保最终子章节涵盖所有摘要中的见解。
– 基于证据的分析与综合:从摘要中提取有力的证据,例如实验结果、批判性分析和深刻见解,以支持子章节描述中的分析…
– 识别研究空白和未来方向:系统地总结当前研究领域中的挑战,突出现有研究的局限性,包括样本量的限制、方法论的约束或未解决的研究问题…
– 全面回顾与核心识别:彻底回顾每个子章节的内容,系统地找出其中的主要主题、关键论点和重要发现…
– 发现和利用子章节之间的联系:寻找子章节之间的共同点和相互联系。这些可能包括共享的研究方法、相关的理论框架或交集的研究问题…
– 结构化以提高清晰度:在整合子章节内容时,要建立层次结构。首先呈现最一般和最概括的概念,然后逐步展开更具体的细节…
– 有意义的综合,而非简单编纂:确保子章节内容的整合是有意义的综合,而不仅仅是简单的编纂。提供一个叙述,阐明每个子章节如何有助于对主题的整体理解…
– 正式性、严谨性和客观性:在写作中保持高度的正式性、严谨性和客观性…
– 句子结构和清晰度:构造句子时要严谨和准确,确保逻辑清晰,易于理解…
– 中立性、精确性和学术严谨性:采用中立语气,基于证据客观地呈现内容…
====================
输入材料:
章节描述:
“`markdown
{outline}
“`
子章节:
{subcontents}
个别文章摘要:
“`markdown
{digest}
“`
====================
输出要求:
markdownn“
引用…====================
格式示例:
“`markdown
通过整合个别摘要中的相关内容并优化整体呈现以提高清晰度和连贯性生成的子章节内容“BIBKEY1”, “BIBKEY2”。
“`
收束一下,MapReduce-V2 不是“写作大模型”或者“通用代理”,而是一个开源的、清晰的写作框架,是赛博德鲁伊,上 Buff,让你的模型能写更长的内容
如果你也在做自动报告、长文生成、知识整合类项目,开源来借鉴一下。
工具、论文、Demo 都已经开源,跑一遍,比看十篇综述更直观。
用的 prompt,都在这里
https://github.com/thunlp/LLMxMapReduce/blob/main/LLMxMapReduce_V2/src/prompts/prompts_zh.py
本文由人人都是产品经理作者【赛博禅心】,微信公众号:【赛博禅心】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。