大模型應用的 10 種架構模式

在塑造新領域的過程中,我們往往依賴於一些經過實踐驗證的策略、方法和模式。這種觀念對於軟件工程領域的專業人士來說,已經司空見慣,設計模式已成爲程序員們的重要技能。然而,當我們轉向大模型應用和人工智能領域,情況可能會有所不同。面對新興技術,例如生成式 AI,我們尚缺乏成熟的設計模式來支撐這些解決方案。

作爲一位老碼農,我在這裏整理總結了一些針對大模型應用的設計方法和架構模式,試圖應對和解決大模型應用實現中的一些挑戰,如成本問題、延遲問題以及生成的不準確性等。

  1. 路由分發模式

當用戶輸入一個查詢時,該查詢會被髮送到控制中心,而控制中心則扮演着對輸入進行分類的角色。

如果查詢是可以識別的,那麼它會被路由到小語言模型進行處理,這通常是一個更準確、響應更快且成本更低的操作。然而,如果查詢無法被識別,那麼它將由大型語言模型來處理。儘管大型語言模型的運行成本較高,但它能夠成功返回更多種類型查詢的答案。通過這種方式,人工智能產品可以在成本、性能和用戶體驗之間實現平衡。

  1. 大模型代理模式

想象一個生態系統,其中多個專門針對特定任務的生成式 AI 模型各自作爲其領域內的專家,並行工作以處理查詢。這種多路複用模式能夠生成一系列不同的響應,然後將這些響應整合在一起,形成一個全面的答案。

這樣的設置非常適合複雜的問題解決場景,在這種場景中,問題的不同方面需要不同的專業知識,就像一個由專家組成的小組,每個專家負責處理更大問題的一個方面。

更大的模型(如 GPT-4)負責理解上下文,並將其分解爲特定的任務或信息請求,這些任務或信息請求被傳遞給更小的代理。這些代理可能是較小的語言模型,它們已經接受過特定任務的訓練,或者是具有特定功能的通用模型,如 GPT、Llama、上下文提示和函數調用。

  1. 多任務微調模式

在這種架構模式中,我們對大型語言模型進行了微調,使其能夠同時處理多個任務,而非僅僅針對單個任務。這是一種跨領域知識和技能遷移學習的方法,大大增強了模型的多功能性。

這種多任務學習方法對於那些需要應對各種複雜任務的平臺來說尤其有用,例如虛擬助理或是人工智能驅動的研究工具。這極大地簡化了面向複雜領域的訓練和測試工作流程。

在訓練大型語言模型(LLM)時,我們可以利用一些資源和軟件包,如 DeepSpeed,以及 Hugging Face 的 Transformer 庫。

  1. 面向微調的分層緩存策略模式

我們將緩存策略和相關服務引入到大模型應用架構中,可以成功地解決成本、數據冗餘以及訓練數據等組合問題。

通過儲存這些初始結果,系統能夠在後續查詢中迅速提供答案,從而顯著提高了效率。當我們累積了足夠的數據後,微調層級將啓動,利用早期交互的反饋,進一步完善一個更爲專業化的模型。

專有大模型不僅簡化了操作流程,也使人工智能專業知識更好地適應特定任務,使其在需要高度精確性和適應性的環境中,如客戶服務或個性化內容創建,表現得更爲高效。

對於剛入門的用戶,可以選擇使用預先構建的服務,如 GPTCache,或者使用常見的緩存數據庫,如 Redis、Cassandra、Memcached 來運行自己的服務。在向混合服務中添加其他服務時,一定要記得監控並測量延遲情況。

  1. 混合規則模式

許多現行的商業系統和企業應用在一定程度上仍然依賴於基於規則的架構。通過將大模型與基於規則的邏輯結合,我們能夠融合結構化的精確性,旨在創造出既富有創意又遵循規範的解決方案。

對於那些必須嚴格遵守標準或法規的行業或產品而言,這是一個非常有效的架構模式,它確保了人工智能在保持創新的同時,仍能遵守既定的理想參數。例如,這種架構可以應用於生成電話 IVR 系統或基於規則的傳統(非 LLM)聊天機器人的意圖和消息流。

  1. 知識圖譜模式

將知識圖譜與生成型人工智能模型結合,賦予了它們面向事實的超級能力,使得輸出不僅具有上下文情境,而且更加符合事實。

對於要求內容真實性和準確性不容忽視的應用來說,這種方法至關重要,比如在教育內容創作、醫療諮詢或任何誤導可能帶來嚴重後果的領域。

知識圖譜及其本體能夠將複雜主題或問題分解成結構化格式,爲大型語言模型提供深層上下文基礎。我們甚至可以藉助語言模型,以 JSON 或 RDF 等格式創建本體。

可用於構建知識圖譜的圖數據庫服務包括 ArangoDB、Amazon Neptune、Google Dgraph、Azure Cosmos DB 以及 Neo4j 等。此外,更廣泛的數據集和服務也能用於訪問更全面的知識圖譜,包括開源的企業知識圖譜 API、PyKEEN 數據集以及 Wikidata 等等。

  1. 智能體蜂巢模式

智能體蜂巢架構模式運用了大量 AI Agent,這些代理共同協作以解決一個問題,每個代理都從各自獨特的視角出發進行貢獻。

由此產生的綜合結果展示了一種集體智慧的體現,其效果超越了任何一個單獨的 AI 個體所能達到的成果。在需要大量創新解決方案的場景中,或者在處理複雜的數據集時,這種模式尤其有效。

例如,我們可以利用多個 AI Agent 來共同審查一篇研究論文,整合他們的所有數據和觀點。對於處理能力要求較高的蜂巢系統,我們可以考慮部署消息隊列服務,比如 Apache Kafka,以便更好地處理代理和服務間的消息傳遞。

  1. 智能體組合模式

該架構模式強調了靈活性,通過模塊化的人工智能系統,能自我重新配置以優化任務性能。這就像一個多功能工具,可以根據需求選擇和激活不同的功能模塊,對於需要爲各種客戶需求或產品需求定製解決方案的企業來說,這是非常有效的。

我們可以通過使用各種自主代理框架和體系結構來開發每個 Agent 及其工具,例如 CrewAI、Langchain、LLamaIndex、Microsoft Autogen 和 superAGI 等。

通過組合不同的模塊,例如一個 Agent 可以專注於預測,另一個處理預約查詢,還有一個專注於生成消息,最後一個 Agent 來更新數據庫。將來,隨着專業 AI 公司提供的特定服務的增多,我們可以將一個模塊替換爲外部或第三方服務,以處理特定的任務或領域的問題。

  1. 記憶認知模式

這種架構爲人工智能引入了類似於人類記憶的元素,允許模型回憶並基於過去的交互進行學習,從而產生更細膩的反應。

這對於正在進行的對話或學習場景非常有用,因爲隨着時間的推移,人工智能會形成更深的理解,就像一個專業的個人助理或者在線機器學習平臺。隨着時間推移,記憶認知模式能夠將關鍵事件總結並儲存到一個向量數據庫中,進一步豐富 RAG 系統。

爲了保持彙總計算量的合理性,我們可以通過使用更小的自然語言處理庫來進行彙總和摘要。所使用的是向量數據庫,並在提示階段進行檢索,以檢查短期記憶,並通過最近鄰搜索來定位關鍵的 “事實”。有一個遵循這種模式的開源解決方案是 MemGPT。

  1. 雙重安全模式

圍繞大型語言模型(LLM)的核心安全性至少包含兩個關鍵組件:一是用戶組件,我們將其稱爲用戶 Proxy 代理;二是防火牆,它爲模型提供了保護層。

用戶 proxy 代理在查詢發出和返回的過程中對用戶的 query 進行攔截。該代理負責清除個人身份信息(pII)和知識產權(IP)信息,記錄查詢的內容,並優化成本。

防火牆則保護模型及其所使用的基礎設施。儘管我們對人們如何操縱模型以揭示其潛在的訓練數據、潛在功能以及當今惡意行爲知之甚少,但我們知道這些強大的模型是脆弱的。

在安全性相關的技術棧中,可能還存在其他安全層,但對於用戶的查詢路徑來說,Proxy 代理和防火牆是最關鍵的。

沒有結束

老碼農認爲,這些大模型應用的架構模式不僅僅是一種範式,很可能成爲未來智能系統賴以成長的框架。隨着我們們繼續探索和創新,還會湧現出很多新的架構模式,而且這裏的 10 個架構模式以及新湧現的架構模式可能成爲人工智能服務的表現形態。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/3iDXOCrPJnf8-qT1OHncBQ