生成式AI應用參考架構

2024年2月6日 25点热度 0人点赞

人機交互正在迅速經歷軟件開發在過去二十年中從未見過的巨大范式轉變。 從傳統的基於規則的系統到復雜的生成人工智能 (GAI) 模型,破譯用戶意圖並提供準確、上下文豐富的響應的方法已變得至關重要。 在本系列文章中,我將深入探討利用 GAI 重新構想應用程序與用戶交互方式的架構。

生成式人工智能 (GAI) 具有獨特的能力,可以制作未明確預編程的內容或響應。 這有利於基於聊天的直觀且動態的交互。 它擺脫了傳統聊天機器人或應用程序界面的僵化,提供了更加有機和人性化的對話體驗。

在接下來的文章中,我將剖析使這成為可能的架構,從理解用戶的意圖到在執行用戶預期的操作後提供適當的人工智能精心設計的響應。

讓我們從基礎知識開始,在第一篇文章中,我將討論 GAI 驅動的應用程序如何具有改變人機交互的潛力。 我將以兩個應用程序為例進行描述——求職板和食品配送應用程序,以及它們如何從基於 GAI 的人機交互中受益。

在接下來的文章中,我們將深入探討由開源和 openAI 的大型語言模型提供支持的基於 GAI 的應用程序的架構。

開始吧。

NSDT工具推薦: Three.js AI紋理開發包 - YOLO合成數據生成器 - GLTF/GLB在線編輯 - 3D模型格式在線轉換 - 可編程3D場景編輯器 - REVIT導出3D模型插件 - 3D模型語義搜索引擎 - Three.js虛擬軸心開發包

1、生成式AI簡介

生成式人工智能是人工智能的一個子集,專註於創造新內容。 無論是藝術品、音樂還是類人文本,GAI 模型都旨在生成訓練數據中未明確存在的輸出。 GAI 的潛力是巨大的。 它可以被視為一塊畫佈,其邊界與我們的想象力一樣廣闊。

為什麼生成式AI會改變遊戲規則?

與根據輸入做出決策或預測(例如將電子郵件是否分類為垃圾郵件)的傳統模型不同,生成模型會生成新內容。 這種區別具有深遠的意義。 從即時制作逼真的視頻遊戲環境到協助藝術傢和音樂傢,更具體地說,改變用戶與應用程序的交互,這些應用程序是多種多樣的。

GAI 的美妙之處在於它在受控參數范圍內的不可預測性。 它不僅選擇一個響應,而且還選擇一個響應。 它創造了一種類似於人類在對話中實時構建句子的方式。

2、基於生成式AI的人機交互

人機交互正在經歷重大轉變。 隨著我們從傳統的基於規則的系統過渡到未來的生成式人工智能(GAI)框架,重點越來越依賴於它們闡明用戶意圖的能力。 這些下一代 GAI 系統不僅渴望深入解釋用戶提示,而且渴望在系統內熟練地執行與意圖一致的操作。 這一即將到來的轉變有望重新定義用戶體驗,以前所未有的方式彌合人機交互之間的差距。

GAI 驅動的應用程序將通過以下方式改變用戶交互:

  • 制定動態響應:GAI 應用程序超越了基於規則的系統及其預設答案的限制,可以根據用戶的上下文實時策劃定制的響應。
  • 支持持續學習:隨著每次用戶的參與,這些模型不斷適應、完善其知識庫並提高響應準確性。
  • 提供上下文深度:GAI 處理多方面的用戶上下文,為更深入、更有洞察力的對話鋪平道路。
  • 執行用戶意圖的操作:不僅限於對話,GAI還可以從對話中識別用戶的意圖,並有效地執行相應的操作,彌合交互和執行之間的差距。

3、交互范式的變化:傳統 vs. 現代

在傳統系統中,應用程序嚴重依賴固定的菜單、表單和嚴格的用戶交互路徑。 查詢將匹配一組預定義的規則以生成響應。 與此形成鮮明對比的是,我們現代的 GAI 驅動方法模仿了流暢的對話和豐富的用戶體驗,就像與消息靈通的人類助手進行交互一樣。 該模型不僅對用戶的輸入做出反應,而且還對用戶的輸入做出反應。 它根據先前交互、當前上下文和大量訓練數據的混合來理解、預測和制定獨特的響應,並執行用戶的預期操作。

讓我們來看第一個現實世界的例子。

3.1 求職板網站

想象一下一個招聘網站,一個通常由列表、過濾器和表單主導的域。 在傳統設置中,尋求就業的用戶將使用固定標準搜索工作、瀏覽列表並填寫申請表——這是一個靜態且通常乏味的過程。

進入我們的 GAI 驅動架構。

新用戶 Jane 訪問了我們的求職板。 該應用程序並沒有向她展示鋪天蓋地的表格或列表,而是友好地向她打招呼:“你好! 今天我能為您提供什麼幫助嗎?” 簡回答道:“嗨,我正在都柏林尋找一份軟件工程工作。” 系統立即識別出她的意圖,查看可用列表並回復:“我在都柏林的谷歌找到了上周發佈的軟件工程師職位。 您需要更多詳細信息或申請方面的幫助嗎?”

隨著談話的進展,Jane 表達了她想更多地了解公司文化的願望。 GAI 模型不僅僅提供通用的公司描述,還根據最近的評論、公司新聞等制定全面的答案。 隨著 Jane 更新她的個人資料、詢問其他職位以及導航申請流程,這種微妙的互動仍在繼續——所有這些都是通過直觀的、類人的對話進行的。

讓我們繼續下一個例子

3.2 食品配送平臺

一位新客戶 Alex 登錄了我們的食品配送平臺。 該應用程序並沒有用一系列餐廳徽標和菜單項轟炸他,而是愉快地發起:“你好亞歷克斯! 快到午飯時間了。 今天想吃點快餐嗎?” 亞歷克斯對個性化的風格感到有點驚訝,回答道:“是的,我在想麥當勞。 他們有什麼特別優惠嗎?” 系統毫不猶豫地解釋了他的請求,掃描了麥當勞當前的促銷活動,然後回復道:“麥當勞今天以 20% 的折扣提供巨無霸套餐。 喜歡這個還是需要其他建議?”

亞歷克斯很感興趣,問道:“聽起來很誘人! 但我一小時後有個會議。 需要多長時間才能到達我身邊?” 由 GAI 驅動的服務員並沒有給出一般性的答復,而是保證道:“考慮到您的位置和當前的交通情況,您將在大約 30 分鐘內得到答復。 這應該會給您在會議之前留出充足的時間。 要不要我幫你下單?”

正如亞歷克斯所證實的那樣,系統詢問:“您想要任何附加組件嗎? 也許來一杯奶昔或一些蘋果派來讓這頓飯更加圓滿?” 對話無縫展開,將科技的效率與用餐者互動的人性化融為一體,使 Alex 的點餐體驗不僅實用,而且令人愉悅。

3.3 用戶界面

我們由 GAI 支持的應用程序的創新架構通過將用戶界面與實時聊天對話保持一致來重新設計用戶界面。 隨著對話的發展,左側查看窗格會動態反映相關信息。 例如,當用戶考慮巨無霸交易時,詳細信息和潛在的附加組件會出現在該空間中。 同樣,當用戶對我們的求職板上的某個職位表示興趣時,該窗格會立即顯示有關該職位的相關詳細信息。

4、生成式AI應用參考架構

基於 GAI 的應用程序架構利用現代單頁應用程序 (SPA) 范例,植根於微服務基礎設施。 這種設計選擇促進了模塊化可擴展性、故障隔離並優化了資源利用率,這對於高性能雲原生應用程序至關重要。 用戶界面由兩個窗格組成:聊天窗格和用戶視圖窗格。 這種雙面板配置確保同步和高效的通信,促進與正在進行的對話並行的實時信息顯示。

聊天組件集成了開源LLM(LLAMA-2)、LLAMA-Index和ChatGPT。

在聊天組件中,有三個不可或缺的子組件:

  • 意圖分類:意圖分類基於 RASA NLU 和基於應用領域的自定義預訓練意圖分類器。
  • 提示選擇服務:根據分類意圖確定最相關的系統提示。 提示選擇服務使用 llama 索引從提示索引中查詢最適用的提示。 這些提示是在應用程序域的上下文中設計的。
  • 提示執行服務:根據所選提示動態生成上下文適當的響應或操作。

為了提供基於 GAI 的應用程序架構基礎的整體視圖,我將在後續部分中詳細介紹參考藍圖。 該藍圖闡明了各種功能組件和服務模塊之間的結構和交互模式。 此外,它還提供了對數據流、組件依賴性以及支撐應用程序穩健性和效率的技術復雜性的見解。

基於GAI的應用架構概述

4.1 參考架構

現在讓我們深入了解參考架構。 首先,為了了解該架構的組件,我們來談談“基於生成式AI的應用程序堆棧”。

我們的參考應用程序架構基於 Matt 和 Rajko 的文章中詳細介紹的概念。 我參考了 Matt Bornstein 和 Rajko Radonovic 撰寫的文章“LLM 應用程序的新興架構”。

應用程序堆棧由三個主要部分組成:

  • 單頁應用程序使用現代 UI 框架用於移動和 Web 界面。
  • 基於無服務器微服務的API
  • 使用 Python Web 服務器框架和生成式 AI 工具的聊天引擎

在本系列中,我們不會討論前兩部分,因為它們超出了范圍,但在招聘板用例的參考架構的實現中,我們將介紹 nextjs 和基於 AWS lambda 的實現。

4.2 聊天引擎架構

我們基於生成人工智能的應用程序的核心是聊天引擎框架。 該框架將生成式人工智能的強大功能與現代網絡平臺的可用性無縫集成。 聊天引擎由四個主要組件組成:聊天API服務器、意圖分類器以及提示選擇服務和提示執行服務。

讓我們更深入地研究構成該引擎的底層組件。

  • 聊天 API 服務器:作為聊天引擎的網關,聊天 API 服務器至關重要。 它是中介,公開 API 端點,UI 和其他面向客戶端的模塊利用它與生成 AI 機制進行通信。 該服務器不僅確保請求正確路由,還管理負載,確保用戶交互的可擴展性和高可用性。 在參考實現中,Python Flask Web Server 框架用於實現 Chat API Server。 該服務器使用 AWS Beanstalk 和 Terraform 部署在 AWS 上。
  • 意圖分類器:理解用戶輸入的基礎部分是意圖分類器。 正如本文所述,分類器利用 RASA NLU 的強大功能,精確識別用戶的意圖。 它分析用戶查詢,破譯其潛在目標,並為後續服務做出適當響應鋪平道路。 使用應用程序敏感的上下文數據來訓練意圖分類器模型。 在我們的求職板實施中,我們根據固定數量的用戶意圖來訓練我們的模型,例如“註冊為用戶”、“改進我的個人資料”、“搜索工作”、“職業指導”和“申請工作”。 這些意圖是根據用戶配置文件、用戶交互歷史記錄和應用程序上下文確定的。
  • 提示選擇服務:意圖分類後,確定符合用戶意圖的正確系統提示至關重要。 這就是快速選擇服務發揮作用的地方。 利用 llamaindex 框架,該服務可以有效地查詢最合適的提示。 用戶意圖和正確提示的結合至關重要,因為它為人工智能生成的有意義的響應奠定了基礎。 我們使用大量專門設計的提示來實現相關的應用程序用例。 這些提示是根據現代提示工程技術設計的。
  • 即時執行服務:聊天過程的高潮在於即時執行服務。 正如本指南所述,該服務利用先進的 GPT 引擎(LLama-2 和 ChatGPT API)並結合最先進的提示工程技術,制作上下文豐富的響應。 正是在這裡,生成式人工智能的力量真正發揮了作用,產生的響應不僅準確,而且充滿了類似人類的細微差別。

總之,聊天引擎架構封裝了一個簡化的流程:從理解用戶意圖到生成精心設計的響應,確保用戶體驗既直觀又富有洞察力的對話。

在本系列的下一篇文章中,我們將討論意圖分類器的實現。


原文鏈接:生成式AI應用參考架構 - BimAnt