LLooM:大語言模型時代文本聚類新思路
緣起
非結構化文本中蘊藏了海量的數據和知識,但是想要解讀這些知識卻并非易事。前大語言模型時代,LDA、BertTopic等算法,是非結構化文本挖掘的利器。但是這些模型生成的主題都是基于關鍵詞等基礎文本信號的,產生的關鍵詞、話題往往比較初級和寬泛,比如:早餐、打鼾等。這些低層次的文本分析,往往無法準確反映真實人類關心的話題。
為了解決傳統(tǒng)分析方法的局限性,提出了一種基于大語言模型的新方法 LLooM,來從非結構化文本中提取更加高層次的概念。
LLooM方法利用了大語言模型,通過Few Shot進行泛化學習。通過抽樣提取的文本,不斷地迭代出更加抽象高級的概念。LLooM的核心能力——綜合、分類和抽象——使其能夠迭代地生成概念,將它們應用于數據,并提煉出更高層次的概念。
LLooM算法被集成到LLooM工作臺(https://github.com/michelle123lam/lloom)的混合主動性文本分析工具中,它通過自動以可解釋的高級概念呈現數據集,增強了分析師的工作。LLooM工作臺還為分析師提供了一個可追溯和可塑的工作流程。每個提取的概念不僅是一個標簽,還可以展開為一個可審計的下級子概念的路徑。分析師可以使用LLooM工作臺引導算法,使其關注特定的概念,從而更精準地進行數據分析。
什么是LLooM方法
圖片
上圖展示了LLooM概念歸納算法的整個工作流程:
? 1)非結構化的文本數據
? 2)LLooM借助大型語言模型輔助生成
? 3)第2步生成的高級概念,這些概念由自然語言描述和以零樣本LLM提示形式的明確標準構成
? 4) LLooM根據概念標準的提示進行(4)概念評分
? 5)LLooM工作臺——一個混合主動性的文本分析工具——以概念維度對數據進行可視化展示。
LLooM算法通過運用大型語言模型(LLM)進行迭代的概念生成和評分輪次,執(zhí)行概念歸納。在實際使用中,LLooM算法采用了GPT-3.5和GPT-4。
圖片
LLooM算法通過調用大語言模型(實際使用的是GPT3.5和GPT4)不斷循環(huán)迭代的“概念生成”與“概念評分”步驟進行概念歸納。如上圖所示,算法的核心目標在于執(zhí)行一個關鍵的“合成(Synthesize)”步驟,將低層次的文本信號合成為高層次的概念。
在概念“合成”階段,通過使用LLM從提供的示例中進行泛化,生成自然語言的概念描述和標準。直接調用GPT4的話,往往會產生比較寬泛、通用的概念,這些概念雖然有助于對數據進行宏觀總計金額,但是實際分析時,往往需要更加具體、豐富的概念。另外一個問題是對于超出LLm上下文窗口的大型文本數據集,直接調用GPT4也是不太合理的。
為了解決上述問題,LLooM算法引入了兩個操作以提升數據規(guī)模和概念質量:
? (1) Distill(蒸餾),它將數據細化并適配至上下文窗口,同時保留關鍵信息;
? (2) Cluster(聚類),它將這些數據碎片重新組合成具有足夠共性的分組,以便從LLM中提煉出深層而非表面的概念。
在概念評分階段,利用LLM的零樣本推理能力,根據提示詞中的概念標準來給數據進行評分。
概念合成 Synthesize
概念合成是指從一組文本中,利用LLM提取出一個或多個高級概念。大型語言模型(LLM)具備的能力非常適合輔助此類任務。例如,GPT-3.5 Turbo和GPT-4能夠從少量實例中進行有效泛化,即識別出共通的概念,并將其應用于新實例。這種能力,也稱為Few Shot Learning,常在用戶已知底層規(guī)律并希望模型重復應用時使用(例如,將文本轉換為不同格式,或轉換寫作風格)。然而,當用戶尚不了解數據中存在哪些概念以輔助發(fā)現時,我們同樣可以利用這種能力。
盡管LLM可能產生幻覺并輸出不可靠的結果,但通過設計任務時,讓模型不僅生成概念,同時生成評估這些概念的標準,這樣就可以通過審查這些標準并重新評估原始數據來驗證LLM的輸出,檢驗概念是否有效。
基于這一洞察,LLooM實現了一個零樣本提示的概念合成操作,它指導一個LLM(如gpt-4)從一組示例中識別出統(tǒng)一的高級概念。該指令要求模型生成一個描述概念的名稱,提供最能代表該概念的示例編號,并創(chuàng)建一個能夠評估新文本實例并判斷概念是否適用的提示。這些組成部分對于理解概念的含義都非常有用,還采用了思維鏈(CoT)提示策略,指導模型提供其工作過程的詳細說明,從而提高內部一致性的概率。
圖片
上圖是概念合成的提示詞模板。用戶可以根據需要調整概念名稱的長度、代表性示例的數量以及建議的概念數量;默認使用2到4個單詞的概念名稱,并請求1到2個代表性示例。
蒸餾 Distill
蒸餾這一步目的是使的輸入的數據更為緊湊,但同時保留關鍵特征,這樣既可以克服LLM的上下文窗口限制,有增強了對特定興趣點的聚焦能力,從而提升概念生成的效率。在LLooM框架中,作者采用了分步策略來實現蒸餾操作。
首先,通過零樣本摘要的方式進行過濾步驟,提供輸入文本實例,并引導大型語言模型(如gpt-3.5-turbo)生成抽取式摘要,精準選取原始文本中的原文;如果文本長度適中,此步驟可選擇跳過。用戶可以根據需要調整所選引用的數量,通常我們會留空此參數,賦予模型自由提取任意數量引用的靈活性。下圖是一個過濾提示的示例:
圖片
接下來進行摘要操作,通過大語言模型,對內容進行摘要,以要點列表的形式輸出文本摘要。可以根據實際情況調整生成的要點數和每個要點的字數。默認設置一般是2-4個要點,每個要點包括5-8個詞。下圖是一個提示詞示例。
圖片
聚類
聚類操作的輸入是蒸餾操作提取出的一系列要點。LLooM算法利用特定的 Embedding模型,將要點轉換為嵌入向量,然后根據指定的聚類算法進行聚類。在實際運用中,作者使用的是OpenAI的text-embedding-ada-002模型,原因是這個模型支持較長的上下文理解、且生成速度快。聚類算法采用的是HDBSCAN,一種基于密度的層次聚類算法,它的優(yōu)勢在于不需要復雜的參數調整,且不必將所有點強行分配到某個聚類中。
評分
在概念生成階段,生成概念的同時,就為這些概念是生成了評分標準。所以評分環(huán)節(jié),就使用這些評分標準,為每一個概念進行打分(0-1分),用來描述概念的契合程度。
此功能通過批量Zero Shot實現,提示中包含了一組JSON格式的實例、概念提示以及以多項選擇形式生成答案的指令。已有研究指出,大型語言模型在零樣本場景下并不提供經過校準的0-1置信度評分。但是,最新研究發(fā)現,對于經過指令調整的OpenAI模型如GPT-3.5,多項選擇提示能夠提供近似的答案概率。作者采用多項選擇提示法,引導模型為每個給定的實例生成一個多項選擇答案及相應的理由。這些答案經過解析,轉換成了分段的數值評分,其中“強烈同意”對應1.0分,而“強烈反對”對應0.0分。隨后,這些評分會被閾值化為二進制標簽,用戶可以調整這個閾值,以決定何時一個實例應被視為與概念相匹配。
LLooM為每個輸入項賦予一個分數(如0到1的范圍),用以描述其與特定概念的關聯度。系統(tǒng)針對每一個高級概念,對所有示例(輸入文本)運行“評分”操作符,生成一個概念評分,該評分評估每個實例與生成的概念提示的契合度。
在給定??個示例和??個高級概念的情況下,此階段會生成一個??×??的矩陣,其中每個示例都會有一個二進制概念標簽。
最終,依據概念評分的結果,LLooM可以借助循環(huán)操作進行多輪迭代。一旦評分階段完成,循環(huán)操作符便會識別出兩類離群點:
? 未被覆蓋的示例,即那些與現有任何高級概念都不相符的案例;
?被通用概念所覆蓋的示例,也就是那些只與“通用”概念相匹配的案例,這些概念至少與50%的示例相匹配。
所有這些示例將作為輸入數據,流入算法的下一輪迭代,而后續(xù)運行中生成的概念也將整合進概念的全集之中。
算法的局限性
? 首先,LLooM算法提供了眾多可調參數,比如在蒸餾階段要抽取的引用數量和生成的項目符號數目。盡管這些參數對用戶而言是可理解的,但用戶提前設置這些參數并不直觀,因此最佳做法是讓系統(tǒng)在可能的情況下自動設定這些值。系統(tǒng)設有默認值和計算參數值的公式,但這些尚未進行廣泛的適用性測試。
? 此外,當前版本的算法并未包含驗證步驟,例如確保引用的精確匹配、項目符號與引用的準確性,以及概念分數和理由的正確性。盡管對于大型語言模型來說,可靠的驗證始終是一個挑戰(zhàn),但LLooM未來的改進版或許能從程序化的檢查和專為每個階段輸出驗證而設計的LLM操作符中獲益。我們對大型語言模型的應用也意味著,重新運行算法時結果會有變化。這種變化可以作為一個探索并行分析路徑和模擬變化的有用特性,但在分析必須可復制或需要強大且一致的對齊時,這可能是不可取的。
Arxiv
通往 AGI 的神秘代碼
if like_this_article():
do_action('點贊')
do_action('再看')
add_wx_friend('iamxxn886')
if like_all_arxiv_articles():
go_to_link('https://github.com/HuggingAGI/HuggingArxiv') star_github_repo(''https://github.com/HuggingAGI/HuggingArxiv')
本文轉載自??大語言模型論文跟蹤??,作者:HuggingAGI ?
