探索LLM的意图识别能力

news2025/1/13 3:09:50

不可否认的是,LLM(例如 OpenAI 的 GPT 系列)将在不断发展的对话式 AI 领域发挥重要作用。 关于使用 ChatGPT 执行各种任务的帖子和文章不计其数。 GPT 有几个关键功能值得进一步探索,例如其摘要、分类和生成文本的能力。 其中,出现了一个问题——“我们能否使用LLM来有效取代为大多数基于意图的聊天机器人提供支持的传统机器学习模型”?

当我们想到LLM时,我们可能会想到一个没有明确定义的真正“意图”的未来。 它也许能够处理严格的、预先计划的结构之外的任何要求。 然而,截至今天,我们的重点是LLM可以适应并增强当前架构。 考虑到这一点,我们通过将LLM的分类能力与现实生活中的聊天机器人进行比较,采用了宽松的科学方法。

首先,我们需要接受没有一个聊天机器人可以完美地识别意图,因此已经存在错误分类的因素。 长篇大论、多重意图和许多其他事情都可能导致用户走上错误的道路。 我们投入了大量时间来识别和减少这些类型的对话。 也许LLM可以帮助完成这个过程?

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包

在我们的基准研究中,我们从生产客户服务聊天机器人中获取了数据,看看我们是否可以使用LLM来改进其意图识别。 为了实现基准比较,我们随机抽取了 400 个不同长度的真实用户输入,并用适当的意图手动标记这些输入。 接下来,我们针对机器人平台的机器学习模型运行了那些以前未见过的话语——准确率达到 60.5%。 虽然这可能看起来不太准确,但我们的聊天机器人解决方案也大量使用句法语言规则作为机器学习模型之上的额外层。 另一件需要考虑的事情是,人工标记也不是万无一失的,进行多次标记会减少那里的错误或偏差。 对于我们的小规模实验,我们只进行了一次标记。

常规 ML 模型的汇总结果:使用机器人平台的 ML 模型,涵盖 75 个意图的 9000 个训练问题返回 60.5% 的准确率

1、提示设计

我们写出了 75 个意图名称,并为每个意图添加了大约 5 - 7 个简洁的“主题”。 这些指令与用户话语一起在提示中传递以进行分类。 下面可以看到这些意图主题描述的示例。

我们还添加了一些护栏提示,以确保它仅从给定列表中选择一个意图,如果不确定,则返回“UNSUPPORTED”。 还有一些关于选择某些意图作为优先于其他意图的规则。

初步结果令人印象深刻,它成功预测了 64.5% 的话语意图,击败了常规 ML 模型。

提示设计的总结结果:使用 GPT-3.5 的提示设计可达到 64.5% 的准确率,其中包含 375 个“主题”摘要,涵盖 75 个意图,每个意图定义 4-6 个主题。

分类提示设计的思考

这种方法似乎是识别用户意图的一种非常有效的方法,但也有一些缺点。 对于每个话语,我们每次都需要提供完整的意图列表及其主题描述。 每个 API 调用的成本可能只有几分之一美元,但如果乘以数千个对话,加起来就可能是一个非常大的数字。

我们还发现“审查和改进”结果具有挑战性。 例如,如果特定的用户话语失败,那么在主题描述中要更改的内容并不总是显而易见的。 虽然维护常规的 ML 训练短语也是如此,但提示方法似乎更像是猜测,而不是正常的。

此外,该模型也无法返回其预测的“置信度”或“概率”水平。 我们发现,任何询问置信度百分比或前 3 个建议列表的尝试都会大大降低其准确性。

2、微调

微调(fine tuning)是一种向预训练模型添加另一层额外信息的方法,以便它可以“记住”一些事实。 当我们使用微调层对用户输入进行分类时,我们准备了带有模式的数据来告诉模型返回(完成)我们的分类。 在撰写本文时,微调仅适用于基本 GPT-3 模型 - Davinci 是其中最有能力的。

最初,我们使用了在提示方法中效果很好的主题。 370 个主题中的每一个及其相应的意图名称都用于创建自定义的微调达芬奇模型。 我们可以在下面看到一些微调数据的示例。

该图显示了用于微调的 json 结构以及简短的主题示例

我们的基准测试结果是 44.25% 的准确率。 这并不奇怪,因为我们没有为模型提供太多可以“学习”的内容来对用户消息的意图进行分类。 我们还发现该模型会返回看似合理但虚构的意图名称,其格式与提供给它的名称类似。

微调主题的摘要结果:使用经过微调的 Ada 模型,准确率达到 44.25%,该模型包含 375 个“主题”摘要,涵盖 75 个意图,每个意图定义 4-6 个主题。

作为第二阶段测试,我们准备了用于 ML 模型的所有现有训练数据,并创建了另一个经过微调的 GPT-3 模型。 这相当于 9000 多个训练问题,因此为模型提供了更多现实生活中的示例。 现在,根据我们对 400 条以前未见过的话语进行的基准测试,它的预测正确率为 65%。 我们还发现它没有发明新的意图名称。 使用经过微调的达芬奇模型时,准确率提高到 70%。

微调训练短语的总结结果:使用经过微调的 Ada 模型(包含涵盖 55 个意图的 9000 个训练短语),准确率达到 65%;使用经过微调的达芬奇模型,包含涵盖 55 个意图的 9000 个训练短语,准确率达到 70%

关于分类微调的思考

这种方法需要将数据准备成“提示”和“完成”模式。 根据特定模型的代币使用情况,创建微调模型需要一次性付费。 与使用常规 GPT-3 基本模型相比,向该微调模型发送后续查询会产生更高的令牌费用。

我们发现的一个缺点是,我们无法在对用户的话语进行分类之前轻松添加这些额外的“规则”。 有一个相对较新的提示结构用于将指令与输入分开,称为 ChatML,但基本 GPT-3 模型似乎尚不支持此结构。

3、嵌入

最后一种方法称为嵌入(embedding), 它是一种将单词和句子转换为数字(向量)以比较相似度的方法。 嵌入向量通常用于语义搜索和从大型语料库中检索相关答案。 该过程涉及从文本块创建嵌入文件。 在大多数情况下,OpenAI 建议使用他们最快且最便宜的模型 Ada 来实现此目的。

创建嵌入时,它本质上是创建一个数字(向量)文本文件,可以在 OpenAI 基础设施之外下载和使用。 如果它非常大,可能需要将其集中托管在专用矢量数据库上。

我们选择嵌入大约 9000 个话语的训练数据。 因此,每个训练短语都会被嵌入,然后将 400 个测试话语中的每一个与这些嵌入进行比较以了解相似性。

结果是 60% 的准确率,实际上与常规 ML 模型本身相同。

嵌入的总结结果:使用 Ada 模型进行嵌入,具有涵盖 55 个意图的 9000 个训练短语,准确率达到 60%

关于分类嵌入的思考

一旦嵌入了自定义数据,拥有一个不会过期或产生使用费用的文件就很有吸引力。 然而,与嵌入数据进行比较的短语必须首先使用相同的模型嵌入。 嵌入似乎是一种基于语义相似性返回事实响应的可靠方法。 它不会“发明”新的意图,因为它会忠实地返回所提供的任何文本。 根据最可能的意图返回相似度分数。 然而,我们观察到的数字非常接近,有时在 0 到 1 的范围内仅相差 0.001。

在所有 3 种方法中,这种方法似乎是最复杂的,并且并没有比向提示本身添加简单主题产生更好的结果。

4、结束语

虽然我们的测试规模有限,但它们确实揭示了LLM如何适合意图分类。 为了更好地评估这些方法,让我们回到最初的问题“我们是否可以使用LLM来有效取代为大多数基于意图的聊天机器人提供支持的传统机器学习模型?”

微调提供了 70.5% 的最佳准确率,比常规 ML 模型高出 10%。 然而,这必须与维持训练短语和无法实施意图“优先”规则或“后备”响应的限制相平衡。 还值得注意的是,达芬奇模型的训练时间为 2 小时,成本为 21 美元。

嵌入方法提供的结果通常与传统机器学习模型的准确性一致,但它们仍然需要大量精选的训练短语。 从我们的测试来看,它们似乎不适合更好的意图识别或改进的工作流程。 事实上,对训练问题进行更改比在机器人平台本身上重新训练“内置”机器学习模型需要更长的时间。

然而,我们可以看到使用提示设计方法的用例。 创建意图列表相对较快,无需使用任何其他数据或 API。 它确实可以加速构建第一个迭代聊天机器人,或者可能是 PoC 或演示。 不需要预先拥有大量训练数据,任何人都可以填写“主题”来描述意图的目的。 对于这种情况,我们认为更少的意图很可能会带来更高的准确性,而低使用率将使其成为一种具有成本效益的选择。 通过护栏“规则”来“指导”分类的能力也是非常有益的。

还值得考虑的是,如果 API 在任意时间段内不可用,任何使用外部 LLM 作为意图分类“管理器”的聊天机器人都将遭受巨大损失。 在本文中,我们仅关注 OpenAI/GPT,但当然也可以使用其他 LLM,它们可能具有不同的可靠性因素,或者它们可能与我们测试过的那些不同,适合此任务。

我们还注意到,在所有测试的许多情况下,虽然意图被错误分类,但提出的意图却非常合理且合理。 例如,这些话语包含多种意图,或者它们在没有明确说明的情况下表明了特定的意图——这是人类(目前)更擅长的!


原文链接:LLM的意图识别能力 - BimAnt

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

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

相关文章

U盘误删的文件怎么找回?5个宝藏方法分享!

“我想问问大家,在使用u盘时如果不小心把很重要的文件删除了应该怎么办呀?有什么简单又快速的U盘文件恢复方法可以推荐吗?” U盘作为一种便携式的存储设备,在日常工作中扮演着重要的角色。然而,如果不小心误删了U盘中的…

SpringBoot:自动配置报告

自动配置报告demo:点击查看 LearnSpringBoot03AutoConfig 点击查看更多的SpringBoot教程 一、application.properties代码 #开启springboot debug模式 #自动配置报告 #Positive matches: 自动配置类启用了(自动配置类匹配上了)&#xff0c…

hexo和github.io博客的搭建

简要: 最近在牛客网上看到有很多应届毕业生大佬的求职简历上都写上了自己的博客地址,并且在acwing上看到图图佬,铅笔佬也有自己的博客地址,大部分都采用了自己搭建博客的方式,而不是用脏乱差的csdn来写博客。所以我也采…

电脑服务器离线安装.net framework 3.5解决方案(错误:0x8024402c )(如何确定当前系统是否安装NET Framework 3.5)

问题环境: 日常服务的搭建或多或少都会有需要到NET Framework 3.5的微软程序运行框架,本次介绍几种不同的安装方式主要解决运行在Windows 2012 以上的操作系统的服务。 NET Framework 3.5 是什么? .NET Framework是微软公司推出的程序运行框架…

利用LLM大模型生成sql的深入应用探究

Chat2DB 是一款有开源免费的多数据库客户端工具,和传统的数据库客户端软件Navicat、DBeaver 相比 Chat2DB 集成了 AIGC 的能力,能够将自然语言转换为 SQL,也可以将 SQL 转换为自然语言,可以给出研发人员 SQL 的优化建议,极大地提升…

YOLO-World——超级轻量级开放词汇目标检测方法

前言 目标检测一直是计算机视觉领域中不可忽视的基础挑战,对图像理解、机器人技术和自主驾驶等领域具有广泛应用。随着深度神经网络的发展,目标检测方面的研究取得了显著进展。尽管这些方法取得了成功,但它们存在一些限制,主要体…

Python __pycache__文件

pycharm配置位置 几个基本概念 源代码(source code) 我们每天编写的Python、Java、C等代码通常指的就是源代码,源代码的特点是人类可读。但是CPU只能读懂二进制,看不懂我们写的源代码,因此还需要进行编译&#xff08…

vue2 自定义指令 v-highlight 文本高亮显示分享

简单分享一个文本高亮显示的自定义指令,主要分两部分: 1、代码实现:在 main.js 文件中添加一个自定义指令,实现搜索时文本高亮显示,代码如下: const highlightText (el, searchText) > {const textCo…

安装PyInstaller的保姆级教程

一、安装PyInstaller之前首先要安装Python,小编这里安装的是Python3.9,目前(2024/2/6)匹配到的最高版本的PyInstaller的版本为6.3.0。需要安装Python的小伙伴可以去这里安装python详细步骤(超详细,保姆级&a…

黑马头条 Kafka

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 知…

SpringBoot-基础篇03

之前搭建了整个开发环境实现了登录注册,springBoot整合mybatis完成增删改查,今天完成分页查询,使用阿里云oss存储照片等资源,后期会尝试自己搭建分布式文件系统来实现。 一,SpringBootMybatis完成分页查询 1&#xff…

选择大语言模型:2024 年开源 LLM 入门指南

作者:来自 Elastic Aditya Tripathi 如果说人工智能在 2023 年起飞,这绝对是轻描淡写的说法。数千种新的人工智能工具被推出,人工智能功能被添加到现有的应用程序中,好莱坞因对这项技术的担忧而戛然而止。 甚至还有一个人工智能工…

LLMs之miqu-1-70b:miqu-1-70b的简介、安装和使用方法、案例应用之详细攻略

LLMs之miqu-1-70b:miqu-1-70b的简介、安装和使用方法、案例应用之详细攻略 目录 miqu-1-70b的简介 miqu-1-70b的安装和使用方法 1、安装 2、使用方法 miqu-1-70b的案例应用 miqu-1-70b的简介 2024年1月28日,发布了miqu 70b,潜在系列中的…

Java面向对象 创建类 创建对象

目录 创建类类的属性类的方法实例分析 创建对象创建Test类测试分析 创建类 类的属性 属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。 属性定义格式: [修饰符] 属性类型 属性名 [默认值] ;类的方法 方法用于定义该类或该类实例…

【ARM 嵌入式 编译系列 2.7 -- GCC 编译优化参数详细介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 GCC 编译优化概述常用优化等级-O1 打开的优化选项-O2 打开的优化选项-O3 打开的优化选项-Os 打开的优化选项优化技术使用优化选项的注意事项GCC 编译优化概述 GCC(GNU Compiler Collection)包含了用于C、C++、Objective-C、Fort…

大模型综述

1.概念 大模型是指人工智能预训练大模型,具有海量参数和复杂架构,用于深度学习任务的模型,拥有强大的处理能力和表征能力,以数据算力为支撑,借助数据管理、模型训练、评估优化、服务平台、插件等辅助工具,…

Windows显示空的可移动磁盘的解决方案

123  大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式…

macbookpro和macbookair的区别?cleanmymac 怎么清理mac空间

苹果mac air和pro区别有:1、air采用了轻薄的设计,重量相对较轻,便于携带,而pro更加注重性能,所以比较重;2、air通常搭载较低功耗的处理器内存和存储容量相对较小,而pro配备了更强大的处理器、更…

【最佳实践】el-admin多表CRUD最佳实践,不允许你只会搞单表CRUD了(源码错了,顺带升级了)

【最佳实践】el-admin多表CRUD最佳实践,不允许你只会搞单表CRUD了,(源码错了,顺带升级了) 一、el-admin前端通用核心组件二、如何使用?2.1 新建组件2.2 修改对象属性标记2.3 修改四类组件引用标记2.4 生效 …

HarmonyOS鸿蒙ArkTS证件照生成模板(适合二次开发,全套源码版)

预览效果 部分代码 开发语言 HarmonyOS 鸿蒙 ArkTS语言 (Stage模型) 备注 一键生成,自带证件照数集, 为开发者带来二次开发和学习体验, 在这祝福开发者们使用愉快。 使用方法 下载后通过DevEco Studio开发工…