如何 AI「拼好文」:生成萬字報告,不限模型

0 評論 667 瀏覽 0 收藏 27 分鐘

本文介紹了一種名為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。

在這個方法中,不試圖「一口氣寫完一萬字」,而是按部就班、寫完一段是一段,總計寫出場文本。

包含三個主要步驟

  1. Encode,準(zhǔn)備素材
  2. 整理大綱,核心操作,包含摘要、提綱、結(jié)構(gòu)優(yōu)化
  3. 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é)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!