人工智能,应该如何测试?(八)企业级智能客服测试大模型 RAG

简介: 大模型如GPT虽表现出众,但在特定领域和实时信息方面表现不足,易产生“幻觉”即编造答案。其能力受限于训练数据,无法提供超出数据范围的专业知识。为解决此问题,采用意图识别模型预判问题归属,结合检索增强生成(RAG)技术,通过检索相关信息注入大模型以提升回答质量。测试人员利用RAG评估模型效果,有时借助GPT进行自动化评分,尤其是在非专业领域,但GPT评分的准确性仍有限,人工评估更为可靠。

大模型的缺陷 – 幻觉

接触过 GPT 这样的大模型产品的同学应该都知道大模型的强大之处, 很多人都应该调戏过 GPT,跟 GPT 聊很多的天。 作为一个面向大众的对话机器人,GPT 明显是鹤立鸡群,在世界范围内还没有看到有能跟 GPT 扳手腕的存在。 也许很多人都认为 GPT 是非常强大的对话机器人了, 它学时丰富,什么领域内的问题都能回答。但其实就如我上一篇帖子中说道的, 虽然这种大模型看似什么问题都能回答,但其实它无法在特定领域内给出专业且精准的回答。比如我们问大模型宝马 5 系的发动机的设计细节,这个是不可能得到正确的答案的。 甚至我们问一个大模型苹果今天的股价是多少,它也是回答不出来的。 如下图:

image.png

这是为什么呢, 看过我之前教程的同学就知道人工智能是你给它什么样的数据,它就训练出什么样的效果。 所以大模型可以根据海量的训练数据,找出数据之间的规律从而推理出用户想要的答案。 但这个答案涉及的知识范围无法脱离训练数据的基础。 也就是说大模型可以根据训练数据得出人类的语言习惯,内容组织的方式, 它知道输出什么样的内容是人类容易理解的, 但是它自己掌握的知识范围没办法超出训练数据包含的范围。 所以用户在限定的知识范围内提出的问题,大模型可以给出近乎完美的答案。但超出了这个范围它就无能为力了,如果是比较容易识别的场景会得出上面那样的回复,这样起码用户会知道大模型无法回答这个问题。 但更多的场景下可能会出现大模型的幻觉问题。

幻觉用大白话来说就是模型在瞎编一个答案。 比如我在问 GPT 一个代码问题的时候,其实会发现有些时候它会瞎编一些不存在的函数出来。为什么会出现这种问题, 这就要涉及到它的训练原理了。 我在之前的教程中说过所有监督学习基本上都逃不开二分类,多分类和回归这三种类型。 而大模型其实就可以划分为一个多分类模型。 因为实际上它的原理是有我们有一个词表,这个词表里包含了这个语言的大部分常用词,比如是中文的词表的话可能包含了绝大部分的中文字。而模型实际上在生成答案的时候就是使用用户的问题去计算生成的第一个字应该是哪个字,词表中每一个词都会计算一个概率, 比如词表中一共有 1w 个字,模型就会去计算这 1w 个字中,每个字出现在当前位置上的概率,取概率最高的那个输出。 然后模型再用问题 + 生成的第一个字 为基础又去词表中计算第二个字,以此类推。所以对于大模型本身来说它并不知道绝对的正确答案是什么,它只是在会在词表中取出概率最高的那个字。 所以用户才会感觉到大模型总是在瞎编一个答案。

说回对话机器人中的意图识别

大模型的幻觉是无法避免的,起码靠大模型自己是无法避免的, 就像上面说的, 它并不知道真实的答案, 它只是去猜一个它认为最靠谱的答案给用户。 所以说回上一篇中提到的,对话机器人一般会在最前方设定一个多分类的模型,名为意图识别模型。 它的责任就是根据用户的问题去计算出应该由哪个子系统来回答用户的问题。 这正是因为我们知道很多问题是大模型无法回答的。 它没有专业的知识(比如你问宝马 5 系的发动机要如何更换,它需要到知识引擎中检索对应文档),或者无法回答实时变动的问题(比如苹果今天的股价是多少, 它需要发送到搜索引擎中检索答案)。 所以一个看似简单的客服对话机器人,实际上是一个非常庞大的系统,它背后是非常多的子系统的模型共同弄支撑起来的。 而测试人员往往第一个就要测试这个意图识别模型,它的这个多分类效果是否达到了足够高的标准,因为这个意图识别错了, 它就会发送到错误的子系统中,那么答案也一定就是错误的。

大模型 RAG

当我们了解了大模型的局限性后,又要开始面对另一个问题。 就是通过知识引擎或者搜索引擎这些子系统检索出来的答案直接返回给用户可能也是有问题的。 比如:

  • 信息过多:我们可能从检索结果中获得大量相关信息,用户难以从中筛选出最准确、最有用的部分。
  • 信息不完整或不准确:检索结果可能只包含部分信息,或者由于搜索引擎的局限性,返回的信息可能不够准确。
  • 缺乏连贯性或者不符合人类的理解习惯:直接返回的检索结果可能是一系列独立的片段,缺乏整体的连贯性和逻辑性,这会影响用户的理解和体验。

所以业界的专家们推出了一种把检索和大模型组合在一起的解决方案,也就是大模型 RAG(检索增强生成)。一句话总结:RAG(中文为检索增强生成)= 检索技术 + LLM 提示。例如,我们向大模型提一个问题,我们先从各种数据源检索相关的信息,并将检索到的信息和问题封装成 prompt 注入到大模型中,让大模型给出最终答案。比如:

【任务描述】
假如你是一个专业的客服机器人,请参考【背景知识】做出专业的回答。
【背景知识】
{content} // 数据检索得到的相关文本
【问题】
XX品牌的扫地机器人P10的续航时间是多久?

之前我们说大模型的缺点就是缺少专业领域和实时变化类型的相关知识信息。 所以它才会出现幻觉问题。 现在我们把这些专业知识封装到了 prompt 中,这样大模型就有了这些知识背景,就可以比较完美的回答出用户想要的答案了。

所以其实我们说对话机器人是一个比较复杂的系统,它背后有多个子系统,有多种模型服务。 但它的核心流程其实就是通过意图模型决定问题应该交由哪个子系统来处理, 然后把该子系统的答案封装进 prompt 里让大模型给出最终答案。 当然这其中还有很多流程, 比如安全审核,频控,拒答黑名单等等, 我们先不过多涉及这些细节。

测试人员利用大模型 RAG 进行效果的评估

当我们了解到大模型 RAG 的原理后,其实也就猜到测试人员也是可以利用这个方法来开展一些工作的。在我以前的文章中介绍过这种大模型的评测工作是非常消耗人力的, 其中一个非常消耗人力的地方就是即便我们已经有了标注好的数据(就是问题和答案都是已知的),我们也很难去自动化的去测试。 这主要是因为比较难以去自动化的对比参考答案与实际答案之间的匹配程度,因为对话机器人每次回答的内容可能是不一样的,而且回答的内容不一样不代表回答的就错误,语言这个东西是博大精深的(尤其是汉语),不同的描述表达同一个意思是比较常见的,比如我的名字叫孙高飞孙高飞是我的名字 其实表达的是差不多的意思。 所以不能简单的用字符串匹配来验证回答的正确性。 常见的思路可能是引入文本相似度算法,比如把两个文本向量化后计算余弦相似度。 这样一定程度上可以从语义的角度来分析两个文本的相似程度。 就是开源的这种语义相似度的算法效果确实需要在项目中去实践验证。 第二种思路就是一些测试人员习惯让 GPT 来完成这个工作, 我们可以把相关的问题,参考答案以及模型给出的答案封装成 prompt,让 gpt 来评判回答质量,比如:

image.png

image.png

image.png

image1803×670 166 KB

image.png

会选择让 GPT 来参与评分除了要解决自动化的问题外,也是要解决主观问题, 其实 NLP(自然语言处理)领域内的场景都很难避开这个问题。同样一段文本,每个人对它的感受是不一样的。 我在以前讲过要评估主观问题,人工的方法一般是需要 3 人仲裁制或者多人平均分制(以前的文章中有介绍)。 如果没有人力来完成这样的评估,那么把 GPT 引入进来让它来打个分也是一个不错的选择。

其实很多时候在交给 GPT 打分的时候也是不带参考答案的,因为标注数据高昂的成本代价会让很多小团队无法承担,所以就在不带参考答案的前提下让 GPT 打分。 当然这种方法在专业知识领域内,它的打分结果就是比较糟糕的。 但一些闲聊对话类和通用知识场景中,GPT 的答案还是有一定的可信度的。 所以在测试中我们也可以选择在这些场景中不带参考答案,而在专业知识领域内把参考答案作为背景交给 GPT。

当然这里要澄清的是,使用这种方式来参与评估是一种在人力不足以支撑人工评估下的权宜之计, 如果要评价评估模型的准确性, 还是人工最为准确的。 GPT 毕竟还是有很多不可控的因素存在。

相关实践学习
阿里巴巴智能语音交互技术与应用
智能语音交互,是基于语音识别、语音合成、自然语言理解等技术,为企业在多种实际应用场景下,赋予产品“能听、会说、懂你”式的智能人机交互体验。适用于多个应用场景中,包括智能问答、智能质检、法庭庭审实时记录、实时演讲字幕、访谈录音转写等。 本课程主要讲解智能语音相关技术,包括语音识别、人机交互、语音合成等。  
相关文章
|
9天前
|
机器学习/深度学习 人工智能 测试技术
软件测试的未来:自动化与人工智能的融合
随着科技的飞速发展,软件测试领域正经历着一场革命。传统的手动测试方法正在逐渐被自动化和人工智能(AI)技术所取代。本文将深入探讨自动化测试和AI在软件测试中的应用,以及它们如何改变软件测试的未来。我们将通过数据分析、科学研究和逻辑推理来揭示这一趋势,并预测未来软件测试的发展方向。
16 1
|
3天前
|
机器学习/深度学习 人工智能 算法
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
服装识别系统,本系统作为图像识别方面的一个典型应用,使用Python作为主要编程语言,并通过TensorFlow搭建ResNet50卷积神经算法网络模型,通过对18种不同的服装('黑色连衣裙', '黑色衬衫', '黑色鞋子', '黑色短裤', '蓝色连衣裙', '蓝色衬衫', '蓝色鞋子', '蓝色短裤', '棕色鞋子', '棕色短裤', '绿色衬衫', '绿色鞋子', '绿色短裤', '红色连衣裙', '红色鞋子', '白色连衣裙', '白色鞋子', '白色短裤')数据集进行训练,最后得到一个识别精度较高的H5格式模型文件,然后基于Django搭建Web网页端可视化操作界面,实现用户在界面中
20 1
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
|
16天前
|
人工智能 自然语言处理 API
人工智能大模型之开源大语言模型汇总(国内外开源项目模型汇总)
人工智能大模型之开源大语言模型汇总(国内外开源项目模型汇总)
人工智能大模型之开源大语言模型汇总(国内外开源项目模型汇总)
|
5天前
|
自然语言处理 安全 API
AppFlow:让大模型当您的微信公众号客服
使用阿里云AppFlow和通义百炼,无需编码即可将大模型如通义千问接入微信公众号。首先确保公众号已认证,然后在通义百炼导入文档创建知识库。在AppFlow中选择“微信公众号大模型自动回复”模板,添加微信凭证和百炼API密钥。配置微信公众平台的服务器地址、Token和EncodingAESKey,并设置IP白名单。完成这些步骤后,用户在公众号的提问将由大模型自动回答。AppFlow简化了集成过程,助力高效智能客服建设。
1157 0
|
6天前
|
机器学习/深度学习 消息中间件 人工智能
人工智能平台PAI产品使用合集之vLLM是否支持模型长度扩展
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6天前
|
机器学习/深度学习 人工智能 Java
人工智能平台PAI产品使用合集之已经通过自定义镜像部署了一个模型,想要上传并导入其他模型,该如何操作
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6天前
|
机器学习/深度学习 数据采集 人工智能
人工智能平台PAI产品使用合集之在使用ARIMA模型预测时,目标是预测输出12个值,但只打印了5个值,是什么原因
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
12天前
|
机器学习/深度学习 数据采集 人工智能
人工智能:构建自定义机器学习模型的步骤与技巧
【6月更文挑战第25天】构建自定义机器学习模型涉及明确问题、数据收集预处理、特征工程、模型选择训练、评估优化及部署监控。关键技巧包括选择适配的算法、重视数据预处理、精巧的特征工程、有效评估优化和适时的模型更新。通过这些步骤和技巧,可提升模型性能与泛化能力。
|
17天前
|
人工智能 自然语言处理 机器人
【AIGC】大型语言模型在人工智能规划领域模型生成中的探索
【AIGC】大型语言模型在人工智能规划领域模型生成中的探索
43 6
|
17天前
|
传感器 机器学习/深度学习 人工智能
多模态大模型代表了人工智能领域的新一代技术范式
多模态大模型代表了人工智能领域的新一代技术范式
15 2

热门文章

最新文章