使用RAG的思想進(jìn)行PPT生成的框架思路-SlideCoder 原創(chuàng)
手動(dòng)創(chuàng)建幻燈片既費(fèi)時(shí)又費(fèi)力,如何從參考圖像自動(dòng)生成可編輯的幻燈片?
現(xiàn)有的問題:如Autopresent的方法,通過(guò)構(gòu)建大批量的SFT數(shù)據(jù)生成ppt代碼來(lái)生成ppt。然而,自然語(yǔ)言描述難以準(zhǔn)確描述幻燈片的視覺設(shè)計(jì),LLMs在處理復(fù)雜PPT時(shí)存在局限性,特別是包含多樣元素類型和高元素密度的情況;LLMs對(duì)python-pptx庫(kù)的理解不足,導(dǎo)致生成的代碼可能存在語(yǔ)法錯(cuò)誤或不可執(zhí)行。
SlideCoder提出一個(gè)基于RAG的思想-布局感知的檢索增強(qiáng)框架,用于從參考圖像生成可編輯的PPT。
方法
如下圖,SlideCoder框架的目標(biāo)是從參考圖像生成可執(zhí)行的Python幻燈片代碼。由三個(gè)核心模塊組成:基于顏色梯度的圖像分割算法(CGSeg)、層次化檢索增強(qiáng)代碼生成模塊(H-RAG)以及布局感知提示機(jī)制。

SlideCoder框架
1、基于顏色梯度的圖像分割算法(CGSeg)

CGSeg是一種遞歸的顏色梯度分割算法,用于將幻燈片設(shè)計(jì)圖像分解為語(yǔ)義上有意義的區(qū)域。該算法通過(guò)計(jì)算圖像的顏色梯度來(lái)識(shí)別和分割不同的區(qū)域,從而減少多模態(tài)大模型在理解復(fù)雜幻燈片設(shè)計(jì)時(shí)的難度。步驟如下:
- 圖像分割:將輸入圖像劃分為網(wǎng)格,并計(jì)算每個(gè)塊的Sobel梯度幅度。
 - 激活塊標(biāo)記:根據(jù)梯度幅度與閾值的比較,標(biāo)記出激活的塊。
 - 區(qū)域填充:對(duì)二值激活掩碼進(jìn)行洪水填充操作,識(shí)別出連接的區(qū)域。
 - 遞歸分割:對(duì)每個(gè)子圖像進(jìn)行遞歸分割,以適應(yīng)不同區(qū)域的視覺復(fù)雜度。
 
2、層次化檢索增強(qiáng)代碼生成模塊(H-RAG)
H-RAG模塊基于RAG的思想,提升多模態(tài)大模型對(duì)python-pptx庫(kù)的理解和代碼生成能力。通過(guò)兩個(gè)知識(shí)庫(kù)的層次化結(jié)構(gòu),分別為描述器和編碼器提供支持,確保生成的代碼在結(jié)構(gòu)和語(yǔ)法上的準(zhǔn)確性。
兩個(gè)主要知識(shí)庫(kù)
- 形狀類型知識(shí)庫(kù)(Shape Type Knowledge Base, TS-KB):該知識(shí)庫(kù)包含了python-pptx文檔中定義的各種形狀類型的描述。這些描述用于指導(dǎo)描述器生成標(biāo)準(zhǔn)化的形狀描述,確保生成的描述與python-pptx的術(shù)語(yǔ)一致。例如,描述器在生成描述時(shí)會(huì)使用TS-KB中的術(shù)語(yǔ),如“autoshape”或“textbox”,以確保描述的準(zhǔn)確性和一致性。示例如下:

 - 操作函數(shù)知識(shí)庫(kù)(Operation Function Knowledge Base, OF-KB):該知識(shí)庫(kù)包含了python-pptx庫(kù)中各種函數(shù)的完整語(yǔ)法規(guī)范,包括參數(shù)、返回值和使用示例等。編碼器利用OF-KB中的信息生成精確的代碼片段,確保生成的代碼在語(yǔ)法上是正確的,并且符合python-pptx庫(kù)的使用規(guī)范。例如,編碼器在生成代碼時(shí)會(huì)參考OF-KB中的函數(shù)參數(shù)和返回值信息,以確保生成的代碼能夠正確調(diào)用python-pptx庫(kù)的函數(shù)。示例如下:

 
知識(shí)庫(kù)的構(gòu)建與嵌入
使用了BGE M3-Embedding模型對(duì)知識(shí)庫(kù)中的條目進(jìn)行嵌入,并構(gòu)建了一個(gè)基于向量的檢索數(shù)據(jù)庫(kù)。
檢索與生成過(guò)程
由三個(gè)agent組成:描述器(Describer)、編碼器(Coder)和組裝器(Assembler)。
- 描述器生成全局和塊描述:描述器首先根據(jù)輸入的圖像和分割結(jié)果生成全局的設(shè)計(jì)描述以及每個(gè)分割塊的詳細(xì)描述。在生成描述的過(guò)程中,描述器會(huì)從TS-KB中檢索相關(guān)的形狀類型信息,以確保描述的標(biāo)準(zhǔn)化和準(zhǔn)確性。
 - 編碼器生成代碼片段:編碼器根據(jù)描述器生成的塊描述,從OF-KB中檢索相關(guān)的函數(shù)語(yǔ)法信息,生成相應(yīng)的代碼片段。這些代碼片段是基于檢索到的函數(shù)語(yǔ)法規(guī)范生成的,確保了代碼的語(yǔ)法正確性和功能性。
 - 組裝器生成完整代碼:組裝器將編碼器生成的代碼片段與布局信息結(jié)合,從OF-KB中檢索完整的語(yǔ)法模式,生成最終的幻燈片代碼。組裝器在生成代碼時(shí)會(huì)參考OF-KB中的語(yǔ)法模式,以確保生成的代碼在結(jié)構(gòu)上是正確的,并且能夠正確地布局幻燈片元素。
 
3、布局感知提示
布局感知提示機(jī)制通過(guò)在提示中注入布局位置信息,確保生成的代碼在空間上與參考圖像一致。該機(jī)制還從知識(shí)庫(kù)中檢索語(yǔ)法模式,以避免語(yǔ)法錯(cuò)誤和代碼沖突。提示詞如下:

實(shí)驗(yàn)與結(jié)論

SlideCoder在所有難度等級(jí)上的總體得分均優(yōu)于現(xiàn)有基線。

示例對(duì)比

消融實(shí)驗(yàn)結(jié)論:在移除每個(gè)組件后,執(zhí)行率和總分均表現(xiàn)出不同程度的下降,這證明了每個(gè)組件對(duì)整體框架的貢獻(xiàn)。
參考文獻(xiàn):SlideCoder: Layout-aware RAG-enhanced Hierarchical Slide Generation from Design,https://arxiv.org/pdf/2506.07964v1repo:https://github.com/vinsontang1/SlideCoder(代碼暫未開源)
本文轉(zhuǎn)載自??大模型自然語(yǔ)言處理?? 作者:余俊暉


















