Press "Enter" to skip to content

使用Llama和ChatGPT构建多聊天后端的微服务

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第1张  

微服务架构促进了具有明确定义边界的灵活、独立服务的创建。这种可扩展的方法使开发人员能够在不影响整个应用程序的情况下单独维护和演进服务。然而,要实现微服务架构的全部潜力,特别是对于基于人工智能的聊天应用程序,需要与最新的大型语言模型(LLM),如Meta Llama V2和OpenAI的ChatGPT以及其他根据每个应用程序用例发布的经过精调的模型进行强大的集成,以提供多模型的解决方案。

LLM是基于其在各种数据上进行训练而生成类似人类文本的大规模模型。通过从互联网上学习数十亿个单词,LLM理解上下文并在各个领域生成经过调整的内容。然而,将各种LLM集成到单个应用程序中通常会面临挑战,原因是每个模型都需要独特的接口、访问端点和特定的负载。因此,拥有一个可以处理各种模型的单一集成服务改进了架构设计,并增强了独立服务的规模。

本教程将介绍如何使用Node.js和Express在微服务架构中为ChatGPT和LLaMA V2进行IntelliNode集成。

 

聊天机器人集成选项

 

以下是IntelliNode提供的几个聊天集成选项:

  1. LLaMA V2: 您可以通过Replicate的API或通过您的AWS SageMaker主机将LLaMA V2模型集成到系统中,以实现简单的过程或额外的控制。

LLaMA V2是一个功能强大的开源大型语言模型(LLM),经过预训练和精调,具有多达70B个参数。它在各个领域的复杂推理任务中表现出色,包括编程和创意写作等专业领域。它的训练方法涉及自我监督数据和通过强化学习与人类反馈的偏好对齐。LLaMA V2超越了现有的开源模型,并且在可用性和安全性方面与ChatGPT和BARD等闭源模型相当。

  1. ChatGPT: 通过提供您的OpenAI API密钥,IntelliNode模块允许在简单的聊天界面中集成该模型。您可以通过GPT 3.5或GPT 4模型访问ChatGPT。这些模型经过大量数据的训练和精调,以提供高度情境化和准确的响应。

 

逐步集成

 

让我们从初始化一个新的Node.js项目开始。打开终端,转到项目的目录,并运行以下命令:

npm init -y

 

这个命令将为您的应用程序创建一个新的`package.json`文件。

接下来,安装Express.js,它将用于处理HTTP请求和响应,以及intellinode用于LLM模型连接:

npm install express

npm install intellinode

 

安装完成后,在项目的根目录中创建一个名为`app.js`的新文件。然后,在`app.js`中添加express初始化代码。

Code by Author

 

通过Replicate的API使用Llama V2集成

 

Replicate通过API密钥为Llama V2提供了快速的集成路径,IntelliNode提供了聊天机器人界面,将业务逻辑与Replicate后端解耦,使您可以在不同的聊天模型之间切换。

我们从与托管在Replica后端的Llama集成开始:

Code by Author

从replicate.com获取您的试用密钥以激活集成。

 

通过AWS SageMaker使用Llama V2集成

 

现在,让我们通过AWS SageMaker进行Llama V2集成,提供隐私和额外的控制层。

集成需要从您的AWS账户生成一个API端点,首先我们将在我们的微服务应用程序中设置集成代码:

作者代码

以下是在您的帐户中创建Llama端点的步骤,一旦设置API网关,复制URL以用于运行“/llama/aws”服务。

在AWS帐户中设置Llama V2端点的步骤:

1- SageMaker服务:从您的AWS帐户中选择SageMaker服务,然后单击域。

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第2张

2- 创建SageMaker域:首先在AWS SageMaker上创建一个新域。这一步骤为您的SageMaker操作建立了一个受控空间。

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第3张

3- 部署Llama模型:使用SageMaker JumpStart部署您计划集成的Llama模型。建议从2B模型开始,因为运行70B模型的每月成本更高。

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第4张

4- 复制端点名称:一旦您部署了一个模型,请确保记下端点名称,这对于后续步骤至关重要。

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第5张

5- 创建Lambda函数:AWS Lambda允许在不管理服务器的情况下运行后端代码。创建一个Node.js Lambda函数,用于集成已部署的模型。

6- 设置环境变量:在Lambda函数内创建一个名为llama_endpoint的环境变量,并将其值设置为SageMaker端点。

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第6张

7- 导入Intellinode Lambda:您需要导入准备好的Lambda zip文件,以建立与您的SageMaker Llama部署的连接。此导出文件是一个zip文件,可以在lambda_llama_sagemaker目录中找到。

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第7张

8- 配置API Gateway:在Lambda函数页面上点击“添加触发器”选项,然后从可用触发器列表中选择“API Gateway”。

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第8张 aws帐户-lambda触发器

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第9张 aws帐户-API网关触发器

9- Lambda函数设置:更新Lambda角色以授予访问SageMaker端点所需的权限。此外,应将函数的超时时间延长以适应处理时间。在Lambda函数的“配置”选项卡中进行这些调整。

点击角色名称以更新权限并提供访问SageMaker的权限:

使用Llama和ChatGPT构建多聊天后端的微服务 四海 第10张 aws帐户-lambda角色

ChatGPT集成

最后,我们将说明将Openai ChatGPT集成为微服务架构中的另一个选项的步骤:

作者代码

从platform.openai.com获取您的试用密钥。

执行实验

首先在终端中导出API密钥,如下所示:

作者代码

然后运行node应用程序:

node app.js

 

在浏览器中输入以下网址以测试chatGPT服务:

http://localhost:3000/chatgpt?message=hello

 

我们构建了一个由Llama V2和OpenAI的ChatGPT等大型语言模型功能提供支持的微服务。这种集成打开了利用先进人工智能驱动的无尽业务场景的大门。

通过将您的机器学习需求转化为解耦的微服务,您的应用程序可以获得灵活性和可扩展性的好处。现在,语言模型的功能可以单独管理和开发,而不是配置操作以适应整体模型的限制;这承诺提供更好的效率以及更容易的故障排除和升级管理。

 

参考资料

 

  • ChatGPT API:链接。
  • Replica API:链接。
  • SageMaker Llama Jump Start:链接。
  • IntelliNode 入门:链接。
  • 完整代码GitHub存储库:链接。

    Ahmad Albarqawi 是伊利诺伊大学香槟分校的工程师和数据科学硕士。

Leave a Reply

Your email address will not be published. Required fields are marked *