前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力

本文涉及的产品
多模态交互后付费免费试用,全链路、全Agent
简介: 本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。

今天就遇到有点儿dt的问题,利用大模型顺利通了自定义的工具调用(并没有用到tools功能,而是通过prompt强制输出),单个单个的没问题哈,但是多个一起就出现问题了

我说“关闭电脑PC1, 打开第2台电脑” 它看不懂了,但我反过来说“打开第2台电脑,关闭电脑PC1”,它倒是很机智,顺利找到了对应的主机id并调用了正确的工具,反正我是一脸懵逼,这到底是个什么鬼?毕竟是个黑盒,找到原因可能难但问题必须解决撒,只能另辟蹊径(PS这个不是恶作剧,而是一个云桌面的运维后台,我正研究如何利用AI提升效率)

1 问题背景:自然语言指令处理中的困境

在多任务处理的场景下,用户可能会提出一些包含多个动作的指令,比如:

  • “关闭电脑PC1,打开第2台电脑。”
  • “打开第四台电脑,关闭电脑PC1。”

通过实际测试,发现模型在面对这些复杂指令时,有时无法正确理解和执行所有任务。例如:

  • 当用户要求“关闭电脑PC1,打开第2台电脑”时,模型可能无法正确调用两个工具来分别执行这两个操作。
  • 但当指令顺序被调整为“打开第四台电脑,关闭电脑PC1”时,模型能够正确地按顺序调用工具,并且完成了用户的需求。

17368ae4857b4cb78c3cb91c02bd853c.png

image.gif 编辑

这种现象提示我们,模型在解析和执行指令时受到指令语序和结构的影响。因此,我们需要一种方法来更好地解析用户的复杂指令,并将其转换为具体的可执行操作。

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 解析层,这个复杂的需求可以被拆解为多个明确的任务步骤:

  1. Step 1: 关闭 PC3
  2. Step 2: 开启 PC1
  3. Step 3: 开启 PC4
  4. Step 4: 关闭 PC2

模型再根据这些步骤依次执行任务,或者将并行任务(如开启PC1和PC4)同时处理,最终确保任务按预期完成。

4 如何设计解析层

要设计一个高效的 LLM 解析层,需要注意以下几个关键点:

  1. 鲁棒的指令拆解能力:解析层需要能够理解复杂的自然语言指令,并准确提取出任务的关键动词和作用对象。比如,“关闭”“打开”等动词以及“PC1”“PC4”等对象的识别必须准确无误。
  2. 任务依赖关系的识别:解析层必须能够处理任务之间的依赖关系,确保前后顺序的合理性。在需要时,能够区分并行任务与串行任务。
  3. 应对模糊指令的能力:用户的自然语言可能包含模糊表达,如“打开所有电脑”,解析层需要能够处理这种模糊需求,推理出上下文中的具体执行对象。
  4. 灵活性与适应性:解析层还需要能够应对不同领域的任务需求,具有足够的灵活性来解析不同语境下的指令。

5 总结

通过增加一个 LLM 解析层,可以极大提高多任务处理场景中指令解析的准确性和执行效率。它不仅可以将复杂的自然语言指令拆解为多个明确的操作步骤,还能够根据任务间的依赖关系调整顺序,生成具体的工具命令,确保任务的正确执行。


相关文章
|
2月前
|
人工智能 监控 数据可视化
BISHENG下一代企业AI应用的“全能型“LLM软件
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
5月前
|
数据采集 算法 数据挖掘
CLIMB自举框架:基于语义聚类的迭代数据混合优化及其在LLM预训练中的应用
英伟达提出的CLIMB框架,是一种自动化优化大型语言模型(LLM)预训练数据混合的创新方法。通过语义嵌入与聚类技术,CLIMB能系统地发现、评估并优化数据混合策略,无需人工干预。该框架包含数据预处理、迭代自举及最优权重确定三大阶段,结合小型代理模型与性能预测器,高效搜索最佳数据比例。实验表明,基于CLIMB优化的数据混合训练的模型,在多项推理任务中显著超越现有方法,展现出卓越性能。此外,研究还构建了高质量的ClimbMix数据集,进一步验证了框架的有效性。
193 0
CLIMB自举框架:基于语义聚类的迭代数据混合优化及其在LLM预训练中的应用
|
6月前
|
人工智能 数据可视化 API
36.7K star!拖拽构建AI流程,这个开源LLM应用框架绝了!
`Flowise` 是一款革命性的低代码LLM应用构建工具,开发者通过可视化拖拽界面,就能快速搭建基于大语言模型的智能工作流。该项目在GitHub上线不到1年就斩获**36.7K星标**,被开发者誉为"AI时代的乐高积木"。
303 8
|
7月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
354 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
6月前
|
人工智能 前端开发 JavaScript
AI程序员:通义灵码 2.0应用VScode前端开发深度体验
AI程序员:通义灵码 2.0应用VScode前端开发深度体验,在软件开发领域,人工智能技术的融入正深刻改变着程序员的工作方式。通义灵码 2.0 作为一款先进的 AI 编程助手,与广受欢迎的代码编辑器 Visual Studio Code(VScode)相结合,为前端开发带来了全新的可能性。本文将详细分享通义灵码 2.0 在 VScode 前端开发环境中的深度使用体验。
946 2
AI程序员:通义灵码 2.0应用VScode前端开发深度体验
|
7月前
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
4570 22
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
7月前
|
人工智能 前端开发 JavaScript
详解智能编码在前端研发的创新应用
接下来,人与智能体的交互将变得更为紧密,比如 N 年以后是否可以逐渐过渡。这个逐渐过渡的过程实际上是温和的,从依赖人类到依赖超大规模算力的转变,可能会取代我们的一些职责。这不仅仅是简单的叠加关系。对于AI和超大规模算力,这是否意味着我们可以大幅度提升软件质量,是否可以缩短研发周期并提高效率,还有创造出更优质的软件并持续发展,这无疑是肯定的。
382 25
|
5月前
|
人工智能 开发框架 搜索推荐
27.4K Star!这个LLM应用宝库让你秒变AI全栈高手,RAG和AI Agent一网打尽!
想要快速入门LLM应用开发?想要了解最新的RAG和AI Agent技术?这个收获27.4K Star的开源项目集合了当下最热门的LLM应用案例,从简单的PDF对话到复杂的多智能体系统应该有尽有。无论你是AI开发新手还是经验丰富的工程师,这里都能找到适合你的项目!
195 0
|
7月前
|
人工智能 自然语言处理 数据可视化
Agentic Reasoning:推理界RAG诞生!牛津大学框架让LLM学会『组队打怪』:动态调用搜索/代码代理,复杂任务准确率飙升50%
Agentic Reasoning 是牛津大学推出的增强大型语言模型(LLM)推理能力的框架,通过整合外部工具提升多步骤推理、实时信息检索和复杂逻辑关系组织的能力。
270 1
|
7月前
|
人工智能 前端开发 JavaScript
智能编码在前端研发的创新应用
在前端开发领域,智能编码技术正引领一场变革,通过大模型的强大能力将自然语言需求直接转化为高效、可靠的代码实现。
291 10