【論文筆記】STORYWRITER: A Multi-Agent Framework for Long Story Generation

論文信息

論文標題:StoryWriter: A Multi-Agent Framework for Long Story Generation
論文作者:Haotian Xia, Hao Peng et al. (Tsinghua University)
論文鏈接:https://arxiv.org/abs/2506.16445
代碼鏈接:https://github.com/THU-KEG/StoryWriter 未提供運行代碼


研究背景與動機

核心挑戰: 現有大語言模型(LLMs)生成長篇故事(>1000詞)存在兩大瓶頸:

  • 語篇連貫性(Discourse Coherence):長文本中難以維持情節一致性、邏輯連貫性與完整性(如角色/事件關系丟失)。
  • 敘事復雜性(Narrative Complexity):LLM生成故事同質化嚴重,缺乏人類敘事的交織結構與吸引力。

現有方法局限: 傳統基于LLM的提綱生成方法缺乏細粒度事件控制,導致生成內容單一且邏輯松散。


核心貢獻

  1. 提出了一種多智能體框架 STORYWRITER ,用于高質量長篇故事生成。
  2. 構建了一個高質量的長篇故事數據集 LONGSTORY ,包含約6000個平均長度為8000詞的故事。
  3. 基于 LONGSTORY 對 Llama3.1-8B 和 GLM4-9B 進行監督微調,訓練出性能優越的長篇故事生成模型 STORYWRITERLLAMA 和 STORYWRITERGLM 。
  4. 在多個評估指標上驗證了 STORYWRITER 的有效性,并通過消融實驗分析各模塊的作用。

StoryWriter

在這里插入圖片描述

StoryWriter 框架在 Auto-Gen 框架下實現 ,其 Agent 網絡由以下三個主要模塊組成:

Outline Agent

  • 該模塊負責生成基于事件的大綱,其中包含豐富的事件情節、人物和事件-事件關系 。
  • 它由兩個專門的Agent構成:EventSeedEventValidator
  • EventSeed 負責根據給定的前提(premise)順序生成事件,為每個事件提供時間、地點和關系等基本信息 。
  • EventValidator 持續監控和評估生成的大綱,提供反饋以確保每個事件的合理性和敘事連貫性 。
  • 與傳統的大綱生成方法不同,該方法將大綱構建為一系列事件元組,從而增強了可控性和邏輯一致性 。

Planning Agent

  • 該模塊進一步細化事件,并全局規劃每個章節應包含哪些事件,以保持故事的交織性和吸引力 。
  • 它引入了“非線性敘事”(Non-Linear Narration, NLN)策略,將事件分解為子事件,并有策略地將它們分布在不同的章節中 。
  • 該模塊由 SubTaskerWeaver 組成 。
  • SubTasker 負責將高級別事件分解為更細粒度的敘事單元,即子事件 。
  • Weaver 則將這些子事件分配到不同的章節中,即使它們以非時間順序呈現,也能保持整體敘事結構的連貫性 。
  • 這種方法克服了線性敘事的單調性,增強了敘事的多樣性和讀者的參與度 。

Writing Agent

  • 該模塊根據歷史上下文生成和完善具體的故事內容 。
  • 它采用了一個名為“重寫輸入和輸出”(Re-write Input and Output, ReIO)的機制,由 CoordinatorFinalWriter 兩個Agent協作完成 。
  • 在輸入處理階段,Coordinator 動態地壓縮歷史敘事上下文,只保留與當前子事件相關的信息,從而有效減少輸入長度并保持關鍵上下文 。
  • 在輸出處理階段,Coordinator 會評估生成的文本,并在必要時對其進行重寫,以確保其與預定敘事結構和風格要求的一致性 。
  • 這種分工確保了宏觀結構連貫性和微觀敘事流暢性 。

實驗部分

實驗設置

  • 數據集: 評估采用 MoPS 數據集 。
  • 評估方法: 采用人工評估和基于GPT-4o的自動評估,涵蓋六個維度:相關性(Relevance)、連貫性(Coherence)、同理心(Empathy)、意外性(Surprise)、創造性(Creativity)和復雜性(Complexity)。
  • 基線模型: DOC、Agents’ Room 和 GPT-4o-mini 。

實驗結果

主要實驗

StoryWriter 在人工和自動評估中均顯著優于所有基線模型 。它在保持高質量的同時,顯著超越了以往基線模型的生成長度 。在內容多樣性和創造性方面 StoryWriter 表現突出 。

在這里插入圖片描述

消融實驗

  • 移除大綱Agent: 故事大綱缺乏深度和結構,導致所有評估指標顯著下降 。
  • 移除規劃Agent: 子事件嚴格按時間順序排列,導致復雜性得分顯著降低 。
  • 移除ReIO-Input: 輸入文本長度大幅增加,導致計算成本上升和整體性能下降 。
  • 移除ReIO-Output: 生成文本的相關性得分顯著下降,因為該模塊對于維持結構連貫性至關重要。

在這里插入圖片描述


LONGSTORY 數據集與模型訓練

  • 數據集構建: LONGSTORY 數據集是使用 StoryWriter 框架,從 MoPS 訓練集中收集的6000個故事前提生成而成的 。經過數據清洗,最終包含5500個平均長度約8000字的高質量長篇故事 。
  • 模型微調: 使用 LONGSTORY 數據集,通過監督微調(SFT)訓練了基于 Llama3.1-8B 和 GLM-4-9B 的模型 。
  • 評估指標: 采用 LongBench-Write 評估方法,包括內容質量分數 SqS_qSq?SlS_lSl?,和綜合分數 Sˉ\bar{S}Sˉ
  • 結果:
    • StoryWriter-GLM 在故事質量 SqS_qSq? 上顯著優于其基礎模型,尤其是在生成超過 4000 字的故事時。
    • StoryWriter-Llama 和 StoryWriter-GLM 在長度分數 SlS_lSl? 也遠優于 Llama3.1-8B-Instruct 和 GPT-4o,這表明即使訓練中沒有明確的長度約束增強,訓練長文本也能提高模型遵循長度約束的能力 。

在這里插入圖片描述


總結

  1. 研究只考慮了英文,并不支持多語言生成
  2. 只關注了小說故事生成,并未考慮其他藝術風格
  3. 該文章中的復雜敘事結構,其實就是把 生成的 Outline 在擴寫后,交給 LLM 重構了 Outline 的順序,這樣不能解決實際問題,只是表面上的工作,該處可以參考 Multi-Agent Based Character Simulation for Story Writing 中對于復雜敘事結構的描述,或許有參考價值。
  4. 生成長度為 4000 字,并不能很好的解決小說的故事生成,還是個 toy。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93318.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93318.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93318.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Cohere 開發企業級大型語言模型(LLM)

Cohere 是一家專注于開發企業級大型語言模型(LLM)的公司。該公司推出了一系列名為 “Command” 的模型,其中最強大的 “Command A” 于今年三月首次亮相 Cohere 還提供嵌入模型,這是一種將文件轉化為神經網絡可以理解的緊湊數值形…

Rust Web框架Axum學習指南之入門初體驗

一、準備階段 確保已經安裝 rust,開發環境使用 vscode 或者 rustrover 都可以。接著就可以創建項目,通過編輯器創建或者命令行創建都可以: cargo new axum-admin二、添加依賴 添加依賴如下: [package] name "axum-admin&quo…

autofit.js: 自動調整HTML元素大小的JavaScript庫

🤍 前端開發工程師、技術日更博主、已過CET6 🍨 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 🕠 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 🍚 藍橋云課簽約作者、…

RocketMQ 命名服務器(NameServer)詳解

🚀 RocketMQ 命名服務器(NameServer)詳解 NameServer 是 RocketMQ 架構中的輕量級路由發現服務,它不參與消息的收發,但承擔著整個集群的“地址簿”和“導航系統”的關鍵角色。 理解 NameServer 的設計與工作原理&#…

代碼隨想錄算法訓練營四十三天|圖論part01

深度優先搜索(dfs)理論基礎 dfs就是可一個方向去搜直到盡頭再換方向,換方向的過程就涉及到了回溯。 代碼框架 因為dfs搜索可一個方向,并需要回溯,所以用遞歸的方式來實現是最方便的。 先來回顧一下回溯法的代碼框架…

飛算JavaAI金融風控場景實踐:從實時監測到智能決策的全鏈路安全防護

目錄一、金融風控核心場景的技術突破1.1 實時交易風險監測系統1.1.1 高并發交易數據處理1.2 智能反欺詐系統架構1.2.1 多維度欺詐風險識別1.3 動態風控規則引擎1.3.1 風控規則動態管理二、金融風控系統效能升級實踐2.1 風控模型迭代加速機制2.1.1 自動化特征工程結語&#xff1…

Vue 組件二次封裝透傳slots、refs、attrs、listeners

最近寫了一個開源項目,有些地方需要二次封裝,需要透傳一些數據,需要注意的是ref,我這里使用倆種方式間接傳遞ref,具體如下: 使用: import VideoPlayer from ./index.jsVue.use(VideoPlayer)inde…

介紹大根堆小根堆

文章目錄一、核心定義與結構特性示例(以“數組存儲堆”為例)二、堆的兩個核心操作1. 插入操作(以小根堆為例)2. 刪除極值操作(以小根堆為例,刪除根節點的最小值)三、小根堆 vs 大根堆&#xff1…

【Html網頁模板】賽博朋克數據分析大屏網頁

目錄專欄導讀? 項目概述🎨 設計理念🛠? 技術架構核心技術棧設計模式🎯 核心功能1. 視覺效果系統🌈 色彩體系2. 數據可視化模塊📊 主圖表系統📈 性能監控面板3. 實時數據流系統? 數據流動畫📊…

【經典上穿突破】副圖/選股指標,雙均線交叉原理,對價格波動反應靈敏,適合捕捉短期啟動點

【經典上穿突破】副圖/選股指標,雙均線交叉原理,對價格波動反應靈敏,適合捕捉短期啟動點 這是一款結合短線與中線信號的趨勢跟蹤指標,通過雙均線交叉原理捕捉股價突破時機,適用于個股分析和盤中選股。 核心功能模塊&…

RK3568 NPU RKNN(四):RKNN-ToolKit2性能和內存評估

文章目錄1、前言2、目標3、完整的測試程序4、運行測試程序5、程序拆解6、總結1、前言 本文僅記錄本人學習過程,不具備教學指導意義。 2、目標 使用野火提供的示例程序,體驗 RKNN-ToolKit2 在PC端使用連板推理,進行性能和內存評估。 3、完…

ASP.NET 上傳文件安全檢測方案

一、前端初步過濾&#xff08;防誤操作&#xff09;<!-- HTML部分 --><input type"file" id"fileUpload" accept".jpg,.png,.pdf,.docx" /><button onclick"validateFile()">上傳</button><script>func…

Nacos Server 3.0.x安裝教程

前言 注&#xff1a; 1.Nacos Server 3.0.x 要求 JDK版本不低于17。 2.Nacos 2.2.0 及以上版本需要 Java 11 或更高版本。 3.Java 8&#xff0c;需要下載 Nacos 2.1.x 及以下版本 JDK17安裝 JDK官方下載地址&#xff1a;Oracle官網JDK下載地址 JDK17&#xff1a;JDK17下載地…

【數據庫干貨】六大范式速記

1NF、2NF、3NF、BCNF、4NF、5NF都是數據庫設計中的范式&#xff08;Normalization&#xff09;&#xff0c;用于確保數據庫中的數據結構盡可能地減少冗余&#xff0c;避免更新異常、插入異常、刪除異常等問題&#xff0c;從而提高數據的存儲效率和一致性。 本篇文章簡單講解下各…

Java開發主流框架搭配詳解及學習路線指南

文章目錄一、前言&#x1f517;二、主流Java框架搭配2.1 Spring Boot MyBatis-Plus Spring Cloud2.2 Spring Boot Spring Data JPA Spring Cloud2.3 Quarkus/Vert.x (響應式編程棧)三、技術選型建議四、Java學習路線指南階段1&#xff1a;Java基礎 (4-6周)階段2&#xff1a…

flutter-使用device_info_plus獲取手機設備信息完整指南

文章目錄1. 概述2. 安裝與配置3. 基本使用方法3.1. 創建實例3.2. 區分平臺獲取信息4. 詳細信息獲取4.1. Android 設備信息4.2. iOS 設備信息4.3. Web 瀏覽器信息4.4. Windows 設備信息5. 實戰示例6. 注意事項6.1. 權限問題6.2. 隱私保護6.3. 平臺差異處理6.4. 性能考慮7. 常見問…

Java 時間處理 API 全解析:從 JDK7 到 JDK8 的演進

個人主頁-愛因斯晨 友友們&#xff0c;互三咯~ 目錄 個人主頁-愛因斯晨 ?編輯 前言 一、JDK7 時間處理基石 ——Date 類 &#xff08;一&#xff09;Date 類基本功能 &#xff08;二&#xff09;Date 類的局限性 二、格式化時間好幫手 ——SimpleDateFormat 類 &#…

duiLib 實現鼠標拖動標題欄時,窗口跟著拖動

1、布局文件&#xff0c;窗口需設置可拖動的標題欄區域&#xff1a;2、HandleMessage函數中&#xff0c;處理WM_LBUTTONDOWN消息&#xff0c;判斷鼠標在標題欄&#xff0c;讓系統處理窗口移動。代碼片段如下&#xff1a;else if (uMsg WM_LBUTTONDOWN) {// 獲取鼠標點擊坐標PO…

圖解嵌入式硬件知識庫體系

構建一個嵌入式硬件知識庫體系需要涵蓋嵌入式系統設計、開發和應用的各個方面,內容全面且系統化,適合不同層次的用戶。本文是一個結構化的嵌入式硬件知識庫體系,包含主要內容模塊及其詳細說明。 @startmindmap * 嵌入式硬件知識庫體系 ** 1. 嵌入式系統基礎 *** 概述與定義 …

機器學習的特征工程(特征構造、特征選擇、特征轉換和特征提取)詳解

特征工程是機器學習中至關重要的一步&#xff0c;它直接影響模型的性能和泛化能力。特征構造、特征選擇、特征轉換和特征提取——構成了特征工程的核心流程。下面我來系統地梳理一下它們的定義、方法和應用場景&#xff1a; 整理 by Moshow鄭鍇https://zhengkai.blog.csdn.net/…