Skip to main content
PromptQuorumPromptQuorum
主页/Smart Home/减少家庭自动化中的LLM幻觉(2027年)
Advanced Local AI

减少家庭自动化中的LLM幻觉(2027年)

·阅读需7分钟·Hans Kuepper 作者 · PromptQuorum创始人,多模型AI调度工具 · PromptQuorum

在家庭自动化中,LLM幻觉通常意味着触发了错误的设备、误读了传感器的实际状态,或引用了一个根本不存在的实体——这是与聊天机器人凭空捏造事实不同的失败模式,可以通过将模型限制在你真实、当前的实体列表内,而不是让它自由推断设备名称来减少。 仅暴露真实实体的函数调用架构是主要的解决方案。

家庭自动化中的LLM幻觉与聊天机器人中的事实幻觉表现不同:它意味着触发了错误的设备、误读了传感器的实际状态,或引用了你的Home Assistant设置中并不存在的实体。本文介绍智能家居特有的失败模式,以及减少这些问题的锚定(grounding)技术——函数调用架构和实体列表约束,并以本网站其他地方已经介绍过的通用幻觉减少建议为基础。

关键要点

  • 家庭自动化幻觉=触发了错误的设备、误读了状态,或引用了不存在的实体——而不是编造了一个通用事实
  • 主要解决方法:将模型的函数调用架构限制为仅你真实、当前的实体列表
  • 将当前传感器/设备状态直接传入提示词,而不是让模型假设或凭对话早期内容的记忆判断
  • 规模小、范围明确的模型(参见小型语言模型指南)相比拥有广泛、不受约束工具集的通用模型,本质上更不容易出现这个问题
  • 在信任自动化无人监督运行之前,先针对边缘情况(重命名的实体、离线设备)进行测试

家庭自动化中的幻觉长什么样

三种常见的失败模式是:触发一个名称相似但错误的设备、依据假设而非实际的传感器状态行动,以及引用一个在你的设置中根本不存在的实体。

  • 触发错误设备:要求关闭"台灯",而你实际上有好几盏台灯,模型基于猜测而不是澄清或正确使用上下文来选择其中一盏。
  • 假设状态:自动化认为窗户是关闭的,因为这是常见情况,而不是检查传感器的实际当前读数。
  • 不存在的实体:模型引用了一个听起来合理(因为在训练数据中常见)但实际上从未在你的Home Assistant实例中设置过的设备名称。

锚定:限制为真实实体

主要的解决方法是使用一个函数调用架构,始终只向模型暴露你真实、当前的实体列表——它只能为真正存在的设备调用函数,从结构上消除了"凭空捏造实体"这种失败模式。

  • 从Home Assistant的实际当前实体注册表动态生成函数调用架构(或传给模型的实体列表),而不是使用手写或过时的列表,后者会随着设备的增删而逐渐失步。
  • 如果你的设置中有含糊的实体名称(多个"灯"实体),应将它们重命名得更具区分度,而不是依赖模型正确地消除歧义——这是配置层面的修复,而非提示词层面的修复,也更可靠。
  • Home-Assistant-Ollama集成指南介绍了将Ollama连接到Home Assistant对话代理的实际设置方法,该代理会自动处理大部分这类架构生成工作。

传入当前状态,而非假设状态

依赖传感器状态的自动化应在执行时查询实际的当前读数,而不是依赖模型对更早对话轮次的记忆或对典型状态的假设。

  • 对于任何"窗户是否打开"或"灯是否已经开着"会影响决策的自动化,应将该状态作为自动化逻辑的一部分直接获取,而不是相信模型在整个对话过程中正确追踪了它。
  • 这是减少提示词脆弱性的通用原则(参见关于该主题的跨系列指南)在传感器支持的智能家居状态上的具体应用。
  • 在采取行动前结合多个传感器读数(传感器融合)也可以减少单一传感器误读影响决策的情况——参见智能家居指南中的传感器融合部分。

测试与捕捉错误

在信任自动化无人监督运行之前,应像测试任何自动化逻辑一样,针对边缘情况——重命名的实体、暂时离线的设备、含糊的命令——进行测试。

  • 有意测试一个引用了近期被重命名或删除的实体的命令,以确认自动化能安全失败(要求澄清或不采取任何行动),而不是猜测一个名称相似的设备。
  • 在初始试用期内记录自动化触发的操作,以便你能比较模型实际做了什么与你的预期,在静默的误触发变成常态之前发现它们。
  • 新的LLM驱动自动化应先从低风险设备(照明)开始,再扩展到高风险设备(门锁、安防系统),因为在后者上错误操作的后果更严重。

常见问题

这与通用的AI幻觉建议有什么不同?

通用的幻觉减少建议(参见AI幻觉指南)涵盖了开放式文本生成中编造的事实。本文专门针对LLM将命令映射到设备操作时出现的函数调用失败模式。

在这种场景下,较小的模型幻觉更多还是更少?

一个范围明确、被限制在特定函数调用架构内的小型模型,通常比拥有广泛、不受约束工具集的通用模型更不容易出现这个问题——具体原因请参见小型语言模型指南。

我能完全消除错误设备触发吗?

不能完全消除,但将函数调用架构限制为你真实的当前实体列表、使用有区分度的实体名称并测试边缘情况,能显著降低失败率——把它当作风险降低,而不是保证。

我应该让LLM控制门锁和安防系统吗?

在将LLM控制扩展到门锁等后果更严重的设备之前,先从风险较低的设备(照明)开始,以建立对你具体设置可靠性的信心——这是一个风险管理上的选择,而非技术要求。

Home Assistant的Ollama集成会自动处理实体锚定吗?

它会为对话代理从你当前的设置中动态生成可用实体列表,这处理了这里描述的大部分锚定工作——具体设置细节请参见Home Assistant + Ollama集成指南。

如果自动化无法确信地识别出正确的实体,它应该怎么做?

应安全失败——要求澄清或不采取任何行动——而不是猜测一个名称相似的实体。这是你如何构建自动化函数调用逻辑的设计选择。

← 返回 Smart Home