生成式AI設計模式:綜合指南

原文地址:Generative AI Design Patterns: A Comprehensive Guide

使用大型語言模型 (LLM) 的參考架構模式和心理模型

2024 年 2 月 14 日

對人工智能模式的需求

我們在構建新事物時,都會依賴一些經過驗證的方法、途徑和模式。對于軟件工程師來說,這個說法非常正確,但對于生成式人工智能和人工智能本身來說,情況可能并非如此。隨著生成式人工智能等新興技術的出現,我們缺乏充分驗證的模式來支撐我們的解決方案。

在這里,我分享了一些生成式人工智能的方法和模式,這些方法和模式是基于我對LLM在生產中的無數實現的評估。這些模式的目標是幫助減輕和克服生成式人工智能實現中的一些挑戰,如成本、延遲和幻覺。

設計模式列表

  1. Layered Caching Strategy Leading To Fine-Tuning 使用分層緩存策略驅動微調
  2. Multiplexing AI Agents For A Panel Of Experts 多路復用AI代理,用于專家模型組合
  3. Fine-Tuning LLM’s For Multiple Tasks 微調LLM的多任務優化
  4. Blending Rules Based & Generative 基于規則和生成的混合規則
  5. Utilizing Knowledge Graphs with LLM’s 利用LLM的知識圖譜
  6. Swarm Of Generative AI Agents 生成式人工智能代理的群體
  7. Modular Monolith LLM Approach With Composability 模塊化單體LLM方法與可組合性
  8. Approach To Memory Cognition For LLM’s LLM的記憶認知方法
  9. Red & Blue Team Dual-Model Evaluation 紅藍隊雙模型評估

1) 使用分層緩存策略驅動微調

img

在引入緩存策略和服務到我們的大型語言模型時,我們正在解決成本、冗余和訓練數據等多種因素的組合問題。

通過緩存這些初始結果,系統可以在后續查詢中更快地提供答案,提高效率。關鍵在于當我們有足夠的數據時,通過這些早期交互的反饋來優化更專業的模型。

專業模型不僅簡化了流程,還將人工智能的專業知識針對特定任務進行了定制,使其在精確性和適應性至關重要的環境中非常有效,例如客戶服務或個性化內容創作。

為了開始,有預先構建的服務,如GPTCache,或者使用常見的緩存數據庫(如Redis、Apache Cassandra、Memcached)自己構建。確保在添加額外的服務時監控和測量延遲。

2) 多路復用AI代理,用于專家小組

img

想象一個生態系統,其中有多個面向特定任務(”代理”)的生成式AI模型,每個生成式AI模型都是其領域的專家,他們同時工作以解決一個查詢。這種多路復用策略能夠產生多樣化的回答,然后將這些回答整合起來,就可以提供更加全面的答案。

這種設置非常適合復雜的問題解決場景,其中問題的不同方面需要不同的專業知識,就像一個團隊中的每個專家都在解決一個更大問題的一部分。

一個更大的模型,比如GPT-4,被用來理解上下文,并將其分解為特定的任務或信息請求,然后傳遞給較小的代理程序。代理程序可以是經過特定任務訓練的較小語言模型,比如Phi-2或TinyLlama,也可以是具有特定個性、上下文提示和功能調用的通用模型,比如GPT或具有特定個性的Llama。

3) 為多個任務進行LLM的微調

img

在這里,我們同時對多個任務而不是單個任務進行大型語言模型的微調。這種方法促進了知識和技能在不同領域之間的有力轉移,增強了模型的多功能性。

這種多任務學習對于需要處理各種高能力任務的平臺特別有用,例如虛擬助手或人工智能研究工具。這可能潛在地簡化復雜領域的培訓和測試工作流程。

一些用于培訓LLM的資源和包包括DeepSpeed,以及hugs Face ‘ s transformer庫上的訓練函數。

4) 基于混合規則和生成

img

許多現有的業務系統和組織應用程序在某種程度上仍然是基于規則的。通過融合生成和基于規則的邏輯的結構化精度,該模式旨在生成既具有創造性又符合規則的解決方案。

對于輸出必須遵守嚴格標準或法規的行業來說,這是一個強大的戰略,確保人工智能保持在所需參數的范圍內,同時仍然能夠創新和參與。這方面的一個很好的例子是為電話IVR系統或傳統的(非基于llm的)聊天機器人生成意圖和消息流。

5) 結合知識圖譜使用LLM

img

將知識圖與生成式人工智能模型集成在一起,賦予它們以事實為導向的超強能力,允許輸出不僅具有上下文意識,而且更符合事實。

這種方法對于真實性和準確性不容置疑的應用程序至關重要,例如在教育內容創建、醫療建議或任何錯誤信息可能產生嚴重后果的領域。

知識圖和圖本體(圖的概念集)允許將復雜的主題或組織問題分解為結構化格式,以幫助建立具有深度上下文的大型語言模型。您還可以使用語言模型以JSON或RDF等格式生成本體。

您可以用于知識圖譜的服務包括圖形數據庫服務,如ArangoDB,?Amazon Neptune,?Azure Cosmos DB和Neo4j。也有更廣泛的數據集和服務來訪問更廣泛的知識圖譜,包括Google企業知識圖譜API,?PyKEEN數據集和維基數據。

6) AI代理群

img

從自然的群體和群居動物中汲取靈感,這個模型采用了大量的人工智能代理,它們共同解決一個問題,每個代理都提供了一個獨特的視角。

由此產生的聚合輸出反映了一種集體智慧,超越了任何個體代理所能達到的水平。這種模式在需要廣泛的創造性解決方案或在處理復雜數據集時特別有優勢。

這方面的一個例子可能是從多“專家”的角度審查一篇研究論文,或者同時評估從欺詐到報價的許多用例的客戶交互。我們把這些集體的“代理”和他們所有的輸入組合在一起。對于大容量集群,你可以考慮部署消息服務,比如Apache Kafka來處理代理和服務之間的消息。

7) 具有可組合性的模塊化單體LLM方法(Moe)

img

這個設計強調適應性,采用了一個模塊化的人工智能系統,可以根據任務的需要動態重新配置自己以實現最佳性能。就像擁有一把瑞士軍刀一樣,每個模塊可以根據需要選擇和激活,非常適合需要根據不同的客戶互動或產品需求定制解決方案的企業。

您可以部署使用各種自治代理框架和體系結構來開發每個代理及其工具。示例框架包括CrewAI,?Langchain,?Microsoft Autogen和SuperAGI。

對于銷售模塊化單體,這可能是專注于潛在客戶開發的代理,一個處理預訂的代理,一個專注于生成消息的代理,以及另一個更新數據庫的代理。將來,隨著專門的人工智能公司提供特定的組合服務,您可以為一組特定任務或領域特定問題替換模塊以使用外部或第三方服務。

8) LLM的記憶認知方法

img

這種方法為人工智能引入了一種類似人類記憶的元素,使模型能夠回憶先前的互動,在這些互動內容的基礎上,提供更加細致入微的回應。

它對于持續的對話或學習場景特別有用,因為人工智能會隨著時間的推移逐漸形成更深入的理解,就像一個專屬的個人助理或適應性學習平臺。通過將關鍵事件和討論總結并存儲到向量數據庫中,可以開發出記憶認知方法。

為了降低總結的計算量,您可以通過較小的NLP庫,如spaCy或BART語言模型來利用求和。使用的數據庫是基于向量的,檢索在提示階段檢查短期記憶使用相似度搜索來定位關鍵的“事實”。對于那些對工作解決方案感興趣的人來說,有一個遵循類似模式的開源解決方案,稱為MemGPT。

為了保持摘要計算的效率,您可以利用較小的自然語言處理庫(如spaCy)或BART語言模型(處理大量數據時)來進行求和。所使用的數據庫是基于向量的,并且在提示階段進行檢索以檢查短期記憶時,使用相似性搜索來定位關鍵的“事實”。對于那些對工作解決方案感興趣的人,有一個名為MemGPT的開源解決方案遵循類似的模式。

9) 紅藍隊雙模型評估

img

在紅藍團隊評估模型中,一個人工智能生成內容,而另一個人工智能對其進行批判性評估,類似于嚴格的同行評審過程。這種雙模型設置非常適合質量控制,使其非常適用于可信度和準確性至關重要的內容生成平臺,例如新聞聚合或教育材料制作。

此方法可用于用微調模型替換復雜任務的部分人工反饋,以模擬人工審查過程,并改進結果以評估復雜的語言場景和輸出。

要點

這些生成式AI的設計模式不僅僅是模板,而是未來智能系統賴以發展的框架。

這絕不是最終的列表,隨著生成式人工智能的模式和用例的擴展,我們將看到這個空間的發展。這篇文章的靈感來自Tomasz Tunguz發表的AI設計模式(https://tomtunguz.com/ai-design-patterns/)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711585.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

物聯網與智慧城市的融合:構建智能化、便捷化、綠色化的城市未來

一、引言 隨著科技的飛速發展和城市化的不斷推進,物聯網技術正逐步滲透到城市的各個領域,成為推動智慧城市建設的核心力量。物聯網與智慧城市的融合,不僅為城市治理提供了高效、智能的解決方案,也為市民的生活帶來了前所未有的便…

如何在Node.js中使用定時器

在Node.js中使用定時器是一項常見且重要的任務,特別是在需要執行定時任務或者輪詢操作的情況下。Node.js提供了多種方式來實現定時器功能,包括setTimeout、setInterval和setImmediate等方法。本篇博客將介紹如何在Node.js中使用這些定時器,并…

(數據結構)二叉樹

8.二叉樹 8.1概述 二叉樹是一種基本的非線性數據結構,它是由n(n>0)個節點構成的有限集合。在二叉樹中,每個節點最多有兩個子節點,通常被稱作左孩子(left child)和右孩子(right c…

把python完全卸載干凈

1.winR,輸入control回車,點擊程序和功能,在搜索框輸入python,右鍵點擊卸載 2、找到Python安裝路徑,把所有文件全部刪除。 安裝路徑可以打開CMD輸入:where python 3、強制刪除Python.exe 打開cmd&#xff…

科技企業如何做到FTP數據安全保護

在數字化浪潮的推動下,科技企業的數據已成為推動創新、提升效率、增強競爭力的核心資源。數據的重要性不言而喻,它不僅包含了客戶信息、市場分析、產品設計等關鍵信息,更是企業寶貴的資產。然而,隨著數據量的激增,數據…

視覺AIGC識別——人臉偽造檢測、誤差特征 + 不可見水印

視覺AIGC識別——人臉偽造檢測、誤差特征 不可見水印 前言視覺AIGC識別【誤差特征】DIRE for Diffusion-Generated Image Detection方法擴散模型的角色DIRE作為檢測指標 實驗結果泛化能力和抗擾動 人臉偽造監測(Face Forgery Detection)人臉偽造圖生成 …

LabVIEW最佳傳輸系統設計

LabVIEW最佳傳輸系統設計 介紹了基于LabVIEW軟件開發的最佳基帶傳輸系統和最佳帶通傳輸系統的設計。通過軟件仿真實現了脈沖成形濾波器和匹配濾波器的設計,證明了系統在消除碼間干擾和抗噪聲方面的優異性能。此設計不僅激發了學生的學習興趣,還有助于提…

智能家居控制系統(51單片機)

smart_home_control_system 51單片機課設,智能家居控制系統 使用及轉載請標明出處(最好點個贊及star哈哈) Github地址,帶有PPT及流程圖 Gitee碼云地址,帶有PPT及流程圖 ? 以STC89C52為主控芯片,以矩陣鍵…

Java必須掌握的繼承的概述

Java的繼承是面向對象編程中的一個核心概念,它允許一個類繼承另一個類的屬性和方法。這不僅有助于代碼的重用,還使得代碼的管理和維護變得更加容易。在準備大廠面試時,理解繼承的各個方面是非常重要的。以下是一些關于Java繼承的概述和可能出…

Linux基本指令(上)

在Linux中,將文件夾稱為目錄,后面的內容都與目錄相關。 1. ls指令 語法: ls [選項][目錄或文件] 功能:對于目錄,該命令列出該目錄下的所有子目錄與文件。對于文件,將列出文件名以及其他信息。 常用選項 …

MySQL的索引和B+tree結構

目錄 0.關于索引的常見面試題 1.什么是索引? 索引的優缺點 2.索引的數據結構,為什么InnoDb引擎使用Btree作為索引的數據結構? 分析怎樣的索引才是好的 二插搜索樹 紅黑樹 B-Tree BTree 哈希 為什么 InnoDB 存儲引擎選擇使用 Btree 索…

iTOP-3588開發板快速測試手冊Android12系統功能測試

RK3588是一款低功耗、高性能的處理器,適用于基于arm的PC和Edge計算設備、個人移動互聯網設備等數字多媒體應用,RK3588支持8K視頻編解碼,內置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800萬像素ISP&…

mac 配置faas 全局二進制命令

FaaS(即功能即服務-Function as a Services)是一種云計算服務,允許客戶執行代碼來響應事件,而無需管理通常與構建和啟動微服務應用程序相關的復雜基礎架構 在互聯網上托管軟件應用程序通常需要配置和管理虛擬服務器或物理服務器&…

洛谷題單_遞推與遞歸

P1255 數樓梯 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) //不滿分做法&#xff1a;沒有高精度 #include <bits/stdc.h> using namespace std; const int N5006; int dp[N];//dp[i]表示到第i節樓梯有dp[i]中方案 int main(){int n;cin>>n;dp[1]1;dp[0]1;for(i…

MySQL(基礎篇)——多表查詢

一.多表關系 一對多(多對一) 多對多一對一 1.一對多(多對一) a.案例&#xff1a;部門與員工的關系 b.關系&#xff1a;一個部門對應多個員工&#xff0c;一個員工對應一個部門 c.實現&#xff1a;在多的一方建立外鍵&#xff0c;指向一的一方的主鍵 2.多對多 a.案…

Elasticsearch入門-環境安裝ES和Kibana以及ES-Head可視化插件和瀏覽器插件es-client

Elasticsearch入門-環境安裝ES和Kibana 安裝 ES Windows安裝ESHead安裝瀏覽器插件 es-clientKibana 安裝 安裝es,安裝header 安裝kibana&#xff0c;安裝多種分詞器ik… 安裝 ES Windows安裝 ① 下載壓縮包并解壓官網鏈接&#xff1a;https://www.elastic.co/cn/downloads/ela…

JDK制作p12文件

生成密鑰對 首先&#xff0c;我們需要生成一對密鑰&#xff0c;用來進行證書的生成和簽名。可以使用Java的keytool工具來生成密鑰對。 keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.jks上述命令中的各個參數含義如下&…

canvas坐標系統 webgl坐標系統 uv紋理坐標系統 原點

一、canvas原點在左上角&#xff0c;x軸正方向向右&#xff0c;y軸正方向向下&#xff0c;一個點對應一個像素 二、webgl原點在正中間&#xff0c;x軸正方向向右&#xff0c;y軸正方向向上&#xff0c;數據顯示范圍在[-1,1]之間&#xff0c;超過此范圍不顯示數據 三、uv原點在左…

Eigen-矩陣切片和索引

矩陣切片和索引 一、概述二、基本的切片三、編譯時間大小和增量四、相反的順序五、索引數組六、自定義索引列表 一、概述 本頁介紹了操作符 () 為索引子集行和列提供的多種可能性。這個API已經在特性3.4中引入。它支持塊API提出的所有特性&#xff0c;以及更多。特別是&#x…

Java面試錯誤或者難點記錄

數據庫方向 1. mysql數據庫中的DATE_FORMAT函數作用是什么&#xff1f;sql server有相同作用的函數嗎&#xff1f; DATE_FORMAT函數是格式化日期或時間類型的數據&#xff0c;有兩個參數&#xff0c;第一個參數是日期或者時間數據&#xff0c;第二個參數是格式化字符串&#…