意图识别是任务型多轮对话中的关键环节,用于分析并判断用户意图,有效引导对话流程、提高对话效率、增强用户体验。文章介绍了单轮和多轮意图识别的原理、方法及难点,包括基于规则、向量检索、深度学习、大模型及融合方案等,并探讨了如何通过上下文语义分割、槽位关联、指令数据集构建等方式提升识别准确率,适合想要学习大模型应用的小白和程序员参考。
#什么是意图识别?
意图识别
简介:在任务型多轮对话中,意图识别是一个关键的环节。意图识别是指从用户输入的对话内容(如文本、语音等形式)中分析并判断出用户的目的或者意图。意图识别的具体作用如下:
- 有效引导对话流程:它能够帮助对话系统理解用户想要做什么,从而决定对话的走向。如果系统正确识别了用户是要查询订单状态,就可以引导用户提供订单相关的信息,如订单号等,以便完成查询任务。
- 提高对话效率:准确的意图识别可以避免系统对用户的回答驴唇不对马嘴。比如,当用户意图是退货,系统不会误解为换货而提供错误的引导步骤,从而让用户更快地得到想要的服务,减少对话的轮数。
- 增强用户体验:当系统能够精准理解用户意图时,用户会感觉自己的需求被重视和理解。相反,如果意图识别错误,用户可能会因为反复解释或者得不到正确的服务而感到沮丧。
意图识别示例
例如,在一个智能客服对话系统中,用户输入“我想要查询一下我的订单状态”,系统通过意图识别就能判断出用户的意图是查询订单状态。
#意图识别的难点:
目前业界相对较小的模型,如果对话轮数过长,例如超过3轮,且每轮对话字数较多,模型回复容易陷入混乱,回复质量降低。
解决思路1:一种粗暴的解决办法是删掉历史对话,仅保留最新的,但这样又会影响对话的流畅度。
解决思路2:基于上下文语义分割 +基于上下文槽位关联。
解决思路3:基于多路多轮数据的微调。
#单轮意图:
单轮意图识别
简介:单轮意图识别,是指仅针对用户的单句输入进行意图判断。例如,在一个问答系统中,用户问“今天的天气如何?”,系统只需要分析这一个句子,就能识别出用户是想查询天气信息的意图。它聚焦于独立的、一次性的用户表达,不考虑之前或之后可能的对话内容。
单轮意图识别相对简单,因为它只需要处理一个句子的语义理解。通常可以通过关键词匹配、简单的语法分析和基于单句的机器学习模型来实现。
单轮意图识别示例
例如,通过查找句子中是否存在“天气"“查询”等关键词来判断意图,不需要考虑上下文对话的变化和逻辑连贯性。
下面我们来介绍5种常见的方案:基于规则、向量检索、深度学习、大模型、融合方案。
01
基于规则的意图识别
基于规则的方案往往需要应用到分词器,例如jieba、hanlp等。通过分词后,会返回预先设置的关联短语或词汇(没命中返回空即可),然后返回意图。
02
向量检索意图识别
向量检索的目的是将“输入query”匹配到知识库里面与之相似的“其他query”。这里需要使用embedding(向量化)和retrival(检索)。向量化的模型很多,例如bge、simcse和promcse等;检索的工具也有很多,例如Faiss、Milvus和Hologres等。通过向量检索后,会返回top3“相似query”及相似度值。
03
深度学习意图识别
使用深度学习的方法来做意图识别是一种常见的方法,一般是文本分类深度学习框架,例如:预训练模型(ROBERTa、ALBERT等)+TextCNN。这里需要人工设定分类类别和标注数据,然后使用分类模型训练与推理部署。数据集构建如下:
04
大模型意图识别
使用大模型的方法来做意图识别是一种越来越流行的方法,这里分为2种,第一种不需要微调,直接使用prompt的形式给到大模型,然后大模型返回意图结果;另一种需要微调,意味着需要人工标注一定量的数据,然后给大模型微调训练。
1、Zero Shot/Few Shot
1 query = “xxxxxxxxxx"
2 prompt ="“"你是一个NLP专家,请根据以下多个意图的描述,确保将[输入]映射到其中一个意图上。
3 意图类别有:A001|A002|A003|A004 A005。
4 各个意图的描述和关键词如下,其中【】为意图名称,()为关键词:
5【A001】: xxxxxxxxxx,包含关键词(xxxxxxxxxx);
6【A002】: xxxxxxxxxx,包含关键词(xxxxxxxxxx);
7【A003】: xxxxxxxxxx,包含关键词(xxxxxxxxxx);
8【A004】: xxxxxxxxxx,包含关键词(xxxxxxxxxx);
9【A005】: xxxxxxxxxx,包含关键词(xxxxxxxxxx);
10 注意,优先匹配关键词,最终输出上述意图列表中的一个意图,不要输出推理过程,
11 示例如下:
12 [翰入]: xxxxxxxxxx 。[輸岀]: xxxxxxxxxx
13 [翰入]: xxxxxxxxxx 。[輸岀]: xxxxxxxxxx
14 [翰入]: xxxxxxxxxx 。[輸岀]: xxxxxxxxxx
15 [输入]:{Ss}“…”%(query)
2、SFT
如果对准确率有非常高的要求,且有人工标注资源,这个时候使用大模型进行微调会是一个比较不错的选择。使用大模型微调需要注意以下几点:
a.大模型选俄择;
b.文本长度设置;
c.标注数据的质量和数量。
SFT数据如下:
1 sample = {
2 “human”: “你是一个NLP专家,请根据以下多个意图的描述,确保将[输入]映射到其中的一个意图上。/n意图类别有:A001 | A002 | A003 | A004 | A005。/n[输入]:xxxxx。”,
3 “assistant”:“A001”
4 }
5 print(sample [“human”])
6 # 你是一个NLP专家,请根据以下多个意图的描述,确保将[输入]映射到其中的一个意图上。
7 # 意图类别有:A001 | A002 | A003 | A004 | A005。
8 # [输入]:xxxxx。
05
融合方案
在实际项目中,意图识别往往并不能被单一模型完成,因为准确率、业务逻辑、上线效率等都是需要考虑的因素。所以,一个串并行同时存在且进行排序的意图框架往往是我们所需要的。
这里,我们注意2点:先后关系和意图排序,可以根据实际需求采取不同的策略。例如,通过关键词可以快速召回意图,可以放置在最前面;通过大模型配置prompt召回部分意图等。
#多轮意图:
多轮意图
简介:多轮意图识别,涉及对用户在一系列对话轮次中的意图进行识别。多轮意图识别要复杂得多,它需要考虑对话的历史信息,包括之前轮次的意图、对话的主题转移、用户情绪的变化等诸多因素。多轮意图识别系统需要能够及时捕捉到这种意图的转变,并准确理解每个意图在整个对话流程中的作用。 多轮意图广泛应用于复杂的对话系统,如智能客服、智能聊天机器人等。在智能客服场景中,用户和客服之间的对话往往是多轮的,涉及产品咨询、故障报修、投诉处理等多种复杂的意图,需要多轮意图识别来提供精准的服务。在智能聊天机器人用于情感陪伴等场景时,也需要多轮意图识别来理解用户情绪的变化和聊天主题的转换,从而给出更合适的回应。多轮意图识别示例
比如在一个智能客服对话场景下,用户先问“我买的商品坏了怎么办?",客服回答后,用户又问“那维修需要多长时间?”,多轮意图识别需要综合考虑这两轮对话,判断出用户最初是想了解商品损坏后的解决方案,后续是想知道维修时长,并且理解这两个意图之间的关联。
01
Pipeline
在pipeline的多轮对话中,仅仅使用当前query往往不一定能给出正确的意图,还需要查看历史的对话信息。
如何判断上下文是否关联?
这里主要通过2种途径,第1种是基于上下文语义上的,第2种是上下文槽位信息的。
1、基于上下文语义分割
1 User:前天武汉的天气?
2 System:前天武汉的天气是15-25度,xxxxxx。
3 User:那北京的呢?
4 System:前天北京的天气是10-20度,xxxxxX。
关于如何实现上下文语义分割,当前主要是基于深度学习或大模型方法。如果使用深度学习方法,可以基于NER算法框架来实现,从而来判断上下文衔接是否可分;如果使用大模型,需要标注一少部分数据,再微调大模型,从而来判断上下文是否可分。
2、基于上下文槽位关联
如果将"那北京的呢?“改成"北京”,仅从语义上看,并不能判断User是否想问"前天北京的天气?",但是通过槽位(地点)可以判断需要继承用户想问天气的意图。
1 User:前天武汉的天气?
2 System:前天武汉的天气是15-25度,xxxxxX。
3 User:北京
4 System:前天北京的天气是10-20度,xxxxxX。
如果仅通过槽位进行上下文关联时,有时候会出现错误,这也是过往仅基于槽位多轮意图的问题。
02
大模型End-2-End方案
指令数据集构建:
在端到端的多轮意图中,构建指令数据集可能是工作量最大的一部分,不过好在大模型在多轮意图上的理解能力是可以随着指令数据集的扩展来进行迭代优化的,当然前提是大模型基座的能力是ok的。下面,我介绍一种多轮意图指令数据集构建的方法:
1 sample = {
2 “human” : "你是一个NLP专家,请根据历史对话信息,来判断当前对话[USER-current]的意图。
3 “assistant” : “A001”
4 }
5 print(sample[“human” ])
6 # 你是一个NLP专家,请根据历史对话信息,来判断当前对话[USER-current]的意图。
7 # 意图类别有:A001 | A002 | A003 | A004 | A005。
8 #历史对话信息如下:
9 # [USER]: xxxxxxx
10 # [ROB0T]:xxxxxxx
11 # [USER】: xxxxxxx
12 # [R0B0T]:xxxxxxx
13 # 当前对话如下:
14 # [USER-current】: xxxxxxx
如果没有历史对话信息,可以构建这样的指令数据:
1 sample = {
2 “human” : "你是一个NLP专家,请根据上下文的对话信息,来判断当前对话[USER-current]的意图。
3 “assistant” : “A001”
4 }
5 print(sample[“human” ])
6 # 你是一个NLP专家,请根据上下文的对话信息,来判断当前对话[USER-current]的意图。
7 # 意图类别有:A001 | A002 | A003 | A004 | A005。
8 #历史对话信息如下:无历史对话。
9 # 当前对话如下:
10 # [USER-current】: xxxxxxx
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包:
- ✅ 从零到一的 AI 学习路径图
- ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
- ✅ 百度/阿里专家闭门录播课
- ✅ 大模型当下最新行业报告
- ✅ 真实大厂面试真题
- ✅ 2026 最新岗位需求图谱
所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》,下方扫码获取~
① 全套AI大模型应用开发视频教程
(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
② 大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
③ 大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
④ AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
⑤ 大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
⑥ 大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
以上资料如何领取?
为什么大家都在学大模型?
最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!
不出1年,“有AI项目经验”将成为投递简历的门槛。
风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。