面试准备 · NAB 墨尔本 · AI Scientist
意图识别
弄清楚用户到底想要什么,并把它转化成系统可以执行的东西。两个页面:先从零讲清这门功夫,再看它在 Mines Financial 项目中究竟是怎么实现的 —— 包括那些缺失的部分。
这个主题在这里为何重要
它就是职位描述中排在第一条的职责,只是换了一种说法。
NAB 的招聘广告要找的人,需要构建 智能体推理循环、工具使用接口、记忆系统、上下文管理以及编排逻辑。意图识别正是前两者之间的铰链:它是把一句话转化成「该调用哪个工具」这一决策的那一步。上面这五件事,每一件都依赖于它做对。
它还直接连接到广告最看重的两个主题。它的失效模式是一个 护栏 问题 —— 意图判断错了,不是写出一段糟糕的文字,而是执行了一个错误的动作 —— 而你要判断它到底管不管用,则是一个 评估 问题,有它自己的精确率、召回率和混淆矩阵。
两个页面
按顺序读。第一页搭起第二页要用的词汇体系。
概念本身 —— 从零讲起,不预设任何背景
什么是意图识别,为什么智能体离开它就无法运作,以及如何把它设计好:从业务动作而不是话题里挑意图,只有当后续执行不同时才拆分,用与相邻意图的边界来定义每一个意图。然后是三种实现方式 —— 训练一个分类器、让 LLM 来分类,或者干脆不要分类器、让意图隐含在工具选择里。
后半部分讲测量:为什么准确率具有误导性,精确率和召回率各自告诉你什么,混淆矩阵如何指出该修哪一对具体的意图,从意图一路到任务成功的四个层次,以及对一个能够行动的智能体来说盖过所有指标的那一个 —— 错误动作率。
- 包含 —— 粒度测试、include/exclude 式定义、层级路由、未知与歧义意图、把多意图当作任务规划来处理,以及如何构建一个不会自我美化的测试集
- 结尾是 —— 把整门功夫串成一条链,并附上所有用到术语的词汇表
在本项目中 —— 实际跑起来的是什么
Mines Financial 里并没有一个叫 intent_classifier.py的文件。它有的,是一个返回四个互相独立布尔值的节点,以及一组读取这些值的确定性边。本页按执行顺序走完每一个决策点 —— 从历史压缩,到正则槽位抽取与追问消解,再到路由器本身、澄清中断、按公司维度的查询拆解,以及两个带上限的重试循环。
它同样覆盖那些缺失的部分,以及为什么这些缺失是站得住脚的:所有路由决策都没有置信度,没有针对不支持公司的显式检查,澄清也没有循环计数器。还有那条诚实的脚注 —— 路由评估在某种程度上是在给它自己的测试装置打分。
- 包含 —— 为什么槽位用正则而不是模型,为什么有一个决策被刻意推迟,以及为什么这里几乎没有一处是自由的工具选择
- 结尾是 —— 一段九十秒的口头回答,以及仍需补上的差距
贯穿两页的那条主线
第一部分给你这条链。第二部分展示的是同一条链,只不过挂上了本项目的名字。
| 通用步骤 | 在 Mines Financial 中 | 由谁决定 |
|---|---|---|
| 用户想要什么? | 来自以下节点的四个标志位: retrieve_decision | 一次 LLM 调用,结构化输出 |
| 它需要哪些信息? | 公司与财年 | 正则 —— 封闭词表 |
| 有没有缺失的东西? | needs_clarification → 图中断 | LLM 标志位,然后交给人 |
| 走哪条工作流? | 检索与/或新闻,并行执行 | 确定性边 |
| 要搜索多少次? | 每提到一家公司搜一次 | 第二次 LLM 调用,做拆解 |
| 用哪个工具? | 除计算器之外,处处是图的边 | 代码,只有一个 ReAct 智能体例外 |
| 它成功了吗? | 有据可依计数 → 置信度标签 | 对无支撑论断设阈值 |
从左往右读这张表,就是概念页;从右往左读,就是项目页。能在两个方向上自如移动 —— 从一般原则到具体实现,再从具体实现回到一般原则 —— 正是「听起来像查过资料的回答」与「听起来像亲身做过的回答」之间的分野。
需要准备好的问题
每个答案分别在哪里。
| 如果他们问 | 去看 | 开口先说 |
|---|---|---|
| 「你的智能体是怎么决定要做什么的?」 | 第 2 部分 | 是四个标志位,不是一个标签 —— 然后解释这为什么支持多意图 |
| 「如果从零开始,你会怎么设计意图?」 | 第 1 部分 | 从业务动作出发,而不是话题;只有当执行方式不同时才拆分 |
| 「你怎么知道路由做得好不好?」 | 先第 1 部分,再第 2 部分 | 混淆矩阵优于准确率;然后是那 8 个路由用例 |
| 「查询有歧义时会发生什么?」 | 两部分都看 | 置信度加上澄清策略;在这里,是一次真正的图中断 |
| 「如果用户一次问两件事呢?」 | 第 2 部分 | 两个维度已处理,一个没有 —— 以及为什么那一个在这里无害 |
| 「你会有哪些不同的做法?」 | 第 2 部分 | 路由置信度,而且要赶在加入任何具有写入能力的工具之前 |