介紹
許多生成式人工智慧的應用仍然圍繞著檢索增強生成(Retrieval Augmented Generation, RAG),但經常無法滿足用戶的期望。儘管對RAG改進的研究越來越多,甚至還加入了代理(Agents)進程,但許多解決方案仍然無法提供全面的結果,錯過了文件中關鍵但不常提及的信息,需要多次搜索,並且通常難以整合多個文件中的關鍵主題。此外,許多實現仍然依賴於將盡可能多的“相關”信息塞入模型的上下文窗口,並與詳細的系統和用戶提示一起使用。整合這些信息往往超出了模型的認知能力,影響了回應的質量和一致性。
這就是我們的代理知識蒸餾(Agentic Knowledge Distillation)+ 金字塔搜索方法(Pyramid Search Approach)發揮作用的地方。我們的團隊,包括吉姆·布朗(Jim Brown)、梅森·索特爾(Mason Sawtell)、桑迪·貝森(Sandi Besen)和我,採取了一種代理的方法來處理文件。
我們利用模型在攝取時的全部能力,專注於提煉和保留文件數據集中最有意義的信息。這根本上簡化了RAG過程,使模型能夠將推理能力集中在解決用戶/系統指令上,而不是在理解格式和不同信息方面掙扎。
我們特別針對那些通常難以評估的高價值問題,因為這些問題有多個正確答案或解決路徑。這些情況是傳統RAG解決方案最難以應對的,現有的RAG評估數據集在測試這一問題空間時也大多不夠充分。為了我們的研究實施,我們下載了道瓊斯工業平均指數(DOW Jones Industrial Average)中30家公司去年的年度和季度報告。這些文件可以通過美國證券交易委員會(SEC)EDGAR網站找到。EDGAR上的信息是可以免費訪問和下載的,或者可以通過EDGAR公共搜索查詢。請參見SEC隱私政策以獲取更多詳細信息,SEC網站上的信息被“視為公共信息,並且可以被網站用戶在未經SEC許可的情況下複製或進一步分發”。我們選擇這個數據集有兩個主要原因:首先,它超出了所評估模型的知識截止日期,確保模型無法根據其預訓練的知識回答問題;其次,它與現實世界的商業問題非常接近,同時讓我們能夠使用公開可用的數據來討論和分享我們的發現。
雖然典型的RAG解決方案在事實檢索方面表現出色,因為答案在文件數據集中很容易識別(例如,“蘋果公司(Apple Inc.)的年度股東大會何時舉行?”),但它們在需要更深入理解多個文件中概念的微妙問題上卻掙扎(例如,“哪家道瓊斯公司擁有最有前景的人工智慧策略?”)。我們的代理知識蒸餾+金字塔搜索方法在解決這類問題時的成功率遠高於我們測試的其他標準方法,並克服了在RAG系統中使用知識圖的限制。
在這篇文章中,我們將介紹我們的知識蒸餾過程如何運作、這種方法的主要好處、示例,以及對如何評估這類系統的開放討論,因為在許多情況下,並沒有單一的“正確”答案。
建立金字塔:代理知識蒸餾如何運作
概述
我們的知識蒸餾過程從原始源文件中創建一個多層金字塔的信息。這種方法受到深度學習計算機視覺任務中使用的金字塔的啟發,這使模型能夠在多個尺度上分析圖像。我們將原始文件的內容轉換為Markdown格式,並將內容提煉成原子見解、相關概念、文件摘要和一般回憶/記憶的列表。在檢索過程中,可以訪問金字塔的任何或所有層級來回應用戶請求。
如何蒸餾文件並建立金字塔:
將文件轉換為Markdown:將所有原始源文件轉換為Markdown。我們發現模型在處理這項任務時對Markdown格式的處理效果最佳,相比於其他格式如JSON,這樣更有效率。我們使用Azure Document Intelligence生成每頁文件的Markdown,但還有許多其他開源庫如MarkItDown也能完成相同的工作。我們的數據集包含331個文件和16,601頁。
從每頁提取原子見解:我們使用兩頁滑動窗口處理文件,這樣每頁可以分析兩次。這給了代理在初次處理頁面時糾正任何潛在錯誤的機會。我們指示模型創建一個編號的見解列表,隨著它處理文件中的頁面而增長。如果之前頁面的見解不正確,代理可以覆蓋它們,因為它會看到每頁兩次。我們指示模型用簡單的句子提取見解,遵循主語-動詞-賓語(SVO)格式,並且寫作時假設用戶的英語是第二語言。這顯著提高了性能,促進了清晰和精確。多次滾動每頁並使用SVO格式也解決了歧義問題,這對知識圖來說是一個巨大的挑戰。見解生成步驟對於從表格中提取信息特別有幫助,因為模型能夠以清晰、簡潔的句子捕捉表格中的事實。我們的數據集產生了216,931個總見解,每頁約13個見解,每個文件655個見解。
從見解中蒸餾概念:從詳細的見解列表中,我們識別出更高層次的概念,這些概念將有關的信息連接在一起。這一步驟顯著減少了文件中的噪音和冗餘信息,同時保留了重要的信息和主題。我們的數據集產生了14,824個總概念,每頁約1個概念,每個文件45個概念。
從概念創建摘要:根據文件中的見解和概念,LLM(大型語言模型)撰寫的摘要比任何人類撰寫的摘要都要好,並且比原始文件中的任何摘要都更密集。LLM生成的摘要提供了有關文件的極其全面的知識,並且其令牌密度小,攜帶了大量的信息。我們每個文件生成一個摘要,共計331個。
在文件間存儲回憶/記憶:在金字塔的頂部,我們存儲對所有任務有用的關鍵信息。這可以是用戶分享的任務信息,或者代理通過研究和回應任務隨著時間學到的有關數據集的信息。例如,我們可以將當前的30家公司在道瓊斯指數中存儲為回憶,因為這個列表與模型知識截止時的30家公司不同。隨著我們進行越來越多的研究任務,我們可以不斷改進我們的回憶,並保持這些回憶來源於哪些文件的審計記錄。例如,我們可以追蹤各公司之間的人工智慧策略、公司進行重大投資的地方等。這些高層次的連接非常重要,因為它們揭示了在單一頁面或文件中不明顯的關係和信息。

我們在Azure PostgreSQL中存儲金字塔每一層(頁面及以上)的文本和嵌入。我們最初使用Azure AI Search,但因為成本原因轉向了PostgreSQL。這要求我們編寫自己的混合搜索功能,因為PostgreSQL尚未原生支持此功能。這種實現可以與您選擇的任何向量數據庫或向量索引一起使用。關鍵要求是能夠在金字塔的任何層級有效地存儲和檢索文本和向量嵌入。
這種方法本質上創造了知識圖的本質,但以自然語言存儲信息,這是LLM本質上希望與之互動的方式,並且在令牌檢索方面更有效。我們還讓LLM選擇用於標籤每個金字塔層級的術語,這似乎讓模型自行決定描述和區分存儲在每個層級的信息的最佳方式。例如,LLM更喜歡將“見解”作為蒸餾知識的第一層標籤,而不是“事實”。我們這樣做的目標是通過讓它決定如何存儲和分組相關信息,更好地理解LLM對這一過程的思考。
使用金字塔:它如何與RAG和代理一起運作
在推理時,傳統RAG和代理方法都受益於我們知識金字塔中預處理的蒸餾信息。金字塔結構允許在傳統RAG情況下高效檢索,僅檢索前X個相關信息,或在代理情況下,代理反覆計劃、檢索和評估信息,然後返回最終回應。
金字塔方法的好處在於,在推理過程中可以使用金字塔的任何和所有層級的信息。對於我們的實施,我們使用PydanticAI創建了一個搜索代理,該代理接收用戶請求,生成搜索詞,探索與請求相關的想法,並跟踪與請求相關的信息。一旦搜索代理確定有足夠的信息來解決用戶請求,結果會重新排名並發送回LLM以生成最終回應。我們的實施允許搜索代理在收集有關概念/搜索詞的詳細信息時遍歷金字塔中的信息。這類似於走訪知識圖,但對於LLM來說更自然,因為金字塔中的所有信息都是以自然語言存儲的。
根據使用情況,代理可以訪問金字塔的所有層級的信息或僅特定層級的信息(例如僅檢索概念中的信息)。在我們的實驗中,我們沒有檢索原始頁面級數據,因為我們希望專注於令牌效率,並發現LLM生成的見解、概念、摘要和回憶的信息足以完成我們的任務。理論上,代理也可以訪問頁面數據;這將為代理重新檢查原始文件文本提供額外的機會;然而,這也會顯著增加使用的總令牌數。
以下是我們代理方法回應用戶請求的高層次可視化:

金字塔的結果:現實世界的示例
為了評估我們方法的有效性,我們針對各種問題類別進行了測試,包括典型的事實查詢問題和複雜的跨文件研究和分析任務。
事實查詢(針對特定問題):
這些任務需要識別埋藏在文件中的特定信息或事實。這些是典型RAG解決方案針對的問題類型,但通常需要多次搜索並消耗大量令牌才能正確回答。
示例任務:“IBM在最新的財務報告中的總收入是多少?”
使用金字塔方法的示例回應:“IBM在2024年第三季度的總收入為149.68億美元 [ibm-10q-q3-2024.pdf,第4頁]”

這個結果是正確的(經人類驗證),並且僅使用了9,994個總令牌,其中生成的最終回應佔1,240個令牌。
複雜的研究和分析:
這些任務涉及研究和理解多個概念,以獲得對文件的更廣泛理解,並根據收集的事實進行推斷和知情假設。
示例任務:“分析微軟(Microsoft)和英偉達(NVIDIA)在人工智慧方面的投資,以及它們在市場中的定位。報告應該格式清晰。”
示例回應:

這個結果是一份全面的報告,執行迅速,包含有關每家公司的詳細信息。總共使用了26,802個令牌來研究和回應請求,其中相當大的一部分用於最終回應(2,893個令牌或約11%)。這些結果也經過人類審核以驗證其有效性。

示例任務:“創建一份報告,分析道瓊斯中各金融公司披露的風險。指出哪些風險是共享的,哪些是獨特的。”
示例回應:


同樣,這項任務在42.7秒內完成,使用了31,685個總令牌,其中3,116個令牌用於生成最終報告。

這些事實查詢和複雜分析任務的結果顯示,金字塔方法能夠高效地創建詳細報告,並以低延遲使用最少的令牌。用於任務的令牌攜帶著豐富的意義,噪音很少,從而能夠在各種任務中提供高質量、徹底的回應。
金字塔的好處:為什麼要使用它?
總的來說,我們發現金字塔方法顯著提高了高價值問題的回應質量和整體性能。
我們觀察到的一些主要好處包括:
減少模型的認知負擔:當代理接收到用戶任務時,它檢索的是預處理的蒸餾信息,而不是原始、不一致格式的不同文件塊。這根本改善了檢索過程,因為模型不會在第一次嘗試時浪費其認知能力來分析頁面/塊文本。
優越的表格處理:通過將表格信息分解並以簡潔但描述性的句子存儲,金字塔方法使得在推理時通過自然語言查詢檢索相關信息變得更容易。這對於我們的數據集特別重要,因為財務報告中包含大量關鍵信息在表格中。
改善對多類請求的回應質量:金字塔使得對精確的事實查詢和涉及多個主題的廣泛分析任務能夠提供更全面的上下文感知回應。
保留關鍵上下文:由於蒸餾過程識別並跟踪關鍵事實,文件中可能僅出現一次的重要信息更容易保持。例如,注意到所有表格以百萬美元或特定貨幣表示。傳統的分塊方法往往會導致這類信息被忽略。
優化令牌使用、內存和速度:通過在攝取時蒸餾信息,我們顯著減少了推理過程中所需的令牌數量,能夠最大化上下文窗口中信息的價值,並改善內存使用。
可擴展性:許多解決方案在文檔數據集增長時表現不佳。這種方法提供了一種更有效的方式來管理大量文本,只保留關鍵信息。這也允許更有效地使用LLM的上下文窗口,只發送有用且清晰的信息。
高效的概念探索:金字塔使代理能夠探索相關信息,類似於導航知識圖,但不需要生成或維護圖中的關係。代理可以僅使用自然語言,並以高效的令牌方式流暢地跟踪與其探索的概念相關的重要事實。
新興數據集理解:在我們的測試中出現了一個意外的好處。當詢問“你能告訴我這個數據集的什麼?”或“我可以問什麼類型的問題?”時,系統能夠回應並建議有生產力的搜索主題,因為它通過訪問金字塔的更高層級(如摘要和回憶)對數據集上下文有更強的理解。
超越金字塔:評估挑戰與未來方向
挑戰
雖然我們在使用金字塔搜索方法時觀察到的結果令人驚艷,但找到建立有意義的指標來評估整個系統在攝取時和信息檢索過程中的挑戰性是困難的。傳統的RAG和代理評估框架往往無法解決微妙的問題和分析性回應,其中許多不同的回應都是有效的。
我們的團隊計劃在未來撰寫一篇關於這種方法的研究論文,我們也歡迎社區的任何想法和反饋,特別是在評估指標方面。我們發現的許多現有數據集都專注於評估RAG在單一文件內或在多個文件中精確信息檢索的用例,而不是跨文件和領域進行強健的概念和主題分析。
我們感興趣的主要用例與更廣泛的問題有關,這些問題代表了企業實際希望如何與生成式人工智慧系統互動。例如,“告訴我有關客戶X的所有信息”或“客戶A和B的行為有何不同?我更有可能與哪一位成功會議?”這類問題需要對來自多個來源的信息進行深入理解。這些問題的答案通常需要人們從多個業務領域綜合數據並進行批判性思考。因此,這些問題的答案很少被書面記錄或保存,這使得無法通過典型的RAG過程中的向量索引簡單地存儲和檢索它們。
另一個考量是,許多現實世界的用例涉及動態數據集,其中文件不斷被添加、編輯和刪除。這使得評估和跟踪“正確”回應變得困難,因為答案會隨著可用信息的變化而演變。
未來方向
未來,我們相信金字塔方法可以通過更有效地處理密集文件和將學習到的信息存儲為回憶來解決一些這些挑戰。然而,隨著時間的推移,跟踪和評估回憶的有效性對於系統的整體成功至關重要,並且仍然是我們持續工作的重點。
在將這種方法應用於組織數據時,金字塔過程還可以用來識別和評估業務各個領域之間的差異。例如,上傳公司所有的銷售簡報可能會顯示某些產品或服務的定位不一致。它也可以用來比較從各業務數據中提取的見解,以幫助了解團隊是否在主題或不同優先事項上發展出衝突的理解。這種應用超越了純粹的信息檢索用例,將使金字塔成為一種組織對齊工具,幫助識別信息、術語和整體溝通中的差異。
結論:關鍵要點及金字塔方法的重要性
知識蒸餾金字塔方法的重要性在於它在攝取和檢索時充分利用了LLM的全部能力。我們的方法允許您以更少的令牌存儲密集信息,這還具有減少推理時數據集噪音的附加好處。我們的方法運行非常迅速,並且在令牌效率上極高,我們能夠在幾秒鐘內生成回應,探索可能的數百次搜索,並且平均使用少於40,000個令牌來完成整個搜索、檢索和生成回應的過程(這包括所有搜索迭代!)。
我們發現LLM在將原子見解寫成句子方面表現得更好,這些見解有效地從文本和表格數據中提煉信息。這些用自然語言寫成的蒸餾信息對於LLM在推理時理解和導航非常容易,因為它不必在格式化或篩選噪音方面浪費不必要的精力。
在金字塔的任何層級檢索和聚合信息的能力也為解決各種查詢類型提供了顯著的靈活性。這種方法對於大型數據集提供了有希望的性能,並使得需要細緻信息檢索和分析的高價值用例成為可能。
注意:本文中表達的意見僅代表我個人觀點,並不一定反映我雇主的觀點或政策。
有興趣進一步討論或合作嗎?請在LinkedIn上聯繫我!
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!