cckuailong
读完需要
分钟
速读仅需 1 分钟
1
最近,微软亚洲研究院提出可以将 LLM 用于工业控制,而且仅需少量示例样本就能达成优于传统强化学习方法的效果。该研究尝试使用 GPT-4 来控制空气调节系统(HVAC),达到了很好的效果。
这篇论文的精华就在于提供了一种 LLM 工程化落地的新颖方案,笔者在读这个论文的时候,受到了很大的启发。
2
先来看整个系统的设计
其中状态(state)是核心,所有流程都是围绕状态流转,HVAC 中的状态其实就是一个元组,其中的数字表示每个房间的温度,外面的温度,地面温度等信息。
看不懂没关系,先讲下各模块的作用
LLM:不解释了,核心决策大脑
环境:一个交互式环境或模拟器,可以执行 LLM 建议的动作并提供反馈。其中值得注意的是作者设计了一个奖励函数,用来计算 LLM 决策结果的优劣
在线缓冲器:存储当前的状态及其决策和得到的结果
翻译器:上面讲的状态是一组数字,LLM 肯定不理解这些数字是什么意思,所以需要把这些数字“翻译”成 LLM 能理解的自然语言。例如 state: (19,24,26,23,10)可以翻译成:四个房间的温度分别为 19 度,24 度,26 度,23 度,室外温度为 10 度。(举个例子而已,真正的 state 比这个复杂多了)
向量化模型:将翻译器的结果转成机器能理解的 Token 序列
专家示例数据库:专家编写的一些专业示例
KNN 模型:选取专家示例库中最相似的状态
聚类模型(K-means):聚类专家示例库,作为 prompt 中的参考示例(多说一句,最理想的方式肯定是把所有的专家示例都给 LLM 作为参考,但是不现实,所以用这种方案来进行优化)
prompt 生成器:将各部分得到的内容塞到 prompt 模版中,如下图
3
Agent 的能力与 Prompt 的好坏是强相关的,让我们来看看 prompt 的设计。
总共分 5 大块:
当前状态:告诉 LLM 当前的状态,建筑类型,外部天气信息,所在城市等
系统信息:给 LLM 定义一个角色,告诉他我需要让他完成的任务
指令模块:通过指令翻译器,给 LLM 用自然语言传递指令
示例模块:给出 N 个示例,包括在线缓冲器中存储的前 1/N 个状态及其附加信息,聚类模型聚类后各中心点的示例信息,KNN 模型选择出最适合当前 state 的示例
对当前状态的描述
4
prompt 输出给 LLM,让 LLM 做出下一步的决策(action),然后将决策结果输入到奖励函数中,判断决策的正确程度。循环往复,这就是空气调节系统的整体设计,还是非常巧妙的。
5
http://export.arxiv.org/pdf/2308.03028
原文始发于微信公众号(我不是Hacker):深度好文|LLM在工业控制中的应用--空气调节系统
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论