AI 意图识别是指当用户输入指令时,这些指令通过感知模块传递到 Brain 模块,Brain 模块对其做出反应的过程,本质上是一种分类任务,用于识别并区分用户的具体意图。在单一智能体架构或复杂的多智能体系统中都至关重要。
通过一些常见的智能助手如 Siri、小爱同学等的例子可以更直观地理解,大型模型执行意图识别任务主要基于前期大量数据训练得到的模型,可通过专门训练或在特定任务中微调来优化,以适应特定领域需求。
在 AI 搜索引擎中,提升准确度的关键因素之一是意图识别。在联网检索前先对用户的 query 进行意图识别,目的是对用户的搜索意图进行分类,路由到合适的信息源,召回更精准的参考信息。
搜索意图有多种分类,如交易类(如搜索“笔记本电脑”以进行购买)、本地信息类(如搜索“附近的烤肉店”)等,对搜索意图进行分类可匹配更准的信息源和更好的回复提示词,很大程度提升检索召回率,保证搜索结果的个性化。目前主流的实现方案主要是通过提示词请求大模型完成识别,但准确度不够高,大模型提供的 Function Calling 能力也可理解为一种意图识别。
那么,什么是意图识别呢?当用户输入指令,这些指令通过感知模块传递到Brain模块,Brain模块需要对这些指令做出反应。这个过程在本质上是一种分类任务,即识别并区分用户的具体意图。无论是在单一智能体架构还是复杂的多智能体系统中,意图识别都扮演着至关重要的角色。让我们通过一些具体的例子来更直观地理解意图识别。比如我们常用的Siri、小爱同学,以及其他手机品牌搭载的智能助手。当我们向它们发出指令时,它们能够做出相应的反应。在这个过程中,意图识别起到了关键作用。具体来说,大型模型在执行意图识别任务时,主要是基于前期通过大量数据训练得到的模型。这可以是专门针对意图识别任务训练的大型模型,也可以是通过在特定任务中进行微调来优化的模型。通过微调,可以使模型更好地适应特定领域的任务需求。
上面讲到了,AI搜索的第一要义是准确度。影响搜索准确度的两个关键因素是:挂载的上下文信息密度+基座模型的智能程度。对于一个AI应用层产品,项目前期不太需要关心模型层面的事情,我们也没有太多精力去从模型层面进行突破。在基座模型的选择上,如果不考虑成本的问题,优先使用gpt-4-turbo / claude-3-opus等模型,暴力传输所有的检索内容,也能有比较好的效果。然而,有时候也会有比较大的幻觉问题。如果支持追问,对话轮数多了之后,会面临context长度的瓶颈问题。提升AI搜索引擎的准确度,另一个方向是优化检索得到的上下文信息密度。主要包括以下几个措施:1.意图识别Intent Detection在联网检索之前,先对用户的query进行意图识别(Intent Detection)。意图识别的目的是对用户的搜索意图进行分类,路由到合适的信息源,召回更精准的参考信息。首先,可以判断用户query,是否需要联网。
交易类:用户希望进行某种交易。例如:搜索“笔记本电脑”是为了找到电脑相关的产品信息和价格信息,并进入推荐的电商网站购买。本地信息类:用户希望根据特定地理位置查找本地信息。例如:搜索“附近的烤肉店”是为了找到附近的餐馆。还有其他一些分类,包括多级子分类。照样面临枚举无法穷尽的问题。对搜索意图进行分类,可以匹配更准的信息源和更好的回复提示词。比如搜索“笔记本电脑”,如果能提取出一个“shopping”意图,就可以挂载亚马逊/淘宝/京东等电商平台的信息源进行更小范围内的搜索,召回的信息会更加精准。同时也可以加载跟此类搜索意图匹配的提示词模板,来控制搜索后的大模型回答内容。意图分类是搜索前一个非常关键的步骤,可以很大程度提升检索召回率,通过不同的提示词模板总结输出,保证了搜索结果的个性化。目前主流的实现方案,主要是通过提示词,请求大模型完成识别。不管是成熟的大模型,还是微调的小模型,准确度都不够高。大模型提供的Function Calling能力也可以理解为一种意图识别。1.问题改写Query Rewrite