隨著人工智能技術的飛速發展,多模態Agent應用開發已成為當下行業關注的焦點。在實際落地過程中,如何有效構建和優化這些應用,以滿足日益增長的復雜需求,是當前企業和開發者面臨的重要挑戰。
基于這樣的大背景,本次邀請到商湯大裝置研發總監王志宏從技術視角進行構建方式的詳細介紹,從最初簡單的樸素RAG框架,到如今能夠支持圖片、視頻、音頻等多種媒體形式的多模態RAG框架,再到滿足企業級復雜需求的企業級RAG架構。本文將深入探討這些技術的發展歷程和關鍵要點,為讀者提供清晰的指導和見解。
分享嘉賓|
商湯大裝置研發總監 王志宏
內容已做精簡,如需獲取專家完整版視頻實錄和課件,請掃碼領取。
01
樸素RAG框架及其局限性
RAG(Retrieval-Augmented Generation,檢索增強生成)作為一種重要的技術架構,在人工智能領域有著廣泛的應用。其最基礎的形式,即樸素RAG框架,為我們理解這一技術的原理和發展提供了重要的起點。
圖1 樸素RAG框架
(一)樸素RAG框架的原理
樸素RAG框架的核心在于檢索增強生成,其工作流程可概括為以下幾個關鍵步驟:
1.知識庫構建:知識庫是樸素RAG框架的基石,它存儲了海量的文檔信息。這些文檔可以是各種類型的知識資源,如學術論文、新聞報道、企業內部資料等。知識庫的主要作用是從這些海量文檔中檢索出與用戶輸入問題相關的片段。與直接使用單篇文檔進行問答的方式相比,知識庫的優勢在于能夠處理大量文檔。當文檔數量較少時,直接將文檔解析后作為上下文提供給大模型即可。然而,當文檔數量達到成千上萬篇甚至幾十萬篇時,將所有文檔直接提供給大模型是不現實的。因此,知識庫通過檢索相關片段的方式,有效地解決了這一問題。
2.文檔預處理:在知識庫構建過程中,文檔需要經過一系列預處理步驟。首先,文檔需要被讀取并轉化為計算機能夠識別的格式。然后,對文檔進行解析,包括切片、總結、提取關鍵詞等操作。這些解析操作的目的是為了讓召回器能夠更準確地召回與用戶問題相關的片段。例如,通過提取關鍵詞,召回器可以快速定位到包含這些關鍵詞的文檔片段,從而提高檢索的效率和準確性。解析后的文檔片段會被存儲在數據庫中,實現私有化存儲,以便后續的檢索和使用。
3.在線檢索與輸出:當用戶提出一個問題時,系統進入在線階段。根據一定的策略,系統從知識庫中檢索到與用戶問題相關的片段。這些片段與用戶的問題一起被打包,作為上下文提供給大模型。大模型根據這些上下文信息生成相應的回答。這一過程實現了用戶問題與知識庫中知識的有效結合,使得回答能夠基于更廣泛的知識背景。
(二)樸素RAG框架的局限性
盡管樸素RAG框架能夠實現基本的知識檢索和生成功能,但它也存在一些明顯的局限性。其中最突出的問題是它無法支持圖片的輸入和輸出。在當今數字化時代,信息的呈現形式越來越多樣化,圖片作為一種重要的信息載體,在許多應用場景中都發揮著關鍵作用。然而,樸素RAG框架僅能處理文本信息,對于包含圖片的文檔,它無法進行有效的處理和理解。例如,當文檔中包含圖表、圖像等視覺元素時,樸素RAG框架無法識別和利用這些元素來生成更豐富、更準確的回答。這一局限性限制了RAG技術在多模態應用中的發展,也使得它在一些需要處理視覺信息的場景中無法充分發揮作用。
樸素RAG框架作為RAG技術的基礎形式,雖然在知識檢索和生成方面具有一定的優勢,但其對圖片輸入輸出的支持不足,使其在多模態應用中的局限性逐漸凸顯。這促使研究人員和開發者不斷探索更先進的框架,以克服這一局限性,實現更廣泛的應用場景。
02
多模態RAG框架的構建與拓展
在探討多模態Agent應用開發的過程中,多模態RAG框架的出現標志著技術架構的一次重大升級,它在傳統RAG框架的基礎上,通過增強對圖片等多媒體數據的處理能力,極大地拓展了應用的邊界,為更豐富、更智能的人工智能應用奠定了基礎。
圖2 多模態RAG框架
(一)多模態RAG框架的圖片處理能力
多模態Agent架構相較于傳統Agent架構,最顯著的升級在于對圖片處理能力的強化。在文檔解析過程中,當文檔中包含圖片時,文檔解析器需要能夠準確地解析這些圖片,并將文本和圖片分別進行處理。具體而言,文本和圖片分別進行向量化處理,即將文本轉化為文本向量,圖片轉化為圖片向量。圖片向量的生成有兩種方式:一種是直接使用支持圖片向量的向量模型,對文字和圖片進行統一編碼,或者分別編碼后再映射到同一個向量空間;另一種方式是先將圖片轉換為文本,通過一些視覺問答(VQA)模型或視覺語言模型(VL VLM),提取圖片的關鍵詞,盡可能全面地描述圖片內容,然后將這些文本描述進行向量空間映射。通過這種方式,多模態RAG框架能夠有效地處理文檔中的圖片,無論是用戶提出純文本問題還是圖文并茂的問題,都可以利用相同的向量模型對問題進行向量化,并在向量庫中匹配相關片段。
(二)多模態RAG框架對視頻與音頻的支持
除了圖片,多模態RAG框架還能夠支持視頻與音頻的處理。對于音頻,由于存在許多小模型可以進行語音轉文字或文字轉語音的工作,因此音頻通常會先被轉換為文字,然后再輸入到模型中。而對于視頻,由于其數據量較大,直接處理較為復雜,常用的做法是先對視頻進行抽幀,即將視頻中的每一幀提取出來作為圖片。例如,對于一個60分鐘的視頻,每秒可能有30幀,通過抽幀策略,如每秒抽取3張圖片,或者在視頻內容發生重大變化時抽取一幀等,將視頻轉換為一系列圖片,這些圖片就可以被納入多模態RAG框架中進行處理。這種對多媒體數據的支持,使得多模態RAG框架能夠處理更加豐富多樣的文檔形式,為更廣泛的應用場景提供了可能。
(三)多模態RAG框架在宏觀問題處理上的挑戰與解決方案
盡管多模態RAG框架在處理多媒體數據方面具有顯著優勢,但在面對一些宏觀問題時,傳統的RAG架構仍存在一定的局限性。例如,當用戶詢問2005年關于Agent的論文數量,或者2005年Agent領域討論最多的話題等問題時,傳統的RAG知識庫僅能根據用戶的輸入在文本庫中召回相似的片段,而無法將所有相關的內容全部檢索出來。這是因為傳統的RAG通常會設置一個最大召回數量,一般為6到12篇,這使得在面對需要全面統計的問題時,無法滿足需求。
為了解決這一問題,多模態RAG框架在RAG的基礎上引入了Agent。這個Agent可以將RAG知識庫中每篇文章的關鍵信息寫入數據庫,如作者、發布年代、主題、亮點等。然后,通過讓大模型執行SQL調用,將用戶的自然語言問題轉換為SQL語句,并執行這些語句以獲取統計結果。如果SQL語句執行成功,大模型會將結果返回并進行總結輸出;如果執行失敗,則會根據錯誤信息重新生成SQL語句并再次嘗試,直到生成正確的SQL語句并成功執行。此外,入口處還設置了一個意圖識別模塊,用于判斷用戶的輸入是簡單的知識庫問答還是復雜的需要深入分析的問題。根據用戶的意圖,Agent會將問題導向不同的模塊進行具體任務的執行,最終給出讓用戶滿意的答案。這種帶有Chat BI(聊天式商業智能)能力的知識庫,能夠支持更復雜的查詢和統計分析,為用戶提供更全面、更深入的信息支持。
03
企業級RAG的實現與優化
在前兩部分中,我們詳細探討了樸素RAG框架及其局限性,以及多模態RAG框架的構建與拓展。這些內容主要集中在算法架構的設計和功能實現上。然而,在實際的企業級應用中,僅僅具備強大的算法架構是不夠的。為了滿足工業生產的需求,還需要考慮系統的高并發處理能力以及復雜的用戶權限體系。接下來,我們將深入探討如何實現企業級RAG,使其能夠支持大規模的工業生產。
(一)企業級RAG的架構設計
在企業級應用中,算法框架往往不能直接支持高并發和復雜的用戶權限體系。因此,我們需要對系統進行封裝和優化,以滿足這些需求。面對企業復雜的權限需求,通常的做法是將后端的鑒權和算法支持進行分離。具體而言,算法本身應該是無狀態的,這意味著它能夠根據用戶自定義的標簽進行精細粒度的檢索。而鑒權則在后端進行,后端會檢查用戶的身份信息,并為其打上詳細的標簽,然后將這些標簽傳遞給算法,以便算法進行無狀態查詢。這種分離的方式使得算法可以專注于數據處理,而鑒權則由后端系統負責,從而提高了系統的靈活性和可擴展性。
圖3 企業級RAG:高并發支持
(二)并發支持的實現
為了使RAG或Agentic RAG能夠支持較好的并發性能,我們需要將每個模塊都服務化。以下是具體的實現步驟:
1.存儲服務化:存儲和文件管理是算法和離線解析共同訪問的資源。為了方便對文件的管理,可以通過Joyce FS將Mini IO起的對象存儲和文件存儲映射到同一個空間。這樣,無論是算法模塊還是離線解析模塊,都可以方便地訪問和管理文件資源。
2.模塊服務化:將所有用到的模塊都打成獨立的服務。例如,文本解析可以作為一個獨立的服務,如果使用Mini U進行解析,則將其封裝為一個解析服務;向量模型、大模型(如NewVAS)也分別封裝為獨立的服務。NewVAS的服務包括離線的入庫和在線召回,它們可以共用一個服務。此外,還可以將離線處理和在線處理分別封裝為獨立的服務。
3.微服務架構:通過網關將所有服務連接起來,形成一個簡單的微服務架構。每個服務都保證自己的并發量,從而確保整個系統的并發性能。在這種架構下,每個服務可以獨立擴展,根據實際需求調整資源分配,從而提高系統的整體性能和可擴展性。
圖4 企業級RAG:高并發支持
(三)企業級RAG的優化與封裝
在企業級應用中,為了滿足高并發和復雜權限體系的需求,對RAG框架的優化和封裝至關重要。通過將后端鑒權和算法支持分離,以及將每個模塊服務化,可以實現一個靈活、可擴展且性能優越的企業級RAG系統。這種系統不僅能夠支持大規模的工業生產,還能夠根據不同的用戶需求和權限進行個性化的服務。通過這種方式,企業可以充分利用RAG技術的強大功能,同時確保系統的穩定性和安全性。
曾擔任商湯自研的深度學習框架SenseParrots 的研發負責人;目前負責探索大模型應用的商業落地,并主導多Agent大模型應用開發工具鏈LazyLLM社區版及企業版的研發工作。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.