今天就遇到有点儿dt的问题,利用大模型顺利通了自定义的工具调用(并没有用到tools功能,而是通过prompt强制输出),单个单个的没问题哈,但是多个一起就出现问题了
我说“关闭电脑PC1, 打开第2台电脑” 它看不懂了,但我反过来说“打开第2台电脑,关闭电脑PC1”,它倒是很机智,顺利找到了对应的主机id并调用了正确的工具,反正我是一脸懵逼,这到底是个什么鬼?毕竟是个黑盒,找到原因可能难但问题必须解决撒,只能另辟蹊径(PS这个不是恶作剧,而是一个云桌面的运维后台,我正研究如何利用AI提升效率)
1 问题背景:自然语言指令处理中的困境
在多任务处理的场景下,用户可能会提出一些包含多个动作的指令,比如:
- “关闭电脑PC1,打开第2台电脑。”
- “打开第四台电脑,关闭电脑PC1。”
通过实际测试,发现模型在面对这些复杂指令时,有时无法正确理解和执行所有任务。例如:
- 当用户要求“关闭电脑PC1,打开第2台电脑”时,模型可能无法正确调用两个工具来分别执行这两个操作。
- 但当指令顺序被调整为“打开第四台电脑,关闭电脑PC1”时,模型能够正确地按顺序调用工具,并且完成了用户的需求。
编辑
这种现象提示我们,模型在解析和执行指令时受到指令语序和结构的影响。因此,我们需要一种方法来更好地解析用户的复杂指令,并将其转换为具体的可执行操作。
2 解决方案:通过 LLM 解析层进行指令分解
为了让 LLM 更好地处理这些复杂的自然语言指令,建议增加一个专门的解析层,用于将原始的自然语言需求转换为多个明确的、可执行的步骤。该解析层可以通过 LLM 来实现,具体功能如下:
1. 分解复杂指令为多个步骤
用户的自然语言指令往往包含多个动作,这些动作有时是并行的,有时是按顺序执行的。通过 LLM 解析层,我们可以将复杂的指令进行拆解。例如:
- 用户输入:“关闭电脑PC1,打开第2台电脑。”
- 解析层输出:
- Step 1: 关闭电脑PC1
- Step 2: 打开第2台电脑
通过这种方式,每一个步骤都变得更加明确,可以独立执行,并且避免了模型对多个并列任务的混淆。
2. 明确操作类型与对象识别
解析层可以帮助模型更好地理解每个指令中的动词(如“关闭”或“打开”)及其作用对象(如“电脑PC1”或“第2台电脑”)。例如:
- 用户输入:“打开第四台电脑,关闭电脑PC1。”
- 解析层输出:
- Action 1: 打开 -> 电脑PC4
- Action 2: 关闭 -> 电脑PC1
通过这种明确的操作类型和对象识别,模型可以清晰地理解每个操作需要作用的目标,并根据目标生成正确的操作命令。
3. 处理任务的依赖关系
在复杂的任务环境中,某些操作之间存在依赖关系。例如,可能需要先关闭一台电脑再打开另一台。这时,解析层可以识别这些依赖关系,并为模型生成有序的执行步骤。对于顺序不明的任务,解析层可以判断是否需要并行执行任务,或者是否需要调整任务的顺序。
4. 自然语言转为工具命令
通过解析层,模型可以将复杂的自然语言指令转化为系统所需的结构化工具命令。以关闭和打开电脑为例,经过解析的步骤最终可以生成具体的 API 调用或命令行操作,如:
- Command 1:
关闭(PC1)
- Command 2:
打开(PC2)
这种方法将自然语言需求转化为明确的系统命令,使得多任务处理更加高效且可控。
3 实践示例
假设用户发出了如下复杂指令:
- 用户输入:“请先关闭PC3,然后开启PC1和PC4,最后关掉PC2。”
通过 LLM 解析层,这个复杂的需求可以被拆解为多个明确的任务步骤:
- Step 1: 关闭 PC3
- Step 2: 开启 PC1
- Step 3: 开启 PC4
- Step 4: 关闭 PC2
模型再根据这些步骤依次执行任务,或者将并行任务(如开启PC1和PC4)同时处理,最终确保任务按预期完成。
4 如何设计解析层
要设计一个高效的 LLM 解析层,需要注意以下几个关键点:
- 鲁棒的指令拆解能力:解析层需要能够理解复杂的自然语言指令,并准确提取出任务的关键动词和作用对象。比如,“关闭”“打开”等动词以及“PC1”“PC4”等对象的识别必须准确无误。
- 任务依赖关系的识别:解析层必须能够处理任务之间的依赖关系,确保前后顺序的合理性。在需要时,能够区分并行任务与串行任务。
- 应对模糊指令的能力:用户的自然语言可能包含模糊表达,如“打开所有电脑”,解析层需要能够处理这种模糊需求,推理出上下文中的具体执行对象。
- 灵活性与适应性:解析层还需要能够应对不同领域的任务需求,具有足够的灵活性来解析不同语境下的指令。
5 总结
通过增加一个 LLM 解析层,可以极大提高多任务处理场景中指令解析的准确性和执行效率。它不仅可以将复杂的自然语言指令拆解为多个明确的操作步骤,还能够根据任务间的依赖关系调整顺序,生成具体的工具命令,确保任务的正确执行。