如何 AI「拼好文」:生成萬字報告,不限模型
本文介紹了一種名為MapReduce-V2的方法論,能夠使任何AI模型生成結(jié)構(gòu)清晰、內(nèi)容完整的萬字長文。通過分步流程,包括素材準(zhǔn)備、大綱整理和內(nèi)容輸出,該方法有效解決了AI生成長文時可能出現(xiàn)的邏輯不清和內(nèi)容空洞問題。
今天沒有產(chǎn)品發(fā)布
來聊一種方法讓任何模型,都能寫萬字長文
沒錯,堪稱賽博德魯伊:Buff 拍上去,GPT-3.5 也能寫萬字報告
最近,Agent 圈神仙打架:Manus 爆火、Fellou 接棒、扣子空間緊隨其后…
這些項目各有特色,但都會掏出一個共同的 Demo:生成一篇長報告
Manus 官方示例
長報告這東西,看起來平平無奇,實則難如登天。
你可以讓 AI 寫一下,然后發(fā)現(xiàn):
開頭不錯,后面瞎扯
材料用了,重點沒有
洋洋灑灑,言之無物
今天,我們要介紹的,是一個方法論:拿結(jié)構(gòu)當(dāng)核心,多步生成,構(gòu)建完整而清晰的長文
方法來自剛發(fā)的論文:
《LLM×MapReduce-V2: Entropy-Driven Convolutional Test-Time Scaling for Generating Long-Form Articles from Extremely Long Resources》LLM×MapReduce-V2:用信息熵和卷積機(jī)制,指導(dǎo)大模型寫出結(jié)構(gòu)清晰的長文檔
所謂 v2,是因為之前有過 v1
名字很長,后面就叫它 MapReduce-V2,作者是清華 NLP、OpenBMB 和面壁團(tuán)隊。
論文:https://arxiv.org/abs/2504.05732
Git:https://github.com/thunlp/LLMxMapReduce/tree/main你可以直接下來這個項目來用
對此,官方配了一個很抽象的 Demo,叫做卷姬,可以在這里試試:https://surveygo.thunlp.org/
(卷姬用卷積…諧音??坼X啊喂)
Survey Go 首頁?https://surveygo.thunlp.org/
示例會在飛書里展示
神金啊…
總覽:MapReduce-V2
MapReduce-V2 不復(fù)雜,不需要任何的特定模型,不需要進(jìn)行微調(diào),單純就是一個流程優(yōu)化,賽博Buff。
在這個方法中,不試圖「一口氣寫完一萬字」,而是按部就班、寫完一段是一段,總計寫出場文本。
包含三個主要步驟
- Encode,準(zhǔn)備素材
- 整理大綱,核心操作,包含摘要、提綱、結(jié)構(gòu)優(yōu)化
- Decode,按結(jié)構(gòu)逐段生成內(nèi)容
整個方法,按流程有三段:
第一步,把主題變成可以處理的素材。
你可以把已有的資料扔進(jìn)去,AI 會自動整理成統(tǒng)一格式;
當(dāng)然,也可以什么都不給,就一句“如何變得更聰明”,它會自己拆關(guān)鍵詞、去網(wǎng)上找內(nèi)容、篩掉廢話,最后拼出來可用素材。
第一步:通過主題選素材
第二步,出大綱,是核心操作。
在這一步中,AI 會先把材料都過一遍,按提綱分章節(jié)做摘要,同時備注建議;
接著,它用這些內(nèi)容搭出一個初步大綱。
最后,再通過多輪優(yōu)化,篩掉冗余、合并相近、拉直邏輯線,最后產(chǎn)出一份結(jié)構(gòu)清晰、能指導(dǎo)寫作的文章骨架。
第二步:出大綱最后一步,是寫作
這一步中,AI 不會試圖“一把寫完”,而是人一樣:? 先挨個的寫出各個章節(jié)? 把章節(jié)串成文章? 潤色所有內(nèi)容,配上圖表、加上引用
最終,搞出一個「拼好文」
最終,AI 拼好文
再長都看版
如果你想深度了解,可以接著往下看。
讓我們硬核一點,細(xì)致些,包含了各種 Prompt 示例。
Encode:素材準(zhǔn)備
對于素材準(zhǔn)備,MapReduce-V2 支持兩種輸入方式:
其一,上傳素材,AI 整理格式
其二,定主題,AI 自己搜
兩種素材設(shè)定方式
用戶上傳素材
用戶側(cè),可以上傳各種參考文獻(xiàn)(包含標(biāo)題、摘要、正文),AI 會統(tǒng)一格式,轉(zhuǎn)化為結(jié)構(gòu)化輸入。
用戶給定主題
這里,AI 會自動執(zhí)行一套流程,把材料找齊,按一下步驟:
1. 利用 AI 做要點分拆,得到一系列搜索關(guān)鍵詞;
2. 通過搜索引擎獲取相關(guān)網(wǎng)頁;
3. 異步爬取網(wǎng)頁內(nèi)容,過濾無關(guān)信息;
4. 計算主題相似度、篩選高質(zhì)量材料,最終選出最相關(guān)的 Top-N 文獻(xiàn)。
**劃重點 **
這一階段的關(guān)鍵不在“找得多”,而在于“找得準(zhǔn)”。
AI 不僅負(fù)責(zé)找內(nèi)容,也要負(fù)責(zé)過濾內(nèi)容,以確保輸入材料可用性和結(jié)構(gòu)性。
用到的主要 Prompt:
# LLM_search prompts
SEARCH_SYSTEM_PROMPT_WITH_ABSTRACT=”””您是一名行業(yè)研究專家,負(fù)責(zé)就 {topic} 的主題撰寫一份綜合報告。報告應(yīng)遵守以下要求:{abstract}。要收集必要的信息,您需要進(jìn)行在線調(diào)研。請生成一組搜索查詢,幫助您檢索報告的相關(guān)數(shù)據(jù)和見解。
“””
SEARCH_USER_PROMPT=”””將當(dāng)前查詢中模糊的概念分解為更具體的子概念,以實現(xiàn)更精確的搜索。例如,“外國”可以進(jìn)一步分解為在報告領(lǐng)域內(nèi)具有代表性的特定國家或地區(qū)。
輸出格式:
“`markdown
query_1;
query_2;
…
“`
“””
整理大綱:結(jié)構(gòu)生成
AI 開始干活,從這一步開始,主要分三步:
1. Digest:結(jié)構(gòu)化摘要
在這里,AI 會圍繞著大鋼結(jié)構(gòu),逐篇處理材料,針對性地生成摘要。
比如,假定大綱,在剛剛的“如何變得更聰明”里有一節(jié)是“什么是聰明”,它就只抽出「有關(guān)聰明」的信息來提煉。
同時它還會留下一串建議:這一節(jié)沒有數(shù)據(jù)支撐,或者這一節(jié)可以分兩塊寫。
用到的主要 Prompt
你是一個專業(yè)的學(xué)術(shù)助手…
# 背景
目前,你正在協(xié)助編寫一篇學(xué)術(shù)綜述報告。…
# 任務(wù)描述
**你的任務(wù)**是基于綜述報告的預(yù)定義**大綱**,為提供的**參考文章**生成該摘要。你必須遵循每個部分的描述指引,從參考文章的完整內(nèi)容中提取信息。最終生成的摘要將作為參考文章的代表性總結(jié),便于在進(jìn)一步的綜述撰寫過程中使用。此外,根據(jù)完整的文章,你還需要提供改進(jìn)大綱質(zhì)量的建議。
## 摘要生成原則
**請遵循以下原則來生成文章摘要**:
1. **識別相關(guān)部分**:首先回顧大綱,識別與參考文章內(nèi)容最相關(guān)的部分。…
2. **內(nèi)容精煉**:對于相關(guān)部分,嚴(yán)格按照部分描述中的指導(dǎo)進(jìn)行精煉。…
3. **忠實性**:在整個過程中,確保不引入任何未被原文支持的新事實或解釋,忠實于原文章的發(fā)現(xiàn)…
## 建議生成原則
…
# 輸入材料
## 參考文章的Bibkey
[“{paper_bibkey}”]
## 初步大綱
{survey_outline}
## 參考文章
{paper_content}
# 輸出要求
## 格式要求
1. **輸出格式**:摘要必須使用Markdown格式。摘要部分用一個“`markdown\n“`整體括起來。大綱中的所有章節(jié)標(biāo)題(包括總標(biāo)題)必須出現(xiàn)在摘要中,并保持相同層級;不要跳過或省略任何部分。摘要的總標(biāo)題和子標(biāo)題應(yīng)該與大綱的總標(biāo)題和子標(biāo)題保持一致。你不許在“`markdown\n“`中嵌套任何額外的“`markdown\n“`。
2. **引用格式**:需要在句子末尾加上[“{paper_bibkey}”],以指定信息的來源。如果信息并非直接來自文章,可以不加引用。摘要和建議中均需要包含引用。
3. **公式格式**:如果輸出中有公式,請使用LaTeX格式表示。例如,內(nèi)聯(lián)公式使用$y = x^2$,塊狀公式使用$$y = x^2$$。
4. **建議格式**:建議應(yīng)以“`suggestion\n“`括起來。只需要提供建議,不需要提供修改后的新大綱。
## 格式示例
“`markdown
{outline_example}
“`
建議:
“`suggestion
給出你對大綱修改的建議,以便更好地利用這篇文章作為參考。
“`
2. Skeleton:立大綱
所有摘要出來之后,AI 會用這些材料搭出一份初步的大綱。這是一個帶有“任務(wù)描述”的 Markdown 樹狀結(jié)構(gòu),不僅列出章節(jié)名,還說明每一節(jié)應(yīng)該寫什么、引用哪些文獻(xiàn)。
類似裝修的設(shè)計圖,后續(xù)所有內(nèi)容生成都圍繞它展開。
用到的主要 Prompt
“””你是一名專業(yè)的學(xué)術(shù)助手,任務(wù)是幫助研究人員根據(jù)提供的材料進(jìn)行文獻(xiàn)綜述。
# 背景
我需要基于主題“{title}”撰寫一份學(xué)術(shù)綜述大綱,并使用提供的參考文獻(xiàn)…
# 任務(wù)描述
你的任務(wù)是基于提供的**文章摘要**構(gòu)建綜述大綱。每個大綱部分應(yīng)具有系統(tǒng)且詳細(xì)的描述。描述由兩部分組成:
– **Digest Construction**:確定從提供的參考文獻(xiàn)全文中提取哪些信息以創(chuàng)建摘要。該摘要將用于后續(xù)的Digest Analysis,以撰寫邏輯嚴(yán)謹(jǐn)、批判性強(qiáng)且有洞察力的學(xué)術(shù)綜述部分。…
– **Digest Analysis**:解釋如何使用提取的信息來組織和分析文章,并提供可執(zhí)行的步驟。避免僅僅列出信息,而是分析和綜合這些信息,形成一個連貫且結(jié)構(gòu)良好的敘述。…
你可以遵循以下原則生成高質(zhì)量的大綱:
1. **系統(tǒng)性**:
全面涵蓋主題的所有相關(guān)方面,形成一個完整且嚴(yán)謹(jǐn)?shù)闹R框架,使讀者能夠掌握主題的整體情況。…
2. **針對性**:
大綱的每個條目必須與綜述主題密切相關(guān),精確定位主題的核心點和關(guān)鍵問題…
3. **客觀性**:
大綱的措辭和內(nèi)容安排不應(yīng)帶有個人主觀偏見或情感傾向。對各種研究結(jié)果和不同學(xué)術(shù)觀點的展示應(yīng)公平客觀,以確保內(nèi)容的真實性和可靠性…
# 輸入材料
## **文章摘要**
{abstracts}
# 輸出要求
## 格式要求
1. 輸出的**大綱**必須為Markdown格式,主題為一級標(biāo)題。**大綱**應(yīng)使用分隔符“`markdown\n“`包圍。
2. 每個部分的描述應(yīng)引用適當(dāng)?shù)奈恼耣ibkeys…
3. 每個部分必須包含適當(dāng)?shù)淖硬糠?,建議使用Markdown標(biāo)題來表示層次結(jié)構(gòu)。
4. 每組參考文獻(xiàn)的bibkeys必須用一對方括號括起來…。
## 格式示例
“`markdown
# {title}
## 部分A
Digest Construction:
寫出應(yīng)從全文中提取哪些信息。
Digest Analysis:
寫出如何組織和分析文章[“BIBKEY1”, “BIBKEY2”],并提供可執(zhí)行步驟。
…
### 子部分A
Digest Construction:
寫出應(yīng)從全文中提取哪些信息。
Digest Analysis:
寫出如何組織和分析文章[“BIBKEY1”, “BIBKEY2”],并提供可執(zhí)行步驟。
### 子部分B
Digest Construction:
寫出應(yīng)從全文中提取哪些信息。
Digest Analysis:
寫出如何組織和分析文章[“BIBKEY1”, “BIBKEY2”],并提供可執(zhí)行步驟。
…
## 部分C
…
“`
3. Convolution:卷積式結(jié)構(gòu)優(yōu)化
關(guān)鍵操作來了。AI 會把上面階段所有對提綱的建議,拿出來一輪輪融合:按主題分組、聚合建議、打分篩優(yōu)、再迭代生成新提綱。每一輪都像是卷積核掃一遍結(jié)構(gòu)圖,最后留下信息密度最高、邏輯最清晰的那個版本。
多輪打磨后,你會獲得一份很棒的提綱:它既參考了全部摘要,又兼顧邏輯一致性和寫作節(jié)奏。
這也是 Convolution 是 V2 版本的最大創(chuàng)新,它的目標(biāo)是:
通過多次迭代,類似 CNN,將大綱變成了一個高質(zhì)量、邏輯清晰、信息密實的文章草稿。
用到的主要 Prompt
“””你是一個專業(yè)的學(xué)術(shù)助手,負(fù)責(zé)幫助研究人員根據(jù)提供的材料進(jìn)行文獻(xiàn)綜述。
# 背景:
學(xué)術(shù)綜述的主題是“{title}”…
# 任務(wù)描述:
為整合這些建議,請遵循以下原則:
1. **系統(tǒng)性整合**:
– 理解現(xiàn)有的分析框架和建議…
– **層級結(jié)構(gòu)**:將建議分為高層次(戰(zhàn)略層面)和低層次(操作層面),確保每個建議具有明確的定位和功能…
2. **挑戰(zhàn)與解決方案**:
– 基于分析框架,整合各個子領(lǐng)域面臨的挑戰(zhàn)以及當(dāng)前方法的不足…
– 針對總結(jié)出的挑戰(zhàn)和不足,預(yù)測未來的研究方向,以彌補當(dāng)前工作的不足…
# 輸入材料:
1. 初步大綱:需要完善的當(dāng)前版本綜述大綱。
2. 個別建議:來自幾位專家評審的反饋,每個建議包含關(guān)于該建議有效性分?jǐn)?shù)的評估結(jié)果及評分理由…
## 初步大綱
“`markdown
{outline}
“`
## 個別建議
{suggestions}
# 輸出要求
## 格式要求:
1. 所有建議必須用一對“`suggestionn“`引用…
2. 每個 Bibkey 必須由引號包裹,每組 Bibkey 必須由一組方括號包圍,如[“BIBKEY1”, “BIBKEY2”]…
3. 建議應(yīng)具有可操作性,并與綜述的目標(biāo)密切對齊…
4. 如果輸出中包含公式,請使用LaTeX格式表示…
## 格式示例
“`suggestion
1. 描述這一組建議的核心目標(biāo):
– 針對當(dāng)前核心目標(biāo),如何修改初步大綱的具體建議 [“BIBKEY1”, “BIBKEY2”,…].
– …
2. 描述這一組建議的核心目標(biāo):
– 針對當(dāng)前核心目標(biāo),如何修改初步大綱的具體建議 [“BIBKEY1”, “BIBKEY2”,…].
– …
3. 描述這一組建議的核心目標(biāo):
– 針對當(dāng)前核心目標(biāo),如何修改初步大綱的具體建議 [“BIBKEY1”, “BIBKEY2”,…].
-…
“`
“””
Decode:內(nèi)容輸出
有了大綱之后,AI 就會開始動筆寫作:按結(jié)構(gòu)分段生成:
- 小節(jié)一級一級寫,從葉子節(jié)點開始
- 每段只引用它該引用的 digest,不亂帶
- 寫完后還有章節(jié)級合并,總結(jié)收束
- 最后整體再來一輪潤色、插圖、引用處理
[圖片:Decode 流程圖,展示結(jié)構(gòu)樹寫作從底到頂?shù)纳陕窂絔
有點像媒體團(tuán)隊在協(xié)作:
? Digest/摘要:提供素材;
? Skeleton/大綱:提供結(jié)構(gòu);
? 最終,AI 大老爺負(fù)責(zé)具體生產(chǎn)
最終,你會獲得一篇結(jié)構(gòu)合理、內(nèi)容完整、Markdown 格式的長文,包含圖表、引用和排版。
用到的主要 Prompt
– 子章節(jié)
你是一個專業(yè)的學(xué)術(shù)助手,專門從事文獻(xiàn)綜述工作,幫助研究人員高效地綜合相關(guān)研究。
====================
背景:
目前,你正在撰寫一篇名為“{title}”的學(xué)術(shù)綜述報告…
====================
任務(wù)描述:
**你的任務(wù)**是為最終綜述報告創(chuàng)建一個子章節(jié)…
思考原則:
1. **將個別摘要整合成一個有機(jī)的子章節(jié)**:
– **按照子章節(jié)描述的系統(tǒng)組織**:…從摘要中提取有價值的信息,并將其綜合成一個全面的綜述子章節(jié)…
– **基于證據(jù)的分析與綜合**:從摘要中提取有力的證據(jù),例如實驗結(jié)果、批判性分析和深刻見解,以支持子章節(jié)描述中的分析…
– **識別研究空白和未來方向**:系統(tǒng)地總結(jié)當(dāng)前研究領(lǐng)域中的挑戰(zhàn),突出現(xiàn)有研究的局限性,包括樣本量的限制、方法論的約束或未解決的研究問題…
2. **語言風(fēng)格**:
– **正式性、嚴(yán)謹(jǐn)性和客觀性**:在寫作中保持高度的正式性、嚴(yán)謹(jǐn)性和客觀性…
– **句子結(jié)構(gòu)和清晰度**:構(gòu)造句子時要嚴(yán)謹(jǐn)和準(zhǔn)確,確保邏輯清晰,易于理解…
– **中立性、精確性和學(xué)術(shù)嚴(yán)謹(jǐn)性**:采用中立語氣,基于證據(jù)客觀地呈現(xiàn)內(nèi)容…
====================
輸入材料:
子章節(jié)描述
“`markdown
{outline}
“`
個別文章摘要
“`markdown
{digest}
“`
====================
輸出要求:
1. 輸出的章節(jié)內(nèi)容必須用一對“`markdownn“`引用, 內(nèi)容中除了有特定含義的詞匯或縮寫,其他所有語言必須為漢語,不允許混雜除漢語與英語之外的其他語言。
2. 每個 Bibkey 必須由引號包裹,每組 Bibkey 必須由一組方括號包圍,如[“BIBKEY1”, “BIBKEY2”]…
3. 如果輸出中包含公式,請使用LaTeX格式表示。例如,內(nèi)聯(lián)公式使用$y = x^2$,塊狀公式使用$$y = x^2$$…
====================
格式示例:
“`markdown
### {section_title}
通過整合個別摘要中的相關(guān)內(nèi)容并優(yōu)化整體呈現(xiàn)以提高清晰度和連貫性生成的子章節(jié)內(nèi)容[“BIBKEY1”, “BIBKEY2”]。
“`
用到的主要 Prompt – 父章節(jié)
你是一個專業(yè)的學(xué)術(shù)助手,專門從事文獻(xiàn)綜述工作,幫助研究人員高效地綜合相關(guān)研究。
====================
背景:
目前,你正在撰寫一篇名為“{title}”的學(xué)術(shù)綜述報告…
====================
任務(wù)描述:
**你的任務(wù)**是綜合當(dāng)前章節(jié)標(biāo)題和第一個子章節(jié)標(biāo)題之間的內(nèi)容…
思考原則:
1. **將個別摘要整合成一個有機(jī)的子章節(jié)**:
– **按照子章節(jié)描述的系統(tǒng)組織**:…從摘要中提取有價值的信息,并將其綜合成一個全面的綜述子章節(jié),確保最終子章節(jié)涵蓋所有摘要中的見解。
– **基于證據(jù)的分析與綜合**:從摘要中提取有力的證據(jù),例如實驗結(jié)果、批判性分析和深刻見解,以支持子章節(jié)描述中的分析…
– **識別研究空白和未來方向**:系統(tǒng)地總結(jié)當(dāng)前研究領(lǐng)域中的挑戰(zhàn),突出現(xiàn)有研究的局限性,包括樣本量的限制、方法論的約束或未解決的研究問題…
2. **將子章節(jié)內(nèi)容整合成一個有機(jī)的整體**:
– **全面回顧與核心識別**:徹底回顧每個子章節(jié)的內(nèi)容,系統(tǒng)地找出其中的主要主題、關(guān)鍵論點和重要發(fā)現(xiàn)…
– **發(fā)現(xiàn)和利用子章節(jié)之間的聯(lián)系**:尋找子章節(jié)之間的共同點和相互聯(lián)系。這些可能包括共享的研究方法、相關(guān)的理論框架或交集的研究問題…
– **結(jié)構(gòu)化以提高清晰度**:在整合子章節(jié)內(nèi)容時,要建立層次結(jié)構(gòu)。首先呈現(xiàn)最一般和最概括的概念,然后逐步展開更具體的細(xì)節(jié)…
– **有意義的綜合,而非簡單編纂**:確保子章節(jié)內(nèi)容的整合是有意義的綜合,而不僅僅是簡單的編纂。提供一個敘述,闡明每個子章節(jié)如何有助于對主題的整體理解…
3. **語言風(fēng)格**:
– **正式性、嚴(yán)謹(jǐn)性和客觀性**:在寫作中保持高度的正式性、嚴(yán)謹(jǐn)性和客觀性…
– **句子結(jié)構(gòu)和清晰度**:構(gòu)造句子時要嚴(yán)謹(jǐn)和準(zhǔn)確,確保邏輯清晰,易于理解…
– **中立性、精確性和學(xué)術(shù)嚴(yán)謹(jǐn)性**:采用中立語氣,基于證據(jù)客觀地呈現(xiàn)內(nèi)容…
====================
輸入材料:
章節(jié)描述:
“`markdown
{outline}
“`
子章節(jié):
{subcontents}
個別文章摘要:
“`markdown
{digest}
“`
====================
輸出要求:
1. 輸出的章節(jié)內(nèi)容必須用一對“`markdownn“`引用…
2. 每個 Bibkey 必須由引號包裹,每組 Bibkey 必須由一組方括號包圍,如[“BIBKEY1”, “BIBKEY2”]…
3. 如果輸出中包含公式,請使用LaTeX格式表示…
====================
格式示例:
“`markdown
### {section_title}
通過整合個別摘要中的相關(guān)內(nèi)容并優(yōu)化整體呈現(xiàn)以提高清晰度和連貫性生成的子章節(jié)內(nèi)容[“BIBKEY1”, “BIBKEY2”]。
“`
寫在最后
收束一下,MapReduce-V2 不是“寫作大模型”或者“通用代理”,而是一個開源的、清晰的寫作框架,是賽博德魯伊,上 Buff,讓你的模型能寫更長的內(nèi)容
如果你也在做自動報告、長文生成、知識整合類項目,開源來借鑒一下。
工具、論文、Demo 都已經(jīng)開源,跑一遍,比看十篇綜述更直觀。
用的 prompt,都在這里
https://github.com/thunlp/LLMxMapReduce/blob/main/LLMxMapReduce_V2/src/prompts/prompts_zh.py
本文由人人都是產(chǎn)品經(jīng)理作者【賽博禪心】,微信公眾號:【賽博禪心】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于 CC0 協(xié)議。
- 目前還沒評論,等你發(fā)揮!