IR + VM:让 LLM 生成的控制逻辑安全运行在超低端 MCU 上

目前进度

  • ESP8266 和 STM32,同一份字节码,不改一行代码直接运行。
  • 任务代码平均 10.9 字节 ,相比 JSON 控制指令的 106.7 字节,缩小接近 10 倍
  • VM 核心只占约 2KB RAM
  • 113 个确定性任务全部通过。
  • 本地部署 8B 参数规模的 LLaMA 模型生成 LIR 时,错误可以通过编译器反馈自动修正,一轮收敛

关于这套系统我写了一篇论文,已经进入 CCF B 类期刊大修阶段。


我目前大三,专业是软件工程,之前主要学习 Java 后端和 Agent 相关方向。

我一直觉得嵌入式开发太麻烦了------每次都要重新烧录。所以我想让 MCU 也拥有类似 JVM 的执行层:程序不直接绑定硬件,而是运行在一个小型虚拟机上。

这样上层只需要生成逻辑,底层负责执行。

整体架构

我的想法是,在 LLM 和 MCU 之间增加一个中间层,把上层逻辑和底层硬件解耦。整个系统分为三部分:

  1. LIR ------ 负责承接 LLM 输出的控制逻辑。
  2. 确定性编译器 ------ 负责把 LIR 转换成紧凑字节码,同时完成语法检查、类型检查、资源验证和编码。
  3. MCU 上运行的 VM ------ 负责执行字节码,并提供运行时安全限制。

整体流程:

IR 让模型生成结构化逻辑。例如:

bash 复制代码
task water_pump {
    require cap(relay1)
    require cap(water_sensor)
    set relay1 = 1
    wait 500ms
    read water_sensor
    halt
}

这段代码表达的是任务逻辑。编译器随后将它转换成 14 字节左右的机器指令。模型负责描述,编译器负责保证正确。

VM 的安全设计

让模型控制物理设备,最大的风险是错误可能直接作用于现实世界。比如系统里只有 relay1,但是模型生成:

ini 复制代码
set relay3 = 1

如果 relay3 对应一个真实设备,可能造成严重问题。

所以 VM 增加了三层限制。

权限锁

  • 程序必须提前声明需要使用的设备。
  • 没有声明的资源无法访问。
  • 错误会在编译阶段被拒绝。

时间锁

  • 任务执行有最大步数限制。
  • 如果出现异常循环,VM 会主动停止。
  • 避免电机、水泵等设备持续运行。

形式化验证

14 条核心指令已证明------任意输入下必然停机,且仅访问授权资源。

核心原则: 无论 LLM 生成什么,VM 保证程序必然终止,且只能操作被明确授权的设备。

适用场景: 计算资源极其受限、但需要被 LLM 动态控制的物理设备------灌溉系统、工业现场、智能家居里的廉价单片机。

以下是编译器把 6 行LIR 压成 14 字节字节码,VM逐指令 trace:每步的PC、栈状态、步数计数器、已授权设备集合全部可见,7步HALT。

以下是手工构造一段绕过编译器的恶意字节码:只授权了relay1,却在 pc=2 试图写relay2。VM在写操作到达驱动前拦截,EXEC_FAULT_UNAUTHORIZED_IO,relay状态未被改变。

一些思考

现在很多系统已经可以让模型生成代码。但当代码开始控制真实设备时,中间还需要更多工程约束。

如何让一个生成式系统输出的逻辑,经过一套可验证的流程,最终安全运行在资源非常有限的设备上------这是一个比较窄但是有价值的问题。

目前我的系统跑通了,但是学术是学术,在实验室里跑通不代表有工业价值。我觉得距离真正工业部署还有很多问题,例如:

  • 更复杂设备模型如何描述;
  • 多设备协同如何验证;
  • 如何和现有工业控制协议结合。

也想请教一下有实际部署经验的朋友:目前工业现场或者 IoT 场景里,如果需要让 LLM 参与设备控制,工程上通常采用什么架构?在类似「LLM 生成逻辑 → 中间约束 → 设备执行」这一套流程里有哪些成熟实践?

如果有团队或者企业正在探索类似方向(系统软件、IoT 安全、LLM+嵌入式),也非常希望有机会参与实际工程实践。

相关推荐
张忠琳1 小时前
【NVIDIA】NVIDIA k8s-device-plugin v0.19.3 资源管理器模块深度分析之三
云原生·容器·架构·kubernetes·nvidia
小小工匠2 小时前
Skill - 把无限画布装进 Codex:Cowart 的架构拆解与实践指南
架构·cowart
roman_日积跬步-终至千里2 小时前
【从零开始学架构】DDIA 精要:一套关于“数据系统架构”的分层理论
架构
亲爱的马哥2 小时前
Vue3 + Element Plus 低代码表单设计器架构拆解与私有化落地实践
低代码·架构·敏捷流程
LONGZETECH3 小时前
工业实训仿真设计实践:电机拆装软件的 DAG 流程建模、工具精度分级与数据体系搭建
大数据·算法·unity·架构·汽车
张忠琳5 小时前
【NVIDIA】k8s-device-plugin v0.19.3 — CDI / MIG / vGPU 模块超深度代码分析之五
云原生·容器·架构·kubernetes·nvidia
StarkCoder5 小时前
AI 会做多、看少、不收尾:七种失效和拦住它们的办法
人工智能·架构
冷莫溪5 小时前
Docker——3.Harbor 核心架构与原理详解
docker·容器·架构
beibeix20156 小时前
3D Slicer 架构分析
架构·slicer