基于GPT的智能客服落地实践

📍前言

在日常生活中,「客服」这个角色几乎贯穿着我们生活的方方面面。比如,淘宝买东西时,需要客服帮你解答疑惑。快递丢失时,需要客服帮忙找回。报名参加培训课程时,需要客服帮忙解答更适合的课程……

基于此背景下,可以了解到客服在我们生活中的重要性。传统的客服更多是以「一对一人工回复」的方式,来帮我们解答疑惑。那在以GPT为例的各类大模型爆火之后,纷纷涌现出一些新奇的「智能客服」。那在下面的文章中,就将来聊聊,关于大模型在智能客服领域相关的一些落地方案。

以下文章整理自 稀土开发者大会2023·大模型与AIGC-掘金 第二部分,讲解关于 Think Academy 公司,基于GPT的智能客服落地实践方案。

一、💬项目背景

该公司想要做这个项目的背景如下:

  • 从业务场景出发:希望提供一个体验更好,响应更实时的智能客服。
  • 从技术层面出发:跟进新技术,以及验证大模型在生产环境下的可应用性和可塑性。

基于上面的背景信息,分析出即将要做的智能客服系统,要满足以下几个场景:

  • 回答教育机构的教学理念、如何上课等类似静态的相关咨询。
  • 当用户问到和入学测相关的问题时,会去引导用户去添加相关的教学主任,之后做相关的转化的动作。
  • 希望大模型只回答业务相关的问题。

image.png

有了上面的基本信息铺垫以后,接下来来介绍,关于智能客服系统的第一个版本。

二、💭问答客服V_1.0 — 基于企业专有知识库的客服系统

技术选型、方案设计、数据表现及缺陷

1、如果让大模型学会特定领域知识

(1)两种学习方式

首先在刚开始,我们调研到了有两种预训练方式:Fine-tuning LearningIn-context Learning

Fine-tuningIn-context Learning是机器学习中用于调整预训练模型的两种不同方法。它们之间的主要差异有:

Fine-tuning(微调)👇🏻:

  1. 定义:在预训练模型的基础上,用特定任务的数据集进行再训练,调整模型的参数以适应新任务。
  2. 数据需求:需要一定量的标记数据来进行微调。
  3. 训练时间:根据任务的复杂性和数据量的大小,微调可能需要一定的时间和计算资源。
  4. 泛化能力:微调后的模型在特定任务上表现很好,但可能在其他任务上表现不佳。
  5. 应用范围:适用于有足够数据的任务,并且希望模型在这个特定任务上达到最佳性能。
  6. 灵活性:一旦微调完成,模型就固定了,想要适应新任务需要再次微调。

In-context Learning(上下文学习)👇🏻:

  1. 定义:在不改变预训练模型的参数的情况下,通过向模型提供包含任务信息的上下文来使其执行特定任务。
  2. 数据需求:不需要额外的训练数据,但是需要为每个任务设计合适的上下文。
  3. 训练时间:不需要再训练,可以立即用于各种任务。
  4. 泛化能力:可以应用于多种任务,但性能可能不如微调后的模型。
  5. 应用范围:适用于数据稀缺和任务多样的场景。
  6. 灵活性:非常灵活,可以通过改变上下文来快速适应新任务。

总的来说,如果你有足够的标记数据,并且希望在特定任务上获得最佳性能,微调可能是更好的选择。而如果你需要模型适应多种任务,并且希望迅速部署,上下文学习可能更合适。

因此,基于上述两种学习方式的调研后,最终V1.0版本选择了 In-context Learning 的预训练方式。

(2)in-context learing

确定了上面这种预训练模式之后,接下来,就要思考,Prompt该怎么进行组织。可以理解为,给定一个题目,如何让大模型有相应的回答。

那在解决这个问题的过程中,就需要去攻克之后三个问题:

  • 语料要如何组织
  • 如何匹配到和用户问题相关的语料
  • token如何进行限制

2、V1.0系统设计

有了上面的问题,接下来就是攻克上面这三个问题。

(1)知识库的搭建

第一个是解决关于语料的问题。在V1.0版本中,采用的是人为清洗数据的方式。

可以看下图👇🏻,左边是原始语料,会先先人为地对这些数据先清洗一下,得到最后要使用的数据。

之后呢,就是把清洗后的数据,转换为右边的结构化语料

(2)全局流程图

接着是攻克第二和第三个问题,请看关于该系统 V1.0 版本的全局流程图:

3、线上数据表现

V1.0系统搭建完成了,下面来看看线上的数据表现。可以看下左边这张图,里面有关于相关问题回复评分不相关问题评分

最终得出的结论是:

  • 相关问题评分 → 1分2分的问题还是比较多,1分case基本算是一本正经地胡说八道了。
  • 不相关问题评分 → 整体表现还可以。

4、设计缺陷

在分析了线上数据之后,V1.0版本的设计总结出有以下缺陷:

  • 需要扩展更多的覆盖场景,如老师咨询、课程咨询等。
  • 动态信息的维护麻烦,给业务增加过多的维护成本。比如很多短期的活动、每学期的上课课程、上课时间等内容都会频繁地变动,这无形中给业务方带来了很大的麻烦。
  • 部分情况下,ChatGPT存在自由发挥的情况,不完全可控。

三、🗯问答客服V_2.0 — 基于指令识别的智能客服系统

技术选型、AutoGPT原理介绍、方案设计、数据表现

分析了设计缺陷之后,接下来就继续迭代了V2.0版本,可以说是从问答客服到智能客服的一个转变。

1、问答客服升级为智能客服

V2.0总结下来就是,基于指令识别的智能客服系统。

基于V1.0的设计缺陷,到了设计V2.0时,第一想法就是去扩展相关的语料库。以此让GPT回答公司更多的业务问题和更多的教学场景。

但在实践过程中发现,随着语料的数据量增加,会导致匹配准确率直线下降。又或者,如果语料的相似度很高,也会导致匹配的准确率直线下降。比如老师信息课程信息,有可能只是两个老师的名字不同,但其他内容都相同。这也就是下图提到的方案一。

就在烦于要用什么方案来解决时候,AutoGPT问世了,于是借助AutoGPT的设计思想,也就有了下面方案二的方案。

2、AutoGPT原理介绍

AutoGPT的原理是基于预训练语言模型,使用大量的语料库进行训练,从而学习到自然语言的规律和特征,进而生成符合语法和语义规则的文章。AutoGPTGPT的改进版,通过自动搜索算法来优化GPT的超参数,从而提高其在各种任务上的表现。

AutoGPT使用多层的自注意力机制前馈神经网络,可以有效地处理长文本序列,从而提高生成文章的质量和准确性。在生成文章时,AutoGPT会根据输入的文本内容,通过预训练模型进行编码,然后使用解码器生成符合语法和语义规则的文章。

3、AutoGPT 的 Prompt组织形式

AutoGPT也是基于Prompt来进行组织的,总结下来主要有三种组织形式:

  • 内置能力
  • 数据结构化
  • 记忆缓冲区

(1)内置能力

AutoGPT内置了很多工程上的能力,比如:

  • Google Search
  • 文件的读写
  • 类似github相关的代码拉取
  • 等等……

这些都定义在AutoGPT它内部的程序里面。

(2)数据结构化

第二个是数据结构化。相当于AutoGPT要求ChatGPT的返回必须是一个JSON结构。

(3)记忆缓冲区

AutoGPT的记忆缓冲区是指用于存储临时数据或信息的区域。在AutoGPT中,记忆缓冲区可能用于存储生成的文本片段、上下文信息或其他临时数据,以便在生成过程中使用。这样的缓冲区有助于AutoGPT在处理长文本序列时保持连贯性和一致性,从而提高生成文章的质量和准确性。

4、AutoGPT流程图

了解了上面AutoGPT的基本原理三种组织形式以后,下面来看AutoGPT的流程图。如下图所示👇🏻:

5、V_2.0 设计过程

(1)方案设计

该公司参考了上面AutoGPT的思想,就有了V2.0的方案设计。

如下图所示,最左边就是整个业务系统的提示词,其中内置了几种命令。比如:第一个是获取老师的命令、第二个是获取课程信息的命令、第三个是兜底的命令(如果走的逻辑不是前面两种类型的命令,那么就会去执行原来V1.0方案的命令,让GPT「基于知识库去回答用户问题」的命令。)

(2)整体流程

下面我们来看下V2.0的整体实现流程,如下图所示:

(3)调试数据

最后来分析下V2.0方案中,调试数据的整体过程表现。如下图所示:

四、📢总结

迭代过程中的一些心得和思考

1、思考与总结

经过上面两个版本的迭代,得到了一些总结。如下所示:

开发思维 —— 相信大模型很聪明,并尽量让它做更多的事情。

模型能力 —— 详细了解各模型和参数的使用,以及prompt组织形式的设计。

效果调优 —— 根据业务场景,明确调优方案和目标,做好预期管理。

2、讨论

  • AutoGPT在调用的过程中,会存在死循环

五、🐣彩蛋One More things

  • 稀土开发者大会2023·大模型与AIGC-掘金

  • 🎬 PPT下载&回放链接|2023稀土开发者大会大模型与 AIGC 分论坛

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/56712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重构商业生态:DApp创新玩法与盈利模式的深度剖析

随着区块链技术的发展,DApp(去中心化应用)正在从实验走向成熟。DApp以去中心化、透明性和不可篡改性为基础,结合智能合约,逐步改变传统商业运作模式,创造新的市场生态。本文将从DApp的独特优势、创新玩法和…

找不到包的老版本???scikit-learn,numpy,scipy等等!!

废话不多说 直接上链接了: https://pypi.tuna.tsinghua.edu.cn/simple/https://pypi.tuna.tsinghua.edu.cn/simple/https://pypi.tuna.tsinghua.edu.cn/simple/xxx/ 后面的这个xxx就是包的名字 大家需要什么包的版本,直接输进去就可以啦 举个栗子&#…

【汇编语言】第一个程序(一)—— 一个源程序从写出到执行的过程

文章目录 前言1. 第一步:编写汇编源程序2. 第二步:对源程序进行编译连接3. 第三步:执行可执行文件中的程序结语 前言 📌 汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程…

9. JSON RPC 服务

① JSON RPC 是一种基于 JSON 格式的轻量级的 RPC 协议标准,易于使用和阅读。 ② 在 Hyperf 里由 hyperf/json-rpc 组件来实现,可自定义基于 HTTP 协议来传输,或直接基于 TCP 协议来传输。 一、服务中心 目前 Hyperf 仅支持两种服务中心的组件支持: consul、nacosconsul 安…

了解 .NET 8 中的定时任务或后台服务:IHostedService 和 BackgroundService

IHostedService.NET 8 引入了使用和管理后台任务的强大功能BackgroundService。这些服务使长时间运行的操作(例如计划任务、后台处理和定期维护任务)可以无缝集成到您的应用程序中。本文探讨了这些新功能,并提供了实际示例来帮助您入门。您可…

Visual Studio配置tinyfiledialogs

下载地址&#xff1a;github下载链接 将下载的文件解压后&#xff0c;打开VS添加现有项 将.c文件添加进去 然后将tinyfiledialogs.h文件路径添加到包含目录 使用时包含头文件即可&#xff1a; #include <tinyfiledialogs.h>

上海亚商投顾:沪指缩量震荡 风电、传媒股集体走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天缩量震荡&#xff0c;三大指数集体收涨&#xff0c;北证50则跌超7%&#xff0c;超80只北交所个股跌逾…

一文搞定图

图 图 常见类型与术语 图的表示 邻接矩阵 邻接表 基础操作 基于邻接矩阵的实现 基于邻接表的实现 遍历 广度优先 深度优先 图 图 是一种非线性数据结构&#xff0c;由 顶点 和 边 组成。 相较于线性关系的链表和分治关系的树&#xff0c;网络关系的图自由度更高 常见…

初探Vue前端框架

文章目录 简介什么是Vue概述优势MVVM框架 Vue的特性数据驱动视图双向数据绑定指令插件 Vue的版本版本概述新版本Vue 3Vue 3新特性UI组件库UI组件库概述常用UI组件库 安装Vue安装Vue查看Vue版本 实例利用Vue命令创建Vue项目切换工作目录安装vue-cli脚手架创建Vue项目启动Vue项目…

实战-任意文件下载

实战-任意文件下载 1、开局 开局一个弱口令&#xff0c;正常来讲我们一般是弱口令或者sql&#xff0c;或者未授权 那么这次运气比较好&#xff0c;直接弱口令进去了 直接访问看看有没有功能点&#xff0c;正常做测试我们一定要先找功能点 发现一个文件上传点&#xff0c;不…

Find My平板键盘|苹果Find My技术与键盘结合,智能防丢,全球定位

‌平板键盘的主要用途包括提高输入效率、支持轻量化办公、提供丰富的文本编辑功能以及快捷操作。相比于直接在屏幕上打字&#xff0c;使用键盘可以显著提升输入速度&#xff0c;减少输入错误&#xff0c;特别是对于需要大量文字输入的场景&#xff0c;如写作、记录笔记等‌。平…

擎创科技声明

近日&#xff0c;我司陆续接到求职者反映&#xff0c;有自称是擎创科技招聘人员&#xff0c;冒用“上海擎创信息技术有限公司”名义&#xff0c;用“126.com”的邮箱向求职者发布招聘信息&#xff0c;要求用户下载注册APP&#xff0c;进行在线测评。 对此&#xff0c;我司郑重…

使用 Flask 实现简单的登录注册功能

目录 1. 引言 2. 环境准备 3. 数据库设置 4. Flask 应用基本配置 5. 实现用户注册 6. 实现用户登录 7. 路由配置 8. 创建前端页面 9. 结论 1. 引言 在这篇文章中&#xff0c;我们将使用 Flask 框架创建一个简单的登录和注册系统。Flask 是一个轻量级的 Python Web 框架…

web网站搭建(静态)

准备工作&#xff1a; 关闭防火墙&#xff1a; [rootlocalhost ~]# systemctl disable --now firewalld 修改enforce为permissive [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# geten getenforce getent [rootlocalhost ~]# getenforce Permissive 重启服务 [rootloca…

AUTOSAR CP 中 BswM 模块功能与使用介绍(2/2)

三、 AUTOSAR BswM 模块详解及 ARXML 示例 BswM 模块的主要功能 BswM&#xff08;Basic Software Mode Manager&#xff09;模块在 AUTOSAR 架构中扮演着模式管理的核心角色。它负责管理车辆的各种模式&#xff08;如启动、运行、停车等&#xff09;&#xff0c;并根据不同的…

网络搜索引擎Shodan(1)

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;shodan(1)_哔哩哔哩_bilibili 本文主要讲解网络搜索引擎Shodan的一些用法&#xff08;host和search这两个命令&#xff09;。 Shodan 是一个网络…

智创 AI 新视界 -- 探秘 AIGC 中的生成对抗网络(GAN)应用

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【云原生】Kubernets1.29部署StorageClass-NFS作为存储类,动态创建pvc(已存在NFS服务端)

文章目录 在写redis集群搭建的时候,有提到过使用nfs做storageclass,那时候kubernetes是1.20版本,https://dongweizhen.blog.csdn.net/article/details/130651727 现在使用的是kubernetes 1.29版本,根据之前的修改方式并未生效,反而提示:Error: invalid argument "Re…

docker 单节点arm架构服务器安装zookeeper、kafka并测试通信

kafka、zookeeper常用镜像介绍 kafka和zookeeper常见的镜像有以下三个&#xff1a;wurstmeister/zookeeper、kafka、confluentinc/cp-zookeeper、cp-kafka 和 bitnami/zookeeper、kafka。 wurstmeister/xxx: 由wurstmeister团队维护&#xff0c;提供的镜像适用于开发和测试环…

Termius工具在MAC的使用出现的问题:

Termius工具在MAC的使用出现的问题&#xff1a; 在使用SFTP时&#xff0c;出现不了本地的文件的位置 解决方案&#xff1a; 在Apple store下载的使用不了LOCAL SFTP&#xff0c; 需要在网页上进行下载才可以&#xff1a; 官网下载地址&#xff1a;https://termius.com/down…