0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

了解亚马逊云科技搭建智能搜索大语言模型增强方案的快速部署流程

科技新思路 来源:科技新思路 作者:科技新思路 2023-11-10 11:08 次阅读

背景

知识库需求在各行各业中普遍存在,例如制造业中历史故障知识库、游戏社区平台的内容知识库、电商的商品推荐知识库和医疗健康领域的挂号推荐知识库系统等。为保证推荐系统的实效性和准确性,需要大量的数据/算法/软件工程师的人力投入和包括硬件在内的物力投入。那么在自己的环境中搭建智能搜索大语言模型增强方案是必不可少的。因此,本篇内容主要为大语言模型方案的快速部署。该方案部署流程并不复杂,只需要您对于亚马逊科技相关服务有一个基本的了解即可。

方案架构图与功能原理

wKgZomVNnqKAM6EwAAVEXBYRdQk526.png

该方案分为以下几个核心功能模块:

前端访问界面:该方案提供了基于React的前端访问界面。用户可以通过网页以REST API的形式进行智能文档搜索等功能的操作。

REST API:通过集成了相应Amazon API Gateway和Amazon Lambda函数的实现和后端搜索引擎,数据库和模型推理端点交互。

企业搜索引擎:基于Amazon OpenSearch或Amazon Kendra。可以基于双向反馈的学习机制,自动持续迭代提高输出匹配精准度。同时采用引导式搜索机制,提高搜索输入描述的精准度。

数据源存储:可选用多种存储方式如数据库,对象存储等,在这里Amazon Kendra通过连接器获取Amazon S3上的对象。

向量化数据注入:采用Amazon SageMaker的Notebook模块或者Amazon Lambda程序将原始数据向量化后的数据注入Amazon OpenSearch。

智能搜索/引导/问答等功能模块:采用Amazon Lambda函数实现和后端搜索引擎,数据库和模型推理端点交互。

记录数据库:用户反馈记录存储在数据库Amazon DynamoDB。

机器学习模型:企业可以根据自身需要构建大语言模型和词向量模型,将选取好的模型托管到Amazon SageMaker的endpoint节点。

反馈优化:用户在前端页面反馈最优搜索结果,通过手动或事件触发器Amazon EventBridge触发新的训练任务并且重新部署到搜索引擎。

插件式应用:利用该方案核心能力可以与Amazon Lex集成以实现智能会话机器人功能,也可以与Amazon Connect集成实现智能语音客服功能。

实施步骤介绍

以smart-search v1版本为例,为大家讲解方案的整个部署流程。

1、环境准备

首先您需要在您的开发环境中安装好python 3、pip以及npm等通用工具,并保证您的环境中拥有16GB以上的存储空间。根据您的使用习惯,您可以在自己的开发笔记本(Mac OS或Linux环境)上部署,也可以选择EC2或者Cloud9进行部署。

2、CDK自动部署

2.1 获取代码安装Amazon CDK包

获取代码后把代码拷贝到指定目录下。打开终端窗口,进入smart_search的软件包,并切换到名为deployment文件夹下:

wKgaomVNnqKAU_8KAAAHUCW1kug676.png

进入到deployment目录后,相应的CDK部署操作均在该目录下进行。然后安装Amazon CDK包。

2.2 安装CDK自动化部署脚本所需的所有依赖项和环境变量

在deployment目录下运行以下命令安装依赖库:

wKgZomVNnqKAR7sPAAAHNXAbATQ298.png

然后将您的12位亚马逊云科技账号信息、Acess Key ID、Secret Access Key、以及需要部署的Region ID导入到环境变量中:

wKgaomVNnqOAb3zKAAAW6lG4ANQ756.png

然后运行“cdk bootstrap”安装账户和目标区域内的CDK工具包,例如:

wKgZomVNnqOAI0ydAAALN37u1jw400.png

2.3 在cdk.json可以进行自定义配置

该方案的默认配置文件在deployment目录下的cdk.json文件中,如果想要自行配置需要部署哪些功能模块,可以根据需要修改cdk.json的“context”部分。例如,如果需要修改部署哪些功能函数,可以对“selection”值进行修改。

默认的参数如下所示:

wKgaomVNnqOAPGNLAAAMovFgrlA000.png

如果仅需要使用“支持knn的文档搜索功能”,可以仅保留“knn_doc”。除此之外,还可以选择通过修改cdk.json的其他相应参数来自定义部署方式、部署哪些插件和名称和路径等配置。

2.4 CDK命令自动化署

运行下面的命令将验证环境并生成Amaon CloudFormation的json模版:

wKgZomVNnqSAfLR2AAADyPQIbvE812.png

如果没有报错,则运行以下命令部署全部堆栈。

wKgaomVNnqSAbCyYAAAEzRBl5KY022.png

CDK部署将提供相关Amazon CloudFormation堆栈以及相关资源,例如Amazon Lambda、Amazon API Gateway、Amazon OpenSearch实例和Amazon SageMaker的notebook实例等,预计安装的部署时间大约为30分钟左右。

3、利用Amazon SageMaker的Notebook实例部署模型与数据导入

3.1 部署模型

3.1.1进入Amazon SageMaker控制台,进入NoteBook Instances,选择SmartSearchNoteBook实例,点击“Open Jupyter”,进入SmartSearch的代码主目录,点击“isearchjupyter”目录进入,能看到包括Embbeding Model、LLM_Model等目录,这两个目录包含模型部署脚本,而Script-Doc.ipynb脚本则会用于后面的文档上传,目录如下图所示:

wKgZomVNnqSANpcMAADIeUVskK0551.png

3.1.2首先安装Embbeding Model,进入“/isearchjupyter/Embbeding Model”目录,能看到对应的几个脚本。其中“EmbbedingModel_shibing624_text2vec-base-chinese.ipynb”为中文的词向量模型,其他两个为英文,打开相应脚本依次运行单元格,开始部署embbeding model。等待script部署完毕,成功部署后会在Amazon SageMaker的endpoint中看到名为“huggingface-inference-eb”的endpoint,状态为“InService”。

3.1.3然后部署大语言模型,LLM_Model目录下当前包含了中文和英文的大语言模型库。这里先为大家介绍中文的大语言模型的部署方法,找到isearchjupyter/LLM_Model/llm_chinese/code/inference.py,该文件定义了大语言模型的统一部署方法。大语言模型可以通过唯一的名称进行部署,把该唯一名称声明为“LLM_NAME”的参数值,作为参数传递给部署脚本。可以根据大语言模型的文档来确定“LLM_NAME”的值。打开网址后对照该文档找到该模型部署的唯一名称,然后粘贴到为“LLM_NAME”赋值的位置即可,可以参照该方法举一反三,指定项目中需要使用的大语言模型。修改inference.py文件后进入“isearchjupyter/LLM_Model/llm_chinese/“目录,运行该目录的script。等待script 部署完毕,成功部署后会在Amazon SageMaker的endpoint中看到名为“pytorch-inference-llm-v1”的endpoint。

如果选择部署英文大语言模型,部署方式类似,需要将英文大语言模型的参数填入LLM_Model/llm_english/code/inference.py文件的“LLM_NAME”参数中。找到该大语言模型项目名称,则然后复制该名称再粘贴到为“LLM_NAME”赋值的位置,可以用该方法进行举一反三,指定任意一个满足业务需求的大语言模型。进入“isearchjupyter/LLM_Model/llm_english/”的目录下,依次运行该目录下英文大语言模型的脚本的部署单元格。如下图所示:

wKgaomVNnqWAe0jgAAMfUcMqzx8249.png

3.1.4安装完成后,看到两个endpoint已经在”InService”状态,如下图:

wKgZomVNnqaAL9GDAAFsWk3P7BA671.png

3.2 知识库数据上传

3.2.1数据准备。进入jupyter的目录“/isearchjupyter”,在“docs”目录,将上传所需要的word、excel或pdf等格式的文档进行上传,该文件夹下已经提供了用于测试的样例文件“sample.docx”。

3.2.2 进入Script-Doc.ipynb,修改单元格“Hyperparameter”的如下参数,folder_path为指定的docs目录,index_name为Amazon OpenSearch的index名称,如下图:

wKgaomVNnqaAK04yAAJBu9Xds2o376.png

然后从头运行这个script,完成数据导入。

4、配置Web UI

4.1 进入smart_search/ search-web-knn目录,该目录包含基于React的前端界面代码。然后对/src/pages/common/constants.js文件进行编辑,如下图所示:

wKgZomVNnqiAUeY7AAGhAHeBXBA827.png

Mainapi常变量指定了前端调用的API入口。该值可以从网页端进入API Gateway中获取,进入“smartsearch-api”的Stages侧边栏,将prod stage的involke URL赋值给constants.js的mainapi常变量。

4.2 检查主页面参数配置。smart_search/search-web-knn/src/pages/MainSearchDoc.jsx为功能展示页面,在该文件的last_index参数设置了页面自动填充的默认index值,将上文Notebook实例部署的index name填入,如“docs”。

4.3 运行前端界面。进入目录 search-web-knn,执行如下两条命令:

wKgaomVNnqiAXZ4CAAAD1u0XlR8234.png

然后运行以下命令启动前端界面:

wKgZomVNnqiAL6xWAAADmwpxB6g782.png

一切顺利的话,将得到一个网页版界面。在本地开发笔记本部署的默认访问地址和端口号是localhost:3000,如果是EC2部署,需要启用对应端口访问的安全组策略,通过EC2的公网地址加端口号进行访问。该前端页面的使用方法为:将问题输入搜索栏,配置index名称和k-NN选项,点击“Search”按钮后您可以得到一个基于企业知识库的大语言模型汇总回答。如下图所示:

wKgaomVNnqmAcdgAAARyP4EmVQQ146.png

5、安装扩展插件

5.1 与Amazon Lex集成实现智能聊天机器人

本方案已经集成了Amazon Lex的会话机器人功能,Amazon Lex当前在海外区可用。在cdk.json文件中,将“bot”加入extension键值处。

cdk部署成功后进入管理界面可以看到名为“llmbot”的对话机器人,如下图:

wKgZomVNnqqABmczAAE2WV-iqK4858.png

该机器人可以方便地进行前端页面的集成。

5.2 与Amazon Connect集成实现智能语音客服

Amazon Connect为亚马逊云科技的云呼叫中心服务,该服务当前在海外区可用。该方案可以通过Amazon Lex机器人将大语言模型能力集成到Amazon Connect云呼叫中心中,通过以下几个步骤可以使您获得一个支持语音呼叫功能的智能客服机器人。

5.2.1 将上一步生成的llmbot机器人集成到现有Amazon Connect实例中。

wKgaomVNnqqAe0gnAAFH2fb4i0A454.png

5.2.2 然后进入Amazon Connect实例中,将smart-search/extension/connect里面的文件导入到Contact Flow中,并保存和发布。

5.2.3 最后在Amazon Connect中将呼入号码与上一步配置的Contact Flow进行关联。则所有呼入该号码的语音通话将会连接到智能客服的呼叫服务流程。

正常情况下,智能客服将会识别呼入人的语音输入,随后集成到Amazon Connect的智能客服机器人会基于企业知识库信息和大语言模型的能力进行以接近人类的逻辑方式进行语音回答。

6、资源清理

想要将资源进行清理时,请使用以下命令将所有堆栈进行删除:

wKgZomVNnquAdFpbAAAE_YXVcKs829.png

注意:通过Amazon SageMaker的Notebook实例创建的推理模型资源需要进行手动删除,在Amazon SageMaker的“inference”边栏进入“endpoint”,点击“delete”,将所有endpoint进行删除。

当堆栈创建的Amazon S3桶中已经有了数据或者存在其他手动创建或修改的资源时,则也需要手动删除。

总结

通过此次部署,已经成功掌握了该方案的部署方法,也对该方案有了更深的了解。亚马逊云科技将会对该方案进行持续的迭代与优化以支持更多的数据类型、模型库与扩展功能,进而将方案的能力延伸到更多的业务场景中去。该方案可以解决许多行业和领域的专业或通用场景,通过使用该方案可以使用人工智能最新进展和亚马逊云科技的产品来为行业发展注入新的活力。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语言模型
    +关注

    关注

    0

    文章

    465

    浏览量

    10169
  • 亚马逊
    +关注

    关注

    8

    文章

    2552

    浏览量

    82593
收藏 人收藏

    评论

    相关推荐

    【大语言模型:原理与工程实践】大语言模型的应用

    实际应用前需解决的挑战。为提升大语言模型的性能,高级的提示词技术可以促进大语言模型与环境进行动态交互,引导其生成和推理规划。 检索增强生成
    发表于 05-07 17:21

    【大语言模型:原理与工程实践】大语言模型的评测

    评测任务则重点评估模型在提供方法论和实践建议方面的能力。这类任务要求模型能像经验丰富的导师或专家那样,为用户提供有价值的建议和解决方案。总之,这套综合性的评测框架为全面评估大语言
    发表于 05-07 17:12

    【大语言模型:原理与工程实践】探索《大语言模型原理与工程实践》2.0

    读者更好地把握大语言模型的应用场景和潜在价值。尽管涉及复杂的技术内容,作者尽力以通俗易懂的语言解释概念,使得非专业背景的读者也能够跟上节奏。图表和示例的运用进一步增强了书籍的可读性。本
    发表于 05-07 10:30

    【大语言模型:原理与工程实践】核心技术综述

    中应用,需要考虑到性能、可扩展性和安全性等因素。 大语言模型正在快速发展,新技术不断涌现。未来的研究可能集中在提高模型效率、理解和可解释性以及确保
    发表于 05-05 10:56

    【大语言模型:原理与工程实践】揭开大语言模型的面纱

    语言模型(LLM)是人工智能领域的尖端技术,凭借庞大的参数量和卓越的语言理解能力赢得了广泛关注。它基于深度学习,利用神经网络框架来理解和生成自然
    发表于 05-04 23:55

    【大语言模型:原理与工程实践】探索《大语言模型原理与工程实践》

    《大语言模型》是一本深入探讨人工智能领域中语言模型的著作。作者通过对语言
    发表于 04-30 15:35

    基于北京迅为iTOP-RK3588大语言模型部署测试

    基于北京迅为iTOP-RK3588大语言模型部署测试
    的头像 发表于 04-25 14:35 574次阅读
    基于北京迅为iTOP-RK3588大<b class='flag-5'>语言</b><b class='flag-5'>模型</b><b class='flag-5'>部署</b>测试

    亚马逊云科技与Anthropic加深合作 Amazon Bedrock再添Claude 3模型

    模型具备行业领先的准确性、性能、速度和成本优势。这一进展将增强各种规模的企业在其组织中快速测试、构建和部署生成式AI应用的能力。 "我们与Anthropic展开合作,旨在将领先的生成式
    的头像 发表于 03-06 15:45 263次阅读

    开启智能时代:亚马逊云科技倾力打造大语言模型前沿应用

    近年来,随着科技的飞速发展,大语言模型成为人工智能领域的一颗璀璨明珠。在这个信息爆炸的时代,大语言模型以其强大的自学习能力和广泛的应用领域引
    的头像 发表于 12-06 13:57 556次阅读

    语言模型简介:基于大语言模型模型全家桶Amazon Bedrock

    本文基于亚马逊云科技推出的大语言模型与生成式AI的全家桶:Bedrock对大语言模型进行介绍。大语言
    的头像 发表于 12-04 15:51 533次阅读

    如何基于亚马逊云科技LLM相关工具打造知识库

    背景 本篇将为大家阐述亚马逊云科技大语言模型下沉到具体行业进行场景以及实施案例的介绍,是亚马逊云科技官方《基于智能
    的头像 发表于 11-23 17:53 684次阅读
    如何基于<b class='flag-5'>亚马逊</b>云科技LLM相关工具打造知识库

    人工智能模型、应用场景、应用部署教程超详细资料

    人工智能是IC行业近几年的热词,目前此技术已经有很多成熟的模型和落地案例。在此跟大家做个分享,更多详细资料,请自行搜索:【展锐坦克邦】,坦克邦-智算天地集算法模型
    发表于 11-13 14:49

    Hugging Face LLM部署语言模型亚马逊云科技Amazon SageMaker推理示例

     本篇文章主要介绍如何使用新的Hugging Face LLM推理容器将开源LLMs,比如BLOOM大型语言模型部署亚马逊云科技Amazon SageMaker进行推理的示例。我们将
    的头像 发表于 11-01 17:48 592次阅读
    Hugging Face LLM<b class='flag-5'>部署</b>大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>到<b class='flag-5'>亚马逊</b>云科技Amazon SageMaker推理示例

    虹科分享 | 谷歌Vertex AI平台使用Redis搭建语言模型

    基础模型和高性能数据层这两个基本组件始终是创建高效、可扩展语言模型应用的关键,利用Redis搭建语言
    的头像 发表于 09-18 11:26 423次阅读
    虹科分享 | 谷歌Vertex AI平台使用Redis<b class='flag-5'>搭建</b>大<b class='flag-5'>语言</b><b class='flag-5'>模型</b>

    检索增强语言模型方法的详细剖析

      本篇内容是对于ACL‘23会议上陈丹琦团队带来的Tutorial所进行的学习记录,以此从问题设置、架构、应用、挑战等角度全面了解检索增强语言模型,作为对后续工作的准备与入门,也希
    的头像 发表于 08-21 09:58 1428次阅读
    检索<b class='flag-5'>增强</b>的<b class='flag-5'>语言</b><b class='flag-5'>模型</b>方法的详细剖析