利用 RAG 來輔助寫作
大量非結構化資料的應用
最近因為寫長文—在 Neovim 中探索 Fennel 與函數式編程的關系,我有一分很長書稿。
寫作的時候,告一段落之後,我會利用 LLM 來幫我做一些分析,比方說,我會利用以下的 prompt 來讓我更容易對我的讀者聚焦。
以下是一本專業書的第 ${n} 部分。請你閱讀這段內容,並幫助我分析這段文字所預設的內隱讀者(Implied Reader)是什麼樣的人?
具體來說,請你從以下幾個方面來描述:
讀者的背景知識: 這位讀者可能具備哪些專業知識?是初學者、中級學習者還是該領域的專家?
讀者的學習目標: 這位讀者想從書中獲得什麼?是想解決特定問題、學習新技能還是獲取宏觀知識?
讀者的思維模式與偏好: 讀者可能習慣什麼樣的論證方式?是喜歡條列式說明、圖表輔助還是需要大量實例?
基於以上分析,請你綜合描述這位內隱讀者的完整輪廓。
多年以前,有一位老師指導我開始寫書。老師給的建議真是有夠少,少到我覺得這個真的是教人的方式嗎?從頭到尾,他只給了三個意見:
一本專業書應該要有一個主題 (要解決的問題)、清晰的大綱、還有足夠的背景研究來支持它的論點。
就是一直寫就是了。
想象你在跟讀者對話。
其中第三點其實很矛盾。一方面是說,它真的滿有效的,但是我剛開始寫書時,真的想象不太出來那個讀者。然而,很幸運的事情是,那時我恰好有一個機會,每週三去對同一群學生們上課,而學生們恰好就是一群有一定知識水準的白領。
每次上課,我在跟真人交談之後,都得到許多寫作的靈感。
過了很久以後,我才知道上述『作者與讀者的對話』,它有人做過研究,並且提出一個論點,叫做內隱讀者(Implied Reader)。
內隱讀者
內隱讀者(Implied Reader)是文學理論,特別是讀者反應理論 (Reader-Response Theory) 中的一個核心概念。它最早由德國學者沃爾夫岡·伊瑟爾 (Wolfgang Iser) 提出,用來描述文本本身在建構時所預期和邀請的讀者角色。
這個概念有幾個關鍵要點:
它是一個文本的「建構」而非真實人物: 內隱讀者並非指任何一位真實讀者(flesh-and-blood),而是文本結構所體現出來的假設對象。它包含了文本為了讓讀者能夠充分理解和反應所「預設」的所有知識、能力和態度。
它體現在文本的修辭與風格中: 文本的每個設計,從專業術語的使用、論證的複雜程度、到幽默感和情感基調,都是在向這位內隱讀者「發出邀請」。例如,如果一本書大量使用行話且不加解釋,那麼它的內隱讀者就是一位該領域的專家;如果它從基礎概念開始,則預設的內隱讀者是一位初學者。
它讓閱讀成為一個動態的過程: 伊瑟爾認為,所有文學文本都存在空隙(gaps)和不確定性。內隱讀者就是被文本要求主動參與、填補這些空隙的角色。這種填補行為,將文本的潛在意義具體化為讀者個人的作品(Work)。
回到我的寫作經驗,那位老師所說的「想像你在跟讀者對話」,其實就是在指引我去具象化那個內隱讀者。
當我一開始無法想像時,實際的課堂教學和學生們的回饋,正好為我提供了一個「真實讀者」的經驗基礎。這些互動幫助我勾勒出:他們已經知道什麼(背景知識)、他們對什麼感到困惑(空隙)、以及他們希望學到什麼(學習目標)。
而在有了 LLM 輔助之後,我透過 LLM 系統化地反向工程 (reverse engineer) 文本中的「內隱讀者」。這使我能夠更精準地分析書稿的每個部分,是否成功地將我期望的內隱讀者嵌入到文本的結構與論證之中,從而確保寫作的焦點和一致性。
麻煩的幻覺
然而,很快地,我的書稿來到了四萬字以上。漸漸地 LLM 的幻覺愈來愈嚴重。我只好很無奈地將書稿切成數段一一丟給 LLM 來分析,再叫它做總結。
在一次偶然的機會,我靈機一動,想到也許我該應用 Google NotebookLM 來做這件事,一實驗之後,覺得真是太好了,幻覺終於消失了,我終於不用再手動分段資料了。
仔細多想一下,那為什麼 NotebookLM 可以避免幻覺呢?
因為它不是單純的 LLM,而是採用了 RAG (Retrieval-Augmented Generation) 技術。它會把你的資料先切塊、建立索引。當你提問時,RAG 會先從索引中檢索出(Retrieval)最相關的原始片段,然後將這些片段作為上下文(Context)餵給 LLM 進行生成(Generation)。這種有據可查的機制,大幅度地提高了精準度,避免了模型在資料不足時產生幻覺。
反思
針對這回我因為要輔助寫作,最後重新發現 RAG 的應用一事,我得到兩個啟發:
我應用 LLM ,似乎特別喜歡「分析型」的應用。除了這篇的內隱讀者之外,之前還有用來處理行為語料、分析技術決策的衡量標準。
在很久以前,友人介紹我使用 NotebookLM 時,我雖然有試用了一下,但是因為沒有多思考 NotebookLM 的內部運作原理,也因此,我不理解如何活用它。而這回我終於想清楚了。
生活在現代,透過 RAG 與反向工程的 prompt,我終於能以有系統的方式,將老師多年前教導的『與內隱讀者對話』這個寫作藝術,轉化為可以實際操作的寫作工程。


