在塑造新領域的過程中,我們往往依賴于一些經(jīng)過實踐驗證的策略、方法和模式。這種觀念對于軟件工程領域的專業(yè)人士來說,已經(jīng)司空見慣,設計模式已成為程序員們的重要技能。然而,當我們轉(zhuǎn)向大模型應用和人工智能領域,情況可能會有所不同。面對新興技術,例如生成式 AI,我們尚缺乏成熟的設計模式來支撐這些解決方案。
作為一位老碼農(nóng),我在這里整理總結(jié)了一些針對大模型應用的設計方法和架構(gòu)模式,試圖應對和解決大模型應用實現(xiàn)中的一些挑戰(zhàn),如成本問題、延遲問題以及生成的不準確性等。
當用戶輸入一個查詢時,該查詢會被發(fā)送到控制中心,而控制中心則扮演著對輸入進行分類的角色。
如果查詢是可以識別的,那么它會被路由到小語言模型進行處理,這通常是一個更準確、響應更快且成本更低的操作。然而,如果查詢無法被識別,那么它將由大型語言模型來處理。盡管大型語言模型的運行成本較高,但它能夠成功返回更多種類型查詢的答案。通過這種方式,人工智能產(chǎn)品可以在成本、性能和用戶體驗之間實現(xiàn)平衡。
想象一個生態(tài)系統(tǒng),其中多個專門針對特定任務的生成式 AI 模型各自作為其領域內(nèi)的專家,并行工作以處理查詢。這種多路復用模式能夠生成一系列不同的響應,然后將這些響應整合在一起,形成一個全面的答案。
這樣的設置非常適合復雜的問題解決場景,在這種場景中,問題的不同方面需要不同的專業(yè)知識,就像一個由專家組成的小組,每個專家負責處理更大問題的一個方面。
更大的模型(如 GPT-4)負責理解上下文,并將其分解為特定的任務或信息請求,這些任務或信息請求被傳遞給更小的代理。這些代理可能是較小的語言模型,它們已經(jīng)接受過特定任務的訓練,或者是具有特定功能的通用模型,如 GPT、Llama、上下文提示和函數(shù)調(diào)用。
在這種架構(gòu)模式中,我們對大型語言模型進行了微調(diào),使其能夠同時處理多個任務,而非僅僅針對單個任務。這是一種跨領域知識和技能遷移學習的方法,大大增強了模型的多功能性。
這種多任務學習方法對于那些需要應對各種復雜任務的平臺來說尤其有用,例如虛擬助理或是人工智能驅(qū)動的研究工具。這極大地簡化了面向復雜領域的訓練和測試工作流程。
在訓練大型語言模型(LLM)時,我們可以利用一些資源和軟件包,如 DeepSpeed,以及 Hugging Face 的 Transformer 庫。
我們將緩存策略和相關服務引入到大模型應用架構(gòu)中,可以成功地解決成本、數(shù)據(jù)冗余以及訓練數(shù)據(jù)等組合問題。
通過儲存這些初始結(jié)果,系統(tǒng)能夠在后續(xù)查詢中迅速提供答案,從而顯著提高了效率。當我們累積了足夠的數(shù)據(jù)后,微調(diào)層級將啟動,利用早期交互的反饋,進一步完善一個更為專業(yè)化的模型。
專有大模型不僅簡化了操作流程,也使人工智能專業(yè)知識更好地適應特定任務,使其在需要高度精確性和適應性的環(huán)境中,如客戶服務或個性化內(nèi)容創(chuàng)建,表現(xiàn)得更為高效。
對于剛?cè)腴T的用戶,可以選擇使用預先構(gòu)建的服務,如 GPTCache,或者使用常見的緩存數(shù)據(jù)庫,如 Redis、Cassandra、Memcached 來運行自己的服務。在向混合服務中添加其他服務時,一定要記得監(jiān)控并測量延遲情況。
許多現(xiàn)行的商業(yè)系統(tǒng)和企業(yè)應用在一定程度上仍然依賴于基于規(guī)則的架構(gòu)。通過將大模型與基于規(guī)則的邏輯結(jié)合,我們能夠融合結(jié)構(gòu)化的精確性,旨在創(chuàng)造出既富有創(chuàng)意又遵循規(guī)范的解決方案。
對于那些必須嚴格遵守標準或法規(guī)的行業(yè)或產(chǎn)品而言,這是一個非常有效的架構(gòu)模式,它確保了人工智能在保持創(chuàng)新的同時,仍能遵守既定的理想?yún)?shù)。例如,這種架構(gòu)可以應用于生成電話 IVR 系統(tǒng)或基于規(guī)則的傳統(tǒng)(非 LLM)聊天機器人的意圖和消息流。
將知識圖譜與生成型人工智能模型結(jié)合,賦予了它們面向事實的超級能力,使得輸出不僅具有上下文情境,而且更加符合事實。
對于要求內(nèi)容真實性和準確性不容忽視的應用來說,這種方法至關重要,比如在教育內(nèi)容創(chuàng)作、醫(yī)療咨詢或任何誤導可能帶來嚴重后果的領域。
知識圖譜及其本體能夠?qū)碗s主題或問題分解成結(jié)構(gòu)化格式,為大型語言模型提供深層上下文基礎。我們甚至可以借助語言模型,以 JSON 或 RDF 等格式創(chuàng)建本體。
可用于構(gòu)建知識圖譜的圖數(shù)據(jù)庫服務包括 ArangoDB、Amazon Neptune、Google Dgraph、Azure Cosmos DB 以及 Neo4j 等。此外,更廣泛的數(shù)據(jù)集和服務也能用于訪問更全面的知識圖譜,包括開源的企業(yè)知識圖譜 API、PyKEEN 數(shù)據(jù)集以及 Wikidata 等等。
智能體蜂巢架構(gòu)模式運用了大量 AI Agent,這些代理共同協(xié)作以解決一個問題,每個代理都從各自獨特的視角出發(fā)進行貢獻。
由此產(chǎn)生的綜合結(jié)果展示了一種集體智慧的體現(xiàn),其效果超越了任何一個單獨的 AI 個體所能達到的成果。在需要大量創(chuàng)新解決方案的場景中,或者在處理復雜的數(shù)據(jù)集時,這種模式尤其有效。
例如,我們可以利用多個 AI Agent 來共同審查一篇研究論文,整合他們的所有數(shù)據(jù)和觀點。對于處理能力要求較高的蜂巢系統(tǒng),我們可以考慮部署消息隊列服務,比如 Apache Kafka,以便更好地處理代理和服務間的消息傳遞。
該架構(gòu)模式強調(diào)了靈活性,通過模塊化的人工智能系統(tǒng),能自我重新配置以優(yōu)化任務性能。這就像一個多功能工具,可以根據(jù)需求選擇和激活不同的功能模塊,對于需要為各種客戶需求或產(chǎn)品需求定制解決方案的企業(yè)來說,這是非常有效的。
我們可以通過使用各種自主代理框架和體系結(jié)構(gòu)來開發(fā)每個 Agent 及其工具,例如 CrewAI、Langchain、LLamaIndex、Microsoft Autogen 和 superAGI 等。
通過組合不同的模塊,例如一個 Agent 可以專注于預測,另一個處理預約查詢,還有一個專注于生成消息,最后一個 Agent 來更新數(shù)據(jù)庫。將來,隨著專業(yè) AI 公司提供的特定服務的增多,我們可以將一個模塊替換為外部或第三方服務,以處理特定的任務或領域的問題。
這種架構(gòu)為人工智能引入了類似于人類記憶的元素,允許模型回憶并基于過去的交互進行學習,從而產(chǎn)生更細膩的反應。
這對于正在進行的對話或?qū)W習場景非常有用,因為隨著時間的推移,人工智能會形成更深的理解,就像一個專業(yè)的個人助理或者在線機器學習平臺。隨著時間推移,記憶認知模式能夠?qū)㈥P鍵事件總結(jié)并儲存到一個向量數(shù)據(jù)庫中,進一步豐富 RAG 系統(tǒng)。
為了保持匯總計算量的合理性,我們可以通過使用更小的自然語言處理庫來進行匯總和摘要。所使用的是向量數(shù)據(jù)庫,并在提示階段進行檢索,以檢查短期記憶,并通過最近鄰搜索來定位關鍵的“事實”。有一個遵循這種模式的開源解決方案是 MemGPT。
圍繞大型語言模型(LLM)的核心安全性至少包含兩個關鍵組件:一是用戶組件,我們將其稱為用戶 Proxy 代理;二是防火墻,它為模型提供了保護層。
用戶 proxy 代理在查詢發(fā)出和返回的過程中對用戶的 query 進行攔截。該代理負責清除個人身份信息(pII)和知識產(chǎn)權(quán)(IP)信息,記錄查詢的內(nèi)容,并優(yōu)化成本。
防火墻則保護模型及其所使用的基礎設施。盡管我們對人們?nèi)绾尾倏v模型以揭示其潛在的訓練數(shù)據(jù)、潛在功能以及當今惡意行為知之甚少,但我們知道這些強大的模型是脆弱的。
在安全性相關的技術棧中,可能還存在其他安全層,但對于用戶的查詢路徑來說,Proxy 代理和防火墻是最關鍵的。
老碼農(nóng)認為,這些大模型應用的架構(gòu)模式不僅僅是一種范式,很可能成為未來智能系統(tǒng)賴以成長的框架。隨著我們們繼續(xù)探索和創(chuàng)新,還會涌現(xiàn)出很多新的架構(gòu)模式,而且這里的 10 個架構(gòu)模式以及新涌現(xiàn)的架構(gòu)模式可能成為人工智能服務的表現(xiàn)形態(tài)。
20 年前,當我第一次閱讀《設計模式》一書的時候(參見《三本書影響一個人》一文),愛不釋手,如今,老碼農(nóng)開始持續(xù)探討并實踐 AI 應用,本文中的這些架構(gòu)模式是老碼農(nóng)自己命名的,不妥之處請大家斧正。我希望能夠持續(xù)更新本系列,也希望對此有興趣的朋友聯(lián)系我, 共同研究探索,致力于大模型應用的架構(gòu)模式。
曹洪偉,百度 DuerOS 原首席布道師,渡鴉科技原 CTO,目前任聯(lián)想諾諦智能首席架構(gòu)師,從事基于大模型的應用系統(tǒng)研發(fā)。20 多年軟硬件產(chǎn)研經(jīng)驗,擁有 50 多項國內(nèi)外專利,著有《BREW 進階與精通》,《一書讀懂物聯(lián)網(wǎng)》和《深入分布式緩存》的聯(lián)合作者,《持續(xù)架構(gòu)》《精益 DevOps》《語音優(yōu)先》《計算機網(wǎng)絡問題與解決方案》《區(qū)塊鏈應用開發(fā)實戰(zhàn)》《基于混合方法的自然語言處理》等書的共同譯者,日常維護著公眾號 wireless_com 和 CSDN 同名博客。
開源 Redis 的生命將就此終結(jié)?Redis 之父回應分叉浪潮:未來誰能領先,各憑本事!
Transformer 框架論文作者:AI行業(yè)被困在了六七年前的原型上
Stable Diffusion核心團隊全部離職!Kimi大面積宕機,月之暗面已擴容5次;Redis不再“開源”引爭議 | Q資訊