写点什么

使用 LLama 和 ChatGPT 为多聊天后端构建微服务

  • 2023-11-10
    福建
  • 本文字数:2048 字

    阅读完需:约 7 分钟


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


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

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


我们构建了一个微服务,基于 LLama V2 和 OpenAI 的 ChatGPT 等 LLM 具有的功能。这种集成为充分利用基于高级 AI 的无数业务场景打开了大门。


通过将机器学习需求转换成解耦的微服务,您的应用程序可以获得灵活性和可扩展性的好处。不用配置您的操作,以适应整体式模型的约束,语言模型功能现在可加以单独管理和开发,这有望提高效率,更容易进行故障排查和升级管理。

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
使用LLama和ChatGPT为多聊天后端构建微服务_微服务_互联网工科生_InfoQ写作社区