首页 > 其他分享 >亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度

时间:2023-11-09 18:03:16浏览次数:34  
标签:Amazon 亚马逊 准确度 点击 Connect 按钮 Lex 及大 Lambda

 概述

 客户联络中心在现代是构成一个完整企业的重要组成部分,作为企业与顾客的连接纽带,在销售、服务支持以及提升顾客满意度方面发挥着至关重要的作用。使用亚马逊云科技Amazon Connect出海企业可以快速搭建自己的全球客服联络中心。当前客服联络中心也面临诸多的挑战,如长时间的电话等待、沟通困难、有用信息的缺乏、对客户的回复缺乏标准难以统一,这些对客户都可能会带来不好的体验。当连接建立后,客户又需要重复地讲述求助的原因、个人的身份、订单信息等。通过对话机器人接收客户问题、回答客户问题,可以让客户不需要排队等待。对于已识别的客户,对话机器人有更多的相关信息,可以避免无效的问答,专注于更相关的信息。

 Amazon Lex是基于AI聊天机器人的框架,可以根据业务场景设置各种各样的意图(Intent)来预训练机器人的基础模型,然后借助自然语言理解(NLU)实现与客户的对话。交付一个更快速更顺畅的客户体验的同时也节省了人力成本。

 但随着业务场景的增加,需要负责维护机器人的人员尽可能罗列出所有分支场景,并设计相应的意图,同时还要保证最新的数据能够及时更新到基础模型中,这会带来巨大的维护成本与挑战。为了解决上述问题,需要引入检索增强生成(Retrieval Augmented Generation,RAG)技术,并结合生成式人工智能(GenAI)和大型语言模型(LLMs),将机器人的响应限制在公司的数据范围内,为用户提供更加专业精准的应答,并且无需花费大量的人力整理知识库、预训练机器人的基础模型。通过接入知识库丰富客户对话内容,提升对话体验。

 本文将演示如何结合Amazon Connect、Amazon Lex、Amazon Kendra、Amazon Lambda和Amazon SageMaker,以及LangChain对大模型的调用,打造企业专属的智能客服。

 

 架构概述

  • 使用Amazon Connect的核心组件——联系流(Contact Flow),创建符合自身业务场景的IVR(Interactive Voice Response),并将获取用户输入的模块设置为Amazon Lex,实现用户对话的语义理解。
  • Amazon Connect将用户的呼入语音或文字输入传入Amazon Lex,通过在Lex中设置Lambda函数,将每一次用户的对话内容发送给Lambda函数做相应处理,最后将结果返回到Lex,实现人机对话。这里有个技巧是:无需人工为机器人创建大量的意图用于预训练,由于没有预训练模型去匹配用户的问题,Lex会自动匹配系统默认的FallbackIntent并发送给Lambda。将核心问题语义理解部分从Lex转移到了大语言模型,再由Lambda将大语言模型回复的内容嵌入FallbackIntent中,完成一次对话闭环,这样就大大节省了设计和维护预训练数据的人力成本。
  • Lambda获取用户问题后,将用户问题作为关键字,调用Amazon Kendra的知识库索引,利用Kendra自身的向量比对与自然语言理解特性,查询出匹配度高的结果集并返回给Lambda。Kendra支持多种文件格式和第三方平台作为数据源,本文选择网页爬虫作为数据源连接器,利用此连接器的定期爬取功能,实现知识库的自动更新。Kendra在抓去数据和建立索引时,会根据自身在14个主要行业(计算机、工业、汽车、电信、人力资源、法律、健康、能源、旅游、医疗、传媒、保险、制药和新闻)领域中的知识,对数据做文本切割和Embedding,并借助自身的自然语言理解(NLU)特性,进一步提升查询匹配的精准度。
  • Lambda函数拿到Kendra返回的数据后,会作为上下文通过Langchain生成相应的提示词(Prompt)并发送给大语言模型。提示词大致的格式为:“请在以下内容中回答<用户提问>”。由于Kendra对数据源提前做了Embedding,内容更加精准,所以仅需截取排序前三的内容作为上下文拼接在提示词中,从而避免了大语言模型中Token数量限制问题,同时更加精简的提示词也能提升大模型的响应速率。
  • 在SageMaker中部署大语言模型作为推理的终端节点。本文使用了清华大学开源的模型——ChatGLM-6B,对中文支持的表现较好,基于General Language Model(GLM)架构,具有62亿参数。
  • Lambda函数将大模型返回的信息通过Lex传递给Connect,Connect通过Amazon Polly进行语音回复,也可以通过Connect文字聊天API进行文字回复。
  • 如果系统多次无法解答用户问题,或者用户明确说出转人工的指令,系统会将用户转到Connect的人工座席进行详细沟通。

 

 部署方案

 前提条件

  • 确保拥有亚马逊云科技账号并能访问控制台。
  • 确保登录到亚马逊云科技的用户拥有操作Amazon Connect、Kendra、Lambda、SageMaker、Lex的权限。
  •  本文使用源代码Github。
  • 本文的操作将以Amazon us-west-2区域为例。

 在Amazon Kendra创建知识库

 Step 1创建索引

  • 进入Amazon Kendra控制台。
  • 点击右上方的“Create an Index”创建索引。
  • 输入索引名称,在IAM role部分,选择“Create a new role”,在Role name中输入角色名称,然后点击“Next”按钮(请注意:系统会自动为名称生成相应的前缀,此前缀不能更改或删除,否则会造成异常)。
  • 后续两页保持默认选项,最后点“Create”按钮创建索引。整个创建过程大概需要5-10分钟。

 Step 2创建数据源

  • 在索引详情页中,点击“Add data sources”创建数据源。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Lex

  • Kendra支持多种数据源,这里选择网页爬虫作为数据源,可以从指定的URL中定时爬取和更新相关内容,适用于知识库更新比较频繁的场景。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_数据源_02

  • 输入数据源名称,Language部分可根据自身知识库的语言选择。因为本文使用中文知识库,所以选择“Chinese(zh)”,然后点击“Next”。
  • 输入目标网页的URL,最多可以输入10个。如果需要访问内部网页,则在“Web proxy”部分设置网页的域名、端口号和访问凭证。
  • IAM role选择”Create a new role”,并输入角色名称(请注意:系统会自动为名称生成相应的前缀,此前缀不能更改或删除,否则会造成异常)。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Lex_03

  • 配置爬虫爬取的范围与深度。
  • 设置定期同步网页数据的周期,也可以设置手动同步(Run on demand)。然后点“Next”,最后一页确认信息后点“Create”按钮创建数据源。
  • 数据源创建完成后,点右上角的“Sync now”开始爬取或同步指定网页的数据。此过程根据爬取的范围和深度,可能需要几分钟到几个小时。此过程首先会对文档进行爬取以确定要索引的文档,然后再对选定的文档建立索引。
  • 等待数据源同步成功后,可以点击右边栏“Search indexed content”测试索引情况。
  • 因为爬取的中文文档,所以需要点击右边扳手图标,将语言设置为“Chinese (zh)”并点”Save“,最后在顶部搜索输入框中直接输入问题查看返回结果。

 创建ChatGLM SageMaker Endpoint

  • 进入Amazon SageMaker控制台。
  • 在左边菜单点击Notebook->Notebook instances,如果当前没有实例可以复用,点击Create notebook instance按钮创建新的notebook instance。
  • 输入Notebook instance name,instance type选择m5.xlarge,Platform identifier保持不变,IAM Role选择Create a new role,其它保持默认设置,最后点击Create notebook instance按钮完成创建。
  • 当实例状态变为InService后,点击Open JupyterLab,打开Jupyter工作台
  • 点击上传图标,将Github上/llm/chatglm/chatglm_sagemaker_byos.ipynb上传到工作台。
  • 点击新建文件夹图片,新建名为code的文件夹,将Github上/LLM/chatglm/code目录下的两个文件也上传到工作台。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Amazon_04

  • 双击ipynb打开笔记本,按照介绍顺序执行笔记本中的代码。其中第二步是将ChatGLM部署到SageMaker的推理节点,耗时大概5分钟左右,成功后可以运用笔记本中后面的步骤做相应的测试。请注意,如果执行第二步时出现ResourceLimitExceeded错误,说明在该区域还没有相应资源的配额,请到Service Quotas中输入endpoint查看该区域哪些实例类型支持endpoint。如果Applied quota value为0,需要选中实例类型后,点Request quata increase按钮申请。数量建议填1,否则可能会有申请失败。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Lex_05

  • 在左边菜单中点击Inference->Endpoints可以看到新创建Endpoint,状态为InService说明正常运行。将Name复制下来,供后续配置Lambda环境变量使用。

 创建Lambda函数

  • 进入Amazon Lambda控制台。

 

  • 首先为Lambda添加langchain的Lambda Layer。点击左边菜单栏的“Layer”,并点击右上角“Create layer”按钮。
  • 名称填写langchain,文件选择Github上/Lambda/lambda-layer/lazip。
  • 点击右上角“Create function”按钮创建Lambda函数。
  • 输入函数名称,Runtime选择“Python 3.9”,Architecture选择“x86_64”,Execution Role选择“Create a new role with Lambda permissions”,然后点“Create function”按钮。稍后再为这个角色添加操作Lex与SageMaker Endpoint的权限。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Lex_06

  • 创建成功后,点击“Upload from”按钮,下拉菜单中选“.zip file”,然后选择Github上,/Lambda/script.zip,点击“Save”。
  • 点击Code这一栏,在Runtime settings部分点击Edit按钮,将Handler这里改为script.lambda_function.lambda_handler,这是因为上传了名为script.zip文件,需要修改入口程序的目录结构。
  • 点击Code这一栏,在底部Layers部分点击“Add a layer”按钮添加LangChain Lambda Layer。
  • 点击Configuration栏,然后点击右边的“Edit”按钮,修改函数运行的基本参数。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Lex_07

  • 设置函数运行内存为4096MB,Timeout设置为1分钟,其它设置保持默认,点击“Save”按钮保存设置。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_数据源_08

  • 继续点击右边“Environment variables”,点击Edit按钮设置两个环境变量,Kendra索引ID与ChatGLM SageMaker endpoint名称:

 Key=KENDRA_INDEX_ID,Value=在Kendra中的Index ID

 Key=CHATGLM_ENDPOINT,Value=部署ChatGLM模型的SageMaker endpoint名称

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Amazon_09

  • 转到IAM控制台,点击右边的“Roles”,在列表中点选这个Lambda函数所关联的Role,点开Policy name下面的加号,然后点击“Edit”按钮。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Lex_10

  • 将如下JSON代码贴在现有代码后面,为Lambda函数赋予操作Kendra与SageMaker的权限。请注意JSON格式。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Amazon_11

 使用Amazon Lex创建智能对话机器人

  • 进入Amazon Lex控制台。
  • 点击右上角“Action”按钮,在下拉菜单中选择“Import”。
  • 输入机器人名称,并选择Github上/lex/chatgpt-bot-DRAFT-OEZEFSCJIQ-LexJson.zip文件,IAM Permission选择“Create a role with basic Amazon Lex permissions”,COPPA部分选择“No”,最后点击“Import”按钮导入机器人。
  • 点击导入成功后的机器人名称,在左边菜单中Aliases->TestBotAliases,并在Languages下点击Mandarin(PRC),在Lambda Function选择上面创建的Lambda函数,点Save按钮保存设置。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Amazon_12

  • 点击左边菜单栏Mandarin(PRC),再点击右上角Build按钮构建机器人。
  • 构建成功后,点击Test按钮可以测试前面所有步骤是否配置成功。如报错或返回“Intent FallbackIntent is fulfilled”,说明执行Lambda时发生异常,可以到CloudWatch Log Group中查看Lambda日志,定位错误原因。测试成功的结果如下图所示:

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Lex_13

 最后使用Amazon Connect构建客户联络中心

  • 进入Amazon Connect控制台。
  • 点击Create instance按钮创建Connect实例。Identity management保持默认,输入英文字母组成的别名后,点Next。
  • 为Connect管理控制台创建超级管理员,输入相关信息后点Next,后两页保持默认选项,最后点Create instance按钮完成创建。
  • Connect实例创建成功后,点击左边菜单中的Flows,在Amazon Lex部分,选择同区域的Bot,然后点击Add Amazon Lex Bot按钮添加Bot。
  • 点击左边菜单栏的Instances,点击Access URL中的链接,使用Connect超级管理员的账号密码登录。
  • 成功登录到Connect控制台后,点击“查看流”,然后点击“创建联系流”按钮。
  • 点击右上角三角形按钮,在下拉菜单中选择“导入”,选择Github中/Connect/LLM-Lex-InboundFlow文件导入联系流。
  • 双击“获取用户输入”模块,确认Amazon Lex选择为前面步骤创建的Bot,最后点击“发布”按钮发布此联系流。
  • 回到控制面板,点击“开始”按钮创建一个电话号码。
  • 根据实际业务需要,选择不同国家的电话号码,如果国家不在列表中,需要开工单申请。本文以美国的免费电话为例。
  • 创建成功后,点击“查看电话号码”,然后点击该电话号码,在“联系流/IVR”中选择先前创建的联系流。
  • 回到控制面板,点击“测试聊天”,然后点击“测试设置”,选中刚刚创建的联系流,点击应用按钮。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_数据源_14

  • 如下图所示:左边部分是模拟用户聊天界面,右边是座席服务台。当前用户的会话会自动由Amazon Lex机器人接替,只有当客户输入“转人工”字样才会将会话转到人工座席。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Lex_15

 测试结果

 此界面模拟用户向座席发起文字聊天,由于在联系流中设置了Lex机器人,所以客户的问题将由Lex机器人结合内部知识库与大语言模型来回答。

 当用户输入“转人工”字样,系统会将用户的对话转入到人工座席。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Amazon_16

 人工座席接受聊天请求后,就可以通过文字聊天与用户。

亚马逊云科技如何完善自动机器人及大语言模型的问答回复准确度_Lex_17


 总结

 通过亚马逊云科技Amazon Connect和Amazon LEX实现客服联络中心的自动客服机器人,借助Amazon Lambda调用Amazon Kendra+ChatGLM扩展了自动客服机器人的对话能力,使对话机器人在没有预设的对话流的情况下,查询知识库回答客户的问题,提升顾客体验的同时减少了在顾客服务上的人力资源投入。在此框架下,可以继续不断完善自动机器人及大语言模型在回答问题方面的准确度。

标签:Amazon,亚马逊,准确度,点击,Connect,按钮,Lex,及大,Lambda
From: https://blog.51cto.com/u_15877519/8285034

相关文章

  • 武汉星起航:在上海股交所挂牌展示,打造亚马逊一站式孵化平台
    自2017年以来,武汉星起航一直以亚马逊自营店铺为焦点,积累了丰富的实战运营经验。在2020年正式成立后,公司以跨境电商为核心,以专业的运营团队和多年积累的宝贵经验,为合作伙伴提供了更为深入的合作模式。在这个数字化时代,跨境电商已成为全球商业的重要组成部分。亚马逊作为全球最大的电......
  • 使用亚马逊云科技大语言模型及搜索服务打造知识库:场景及组件介绍
     背景 知识库需求在各行各业中普遍存在,例如制造业中历史故障知识库、游戏社区平台的内容知识库、电商的商品推荐知识库和医疗健康领域的挂号推荐知识库系统等。为保证推荐系统的实效性和准确性,需要大量的数据/算法/软件工程师的人力投入和包括硬件在内的物力投入。其次,为了进一步......
  • 照灯烘干机UL859亚马逊海外拼多多电商出口
    照灯烘干机UL859亚马逊海外拼多多电商出口办理Ul是美国保险商试验所(UnderwritersLaboratorieslnc)的简写。UL安全试验所是美国最有权威的,也是世界上从事安全试验和鉴定的较大的民间机构。它是一个独立的、营利的、为公共安全做试验的专业机构。它采用科学的测试方法来研究确定各......
  • 关于亚马逊 CodeWhisperer 的测试反馈
    CodeWhisperer是亚马逊推出的实时AI编程助手,是一项基于机器学习的服务,它可以分析开发者在集成开发环境(IDE)中的注释和代码,并根据其内容生成多种代码建议。亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛......
  • 初探亚马逊 AI 编程助手 CodeWhisperer
     前言 4月18日,亚马逊云科技宣布,实时AI编程助手 AmazonCodeWhisperer 正式可用,同时推出的还有供所有开发人员免费使用的个人版(CodeWhispererIndividual)。AmazonCodeWhisperer 是一个通用的、由机器学习驱动的代码生成器,可实时为您提供代码建议。在编写代码时,CodeWhis......
  • 武汉星起航:亚马逊全球市场融合助力跨境电商蓬勃发展
    随着全球市场的不断融合和消费者对高品质商品的追求,跨境电商行业正迎来更加广阔的发展机遇。这一行业的兴盛不仅受益于全球化的浪潮,同时也得益于国家政策的持续扶持。而在众多跨境电商平台中,亚马逊作为引领者,为卖家提供了丰富的机遇,而且在未来跨境电商行业的发展中,亚马逊平台有望引......
  • 武汉星起航:亚马逊引领跨境电商发展,政策扶持共创未来
    全球市场的持续融合和消费者对高品质商品的追求,为跨境电商行业带来了前所未有的广阔发展机遇。这一行业的繁荣不仅受益于全球化浪潮,更得益于国家政策的持续扶持。而在众多跨境电商平台中,亚马逊作为璀璨明星,为卖家提供了无数优势,其在未来跨境电商领域的前景发展,有望引领行业创新脉搏......
  • 亚马逊Dynamo数据库解读(英文版)
    最近看了亚麻的Dynamo,个人认为其中alwayswriteable的业务目标,对于DHT,vectorclock,merkeltree的应用,包括对于一致性和高可用的权衡(基于CAP猜想,实现默认保证分区容错,因此二选一)等都很有意思。建议参考原论文食用。Whatistheproblemthatthispapertriestosolve?Howwould......
  • 堪比Copilot平替?亚马逊云科技Amazon CodeWhisperer在开发效率提升上究竟如何
    说明 GitHubcopilot虽然很强,但是每个月的使用金额并不低,而亚马逊云科技AmazonCodeWhisperer免费支持多种编程语言的AI编程,甚至被网友称为GitHubcopilot平替?!  工具安装 如果你已经有vscode请忽略本章节,以python为例,安装python环境,把这个链接复制到浏览器下载python,注意操作系......
  • 基于亚马逊云科技高可靠性的EC2云服务器,搭建功能无限制的私人网盘
    网盘是一种在线存储服务,提供文件存储,访问,备份,贡献等功能,是我们日常中不可或缺的一种服务。很多互联网公司都为个人和企业提供免费的网盘服务。但这些免费服务都有一些限制,比如限制下载速度,限制文件大小,不能多人同时管理,不能实现一些定制化功能。如果想取消这些限制,就要付费。现在为......