审校 | 重楼
微服务架构便于创建边界明确定义的灵活独立服务。这种可扩展的方法使开发人员能够在不影响整个应用程序的情况下单独维护和完善服务。然而,若要充分发挥微服务架构的潜力、特别是针对基于人工智能的聊天应用程序,需要与最新的大语言模型(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