使用LLama和ChatGPT為多聊天后端構建微服務
譯文譯者 | 布加迪
審校 | 重樓
微服務架構便于創建邊界明確定義的靈活獨立服務。這種可擴展的方法使開發人員能夠在不影響整個應用程序的情況下單獨維護和完善服務。然而,若要充分發揮微服務架構的潛力、特別是針對基于人工智能的聊天應用程序,需要與最新的大語言模型(LLM,比如Meta LLama V2和OpenAI的ChatGPT)以及基于各種應用程序用例發布的其他經過微調的LLM進行強大的集成,從而為多樣化的解決方案提供多模型方法。
LLM是大規模模型,可以基于不同數據訓練生成類似人類的文本。通過從互聯網上數十億的單詞中學習,LLM了解上下文并生成不同領域的調整后內容。然而,由于需要獨特的接口、訪問端點和每個模型的特定載荷,將各種LLM集成到單個應用程序中常常帶來挑戰。因此,擁有可以處理各種模型的單一集成服務就能改進架構設計,并加大獨立服務的規模。
本教程將介紹使用Node.js和Express在微服務架構中針對LLama V2和ChatGPT的IntelliNode集成。
聊天機器人集成選項
以下是IntelliNode提供的幾個聊天集成選項:
1. LLama V2:您可以通過Replicate的API集成LLama V2模型,以實現簡單的流程,也可以通過AWS SageMaker主機集成LLama V2模型,以實現額外的控制。
LLama V2是一種功能強大的開源LLM,它已經過預訓練,并使用多達700億個參數進行了微調。它擅長處理眾多領域的復雜推理任務,包括編程和創意寫作等專業領域。它的訓練方法包括自我監督數據,并通過從人類反饋中強化學習(RLHF)與人類偏好保持對齊。LLama V2超越了現有的開源模型,在易用性和安全性方面可與ChatGPT和BARD等閉源模型相媲美。
2. ChatGPT:通過簡單地提供OpenAI API密鑰,IntelliNode模塊允許在簡單的聊天界面中與模型集成。您可以通過GPT 3.5或GPT 4模型訪問ChatGPT。這些模型已使用了大量數據進行訓練,并經過微調,以提供與上下文高度相關的、準確的響應。
逐步集成
不妨從初始化一個新的Node.js項目開始。打開終端,瀏覽到項目所在目錄,然后運行以下命令:
npm init -y
這個命令將為您的應用程序創建一個新的“package.json”文件。
接下來,安裝Express.js,它將用于處理HTTP請求和響應以及用于LLM模型連接的intellinode:
npm install express
npm install intellinode
安裝完成后,在項目的根目錄下創建一個名為“app.js”的新文件,然后,在“app.js”中添加express初始化代碼。
使用Replicate的API集成LLama V2
通過API密鑰,Replicate提供了與LLama V2快速集成的路徑,IntelliNode提供了聊天機器人接口,將您的業務邏輯與Replicate后端實現分離,允許您在不同的聊天模型之間切換。
不妨從與托管在Replica后端的LLama集成開始:
從replicate.com獲取試用密鑰以激活集成。
使用AWS SageMaker集成LLama V2
現在介紹通過AWS SageMaker集成LLama V2,提供隱私和額外的控制層。
集成需要從您的AWS帳戶生成API端點,首先我們將在微服務應用程序中設置集成代碼:
下列步驟是在您的帳戶中創建一個LLama端點,一旦您設置了API網關,復制用于運行“/LLama /aws”服務的URL。
在您的AWS帳戶中設置LLama V2端點:
1.SageMaker服務:從您的AWS帳戶中選擇SageMaker服務,然后點擊域。
2.創建SageMaker域:先在您的AWS SageMaker上創建一個新域。這一步為您的SageMaker操作建立了受控空間。
3.部署LLama模型:利用SageMaker JumpStart來部署計劃集成的LLama模型。建議從2B模型開始,因為運行70B模型的每月成本較高。
4.復制端點名稱:一旦您已部署了模型,確保注意端點名稱,這對后面的步驟至關重要。
5.創建Lambda函數:AWS Lambda允許運行后端代碼而無需管理服務器。創建一個Node.js lambda函數,用于集成部署的模型。
6.設置環境變量:在Lambda中創建一個名為LLama_endpoint的環境變量,附有SageMaker端點的值。
7.Intellinode Lambda導入:您需要導入準備好的Lambda zip文件,該文件建立到SageMaker LLama部署的連接。這個導出是一個zip文件,可以在lambda_LLama_sagemaker目錄中找到。
8.API網關配置:點擊Lambda函數頁面上的“添加觸發器”選項,從可用觸發器列表中選擇“API網關”。
9.Lambda函數設置:更新Lambda角色以授予訪問SageMaker端點所需的權限。此外,應該延長函數的超時時間以適應處理時間。可以在Lambda函數的“Configuration”選項卡中進行這些調整。
點擊角色名稱以更新權限,并提供訪問SageMaker的權限:
ChatGPT集成
最后,我們將闡述集成Openai ChatGPT、作為微服務架構中另一個選項的步驟:
從platform.openai.com獲取試用密鑰。
進行實驗
先在終端中導出API密鑰,如下所示:
然后運行node應用程序:
node app.js
在瀏覽器中輸入以下url以測試chatGPT服務:
http://localhost:3000/chatgpt?message=hello
我們構建了一個微服務,基于LLama V2和OpenAI的ChatGPT等LLM具有的功能。這種集成為充分利用基于高級AI的無數業務場景打開了大門。
通過將機器學習需求轉換成解耦的微服務,您的應用程序可以獲得靈活性和可擴展性的好處。不用配置您的操作,以適應整體式模型的約束,語言模型功能現在可加以單獨管理和開發,這有望提高效率,更容易進行故障排查和升級管理。
原文標題:Building Microservice for Multi-Chat Backends Using LLama and ChatGPT,作者:Ahmad Albarqawi