利用小型语言模型对动态系统进行模型预测控制

《Neurocomputing》:Leveraging small language models for model predictive control of dynamic systems

【字体: 时间:2026年05月10日 来源:Neurocomputing 6.5

编辑推荐:

  马克西莫·卡恰(Massimo Caccia)、克里斯蒂亚诺·切尔韦莱拉(Cristiano Cervellera)、达尼洛·马乔(Danilo Macciò) 意大利国家研究委员会海洋工程研究所,Via De Marini 6号,16149,热那亚,意大利 **摘要*

  马克西莫·卡恰(Massimo Caccia)、克里斯蒂亚诺·切尔韦莱拉(Cristiano Cervellera)、达尼洛·马乔(Danilo Macciò)
意大利国家研究委员会海洋工程研究所,Via De Marini 6号,16149,热那亚,意大利

**摘要**
基于Transformer的大型语言模型(LLMs)在自然语言处理任务中取得了显著的成功,其能力也被用于动态系统控制,特别是机器人控制。然而,它们的实际应用面临关键限制:依赖于远程服务器、计算需求庞大以及能耗高,这使得它们在实时控制中的应用非常具有挑战性。小型语言模型(SLMs)由于参数数量大幅减少,提供了有前景的替代方案,能够实现本地执行、保护隐私并便于定制。尽管具有这些优势,SLMs在动态系统控制方面的应用仍未得到充分探索。本文研究了SLMs是否能够在模型预测控制(MPC)框架内有效控制动态系统。我们提出了一种新颖的方法,该方法利用自然语言提示和自我评估策略来生成有效的成本函数,确保实时适应性和鲁棒性。与典型的奖励 shaping 方法不同,我们的方法适用于任意系统和目标。通过广泛的模拟,我们在多种动态系统和任务中测试了该方法,验证了基于SLMs的实时控制的可行性。

**1. 引言**
近年来,基于Transformer的语言模型(LMs),尤其是大型语言模型(LLMs),在各种自然语言处理(NLP)任务中表现出色。这些模型凭借自注意力机制和庞大的参数数量,在机器翻译、文本生成、问题回答乃至复杂推理等语言相关领域实现了最先进的性能。它们捕捉复杂语言模式并在不同领域中泛化的能力使它们成为研究和实际应用中的宝贵工具[1]、[2]、[3]。
近年来,LLMs在自动控制动态系统的文献中也越来越受到关注,尤其是在机器人控制方面[4]、[5]。实际上,由自然语言驱动的动态系统控制器将通过实现与复杂自动化系统的对话交互来影响日常生活。这将消除对技术专长的需求,使任何人都能使用这些系统,实现人类需求与自动化执行的无缝整合。
在这一领域,LLMs以多种方式得到应用,包括集成自然语言功能以促进人类交互、直接生成控制动作、高级规划以及奖励函数生成。LLMs的一个非常吸引人的特点是能够从自然语言提示生成高效代码,这在文献中有多种用途,特别是在强化学习方案中自动生成奖励函数的方法中特别有用。
然而,像ChatGPT、Gemini、Claude和Copilot这样的大型LLMs虽然在处理复杂问题和场景方面表现出色,但在动态系统控制方面仍存在一些显著的缺点。首先,它们需要与提供LLM服务的服务器保持主动连接,这在一般情况下可能很困难,甚至是不可能的,例如在远程非结构化环境中部署的动态系统。其次,由于模型规模庞大且非开源,大多数流行的LLMs无法在本地运行,这既带来了隐私问题,也使得根据特定需求或要求对模型进行微调变得不可能。此外,LLMs的输出生成耗能较高,因此大量使用这些工具会对能耗产生显著影响。
最近,人们对小型语言模型(SLMs)的兴趣日益增长,即参数数量远少于大型模型的语言模型(此处将参数数量不超过70亿的模型归类为SLMs[6]。
小型语言模型的吸引力在于它们能够解决上述大型MMs的问题。参数数量减少意味着可以在消费级硬件上本地运行,从而保护隐私并消除对远程服务器的依赖。此外,大多数SLMs是开源的,可以针对具体需求进行定制。
尽管人们对这类模型的兴趣日益增加,但在动态系统控制领域的相关文献仍很少。如前所述,LLMs在这一领域已经取得了成功,但小型语言模型虽然在上述方面具有优势,总体性能仍不如大型模型。因此,本文的目的是填补这一空白,探讨语言模型是否具备控制一般性质动态系统的能力。
为此,我们考虑了基于模型预测控制(MPC)[7]、[8]、[9]原理的控制框架。这种流行的控制范式允许实时控制任意性质的非线性系统,利用滚动时域优化策略。MPC控制器需要最小化代表当前控制目标的成本函数,该成本函数通常由人工设计。在这里,我们测试了语言模型生成合适成本函数的能力,以实现有效控制并朝着期望的目标前进(虽然这种方法属于奖励 shaping 领域,但我们是在MPC而非强化学习(RL)的背景下进行的)。值得注意的是,一旦定义了成本函数,MPC范式就可以实时生成控制策略,使用户在实际系统运行过程中随时定义新的目标。
由于MPC的通用性和易于实现,我们选择了这种方法。特别是给定系统模型后,我们只需要定义成本函数及一些元参数(如时间范围长度)。这一考虑在当前背景下非常重要,因为它将语言模型的工作限制在定义控制系统的一个组成部分,即成本函数上。此外,MPC已在多种应用场景中证明了其性能(例如,汽车系统[10]、工业流程[11]、航空航天工程[12]、容错控制[13]、混合系统[14]等),并且在稳定性及收敛速度等问题上有坚实的理论基础,某些仿射系统甚至可以找到封闭形式解[15]、[16]。
为了实现研究目标,我们为语言模型引入了一种专门的提示方案,旨在简单且有效。为了提高成本函数生成的鲁棒性,我们还引入了一种简单的自我评估策略,以提升语言模型的性能,缩小与大型模型的性能差距。与文献中的典型奖励 shaping 方法不同,我们的方法使用SLMs而非LLMs,以及MPC而非RL。另一个关键特点是提示生成和自我评估都是高度通用化的,不依赖于特定系统。这使得控制器原则上既适用于物理系统(如机器人或水库网络),也适用于无形系统(如库存或金融资产)。
总之,本文的主要贡献如下:
- 研究小型语言模型(参数数量不超过70亿)在私有环境中利用消费级硬件控制动态系统时的有效性;
- 提出了一种基于自然语言提示和自我评估程序的简单方法,能够在极少编码工作量的情况下实现动态系统的实时控制;
- 通过彻底的仿真测试评估小型语言模型在各种系统中的性能。

**2. 相关工作**
文献中研究了多种利用语言模型控制动态系统的策略。
一种流行的策略是将语言模型应用于直接为系统制定政策和动作。例如,[17]将视觉和语言提示结合使用,通过模仿学习框架训练机器人策略。[18]中利用语言模型作为控制器的一部分,为四足机器人生成脚部接触模式。[19]探讨了四足机器人行走问题,并直接使用语言模型输出目标关节位置。[20]提出在MPC框架中利用语言模型采样一系列控制动作。在这里,MPC问题及其成本函数已经定义好,而在我们提出的框架中,则根据需要实时生成新的合适成本函数。[21]利用语言模型为自主飞行机器人生成直接控制动作。[22]在分散控制背景下使用语言模型自动化多罐系统的输入/输出配对过程。[23]提出了一种基于PID控制的方法,利用语言模型以自然语言表达系统性能要求。这些方法证明语言模型可以成功用于控制动态系统并执行复杂任务。然而,由于输出结果的特定性,这些方法得到的控制通常非常依赖于具体的动态系统,而我们关注的系统是通用的。此外,许多方法需要对手语模型进行微调,并且通常需要大量数据和训练实例。
另一种流行的方法是利用语言模型在更高层次规划基本动作序列,此时已经有了相应的控制器。语言模型的任务是通过一系列预定义的动作将系统引导至目标。例如,在[24]中,语言模型与世界模型和记忆机制结合使用,实现长期规划以执行复杂任务。[25]结合视觉和语言模型进行实时长期规划以执行具体AI任务。[26]利用语言模型创建高级计划,再与低级规划器结合执行复杂任务。[27]介绍了一种利用语言模型生成多个动作序列的方法,并通过贪婪算法选择最佳方案。[28]编码专家控制知识并通过逐步调整控制器参数来模拟人类迭代设计过程,以满足用户对稳定性、性能和鲁棒性的要求。通常,这种规划方法中控制器的能力受到系统可执行预定义基本动作的数量和质量的限制。与我们的方法不同,这些方法得到的控制器通常不具有通用性,与特定系统密切相关。
更通用的一种方法接近于我们提出的方法,即利用语言模型为强化学习(RL)方案自动生成奖励函数。定义明确的奖励函数可以运行任何所需的RL算法,以训练使动态系统自动追求目标。这种训练是离线进行的,典型的RL方式,然后实时应用该策略来驱动系统。这一研究领域中最著名的例子是[29],其中介绍了EUREKA方法。该方法利用语言模型为给定机器人系统生成多个奖励函数,然后通过任务依赖的适应度函数选择并改进最佳方案。文献中的许多其他工作也采用了类似的方法,引入了不同的机制来提高所获得策略的鲁棒性。例如,在参考文献[30]中,大型语言模型(LLM)构建了一个结合了简单项的奖励函数,然后通过基于模拟的自优化迭代过程来改进策略。在参考文献[31]中,LLM模型既用于奖励生成,也用于评估所获得的策略。在参考文献[32]中,提出了将LLM与贝叶斯优化学相结合的方法,以生成和选择执行复杂机器人任务的有效奖励函数。在参考文献[33]中,LLM被用作交互式教师,在机器人操作的模仿学习框架中为代理提供反馈。强化学习(RL)奖励 shaping方法被证明能够产生高效且鲁棒的控制器。然而,一旦奖励函数生成,就需要训练RL策略,这使得这种方法在实时应用中并不容易实现,而我们的方法则允许这样做。在参考文献[34]中提出了通过模型预测控制(MPC)方案进行实时奖励函数生成的方法。在本文中,奖励函数具有固定的结构,由对应于可能的基本动作的预定义项的组合表示。然后使用LLM生成这种组合的参数以实现所需目标,并且获得的奖励可以通过MPC控制方案实时使用。该工作中没有提供自我评估或纠正机制。在参考文献[35]中,扩展了参考文献[34]中的工作,添加了一个纠正机制以提高LLM适应人类输入的能力。然而,验证目标实现的机制需要人类操作员,而在我们提出的框架中,我们考虑了自动自我评估策略。我们注意到,之前提到的奖励 shaping方法通常不允许实时有效改变控制目标(很少有例外,例如[34])。此外,这些方法大多数时候是为控制特定的动态系统设计的,通常是机器人结构。我们提出的方法允许用户在系统运行过程中实时指定新目标。这个目标是任意的,不依赖于预定义的动作或成本结构。然后,受控制的系统也可以是任意的,不一定是机器人系统,而可以是任何类型的系统(物理的、经济的、社会的等),只需用简短的自然语言风格描述。上述奖励 shaping方法的一个共同特点是,所提出的自我评估和纠正机制通常取决于特定的系统和任务,在动态系统或目标方面缺乏通用性。在我们考虑的框架中,由于系统和目标的通用性,自我评估程序也必须是通用的。我们提出的简单程序可以用来提高控制的鲁棒性,实际上可以应用于任何具有任何所需目标的系统,用户的设计工作量最小。此外,之前提到的规划和奖励 shaping工作依赖于像ChatGPT这样的大型LLM,它们提供了最先进的性能,但需要与远程第三方服务器的主动连接,并且不能在本地和私下运行。LLM的高计算要求也使得它们不容易适应机器人动态系统的低级同步控制循环的查询需求。因此,有必要设计和实现专用计算架构(例如用于机器人系统的分布式边缘+云DiCE-M架构[36])。本文的一个主要特点是验证是否可以用小型模型(参数)通过与用户的自然语言交互来产生有效的控制。这将允许在没有与远程服务器的主动连接的情况下部署控制器,能够在消费硬件上本地和私下运行,而不需要专用计算解决方案。

3. 模型预测控制概述
模型预测控制(MPC)是一种多变量控制策略,它使用系统的数学模型来预测其在有限时间范围内的行为。基于这一预测,MPC在每个时间步骤解决一个优化问题,以生成时间范围内的输入控制序列;然而,只有这些控制中的第一个会被使用,在下一阶段,优化会随着时间范围的移动而重复。形式上,我们假设系统有一个离散时间状态方程,形式为
其中是状态向量,是我们想要实施的控制。状态方程是系统的标称模型,允许根据当前状态和控制来估计状态的演变。这个标称模型可以提前知道,或者可能由语言模型(LM)预先生成(尽管我们在本工作中没有详细研究这种可能性)。
在阶段,MPC需要优化在连续的时间步骤上定义的成本,相对于控制向量序列,即我们必须评估
(1)
阶段和最终阶段成本函数的具体形式取决于所考虑的任务和决策者的要求,决策者通常需要最大化某个性能指标。为了简化分析,在本文的背景下,我们不考虑最终阶段成本函数,即我们隐含地假设它不存在。如前所述,(1)中最小化产生的最优控制,其中只有第一个被用来控制系统。然后,在阶段通过适当移动成本的参数来解决优化问题(1)。
值得注意的是,优化(1)需要状态方程来模拟从到的时间范围内的系统,且必须可以获取第一个状态向量(例如,通过测量)。闭环性质是MPC控制的一个关键特征,因为动态系统通常会受到随机干扰的影响,使状态偏离优化期间预测的状态。因此,MPC控制器能够实时适应当前状态。
MPC可以应用于广泛的应用领域,因为它即使在多变量控制环境中也易于实现。在这里,我们采用它作为达到所需目标的手段,而不涉及稳定性和性能等问题,这些问题超出了本文的范围。实际上,性能保证通常取决于特定的系统和控制目标,在本文考虑的系统和任务的任意设置下是不可行的。此外,对于本质上不稳定的系统,设计适当的成本函数以及对系统动态模型的了解通常足以确保收敛到用户设定的目标。
有关MPC稳定性和收敛条件的更多详细信息,感兴趣的读者可以参考[[9]、[15]、[16]第2章及其中的参考文献。

4. 基于语言模型的实时控制方法
在本节中,我们介绍了用于研究SLM执行通用动态系统有效控制能力的方法。首先描述了用于计算实时控制的一般MPC控制方案。然后介绍了将LM集成到控制循环中的提示生成方案。最后,我们提供了一个简单的通用自我假设机制,以提高控制方案的鲁棒性。

4.1. 一般控制方案
整体实时控制方案的架构如图1和图2所示。
在无限视野的角度下,控制过程由用户的输入实时触发,用户用自然语言声明新的期望目标和可能的附加要求,这将在后面详细说明。如图1所示。具体来说,用户定义的目标和当前状态被传递给提示生成程序(在下一节中详细介绍)。然后将提示输入到LM中,LM产生一个文本输出。提示的格式是这样的:LM的输出包含一个遵循固定Python模板的成本函数。这个代码通过适当的软件程序提取出来,最终新的MPC成本函数可以插入到MPC控制器系统中。
MPC控制方案如图2所示。它负责将系统实际驱动到所需目标,从开始。为此,MPC求解器最小化第3节描述的新成本函数,并计算当前的最优MPC控制。控制作用于真实系统并产生新的状态,该状态被输入到MPC求解器中,如此循环进行,直到达到目标或用户输入新的提示和成本函数。

4.2. 提示生成
向LM提供的提示对于成本生成的成功最为关键。在本文中,我们提出了一种通过组合(i)具有通用性质的固定部分,(ii)特定于当前系统和上下文的部分以及(iii)用户当前期望的目标来实时生成的复合提示。
提示生成过程的方案如图3所示。
我们考虑的完整提示由以下部分的连接组成:
U1:“一个动态系统的形式为 s[t+1] = f(s[t], w[t]),其中 s[t] 是状态向量,w[t] 是控制向量。”
S1:“系统是… [用几句话简要描述当前系统,以及状态组件和控制组件的描述,加上任何其他相关信息]”
S2:“当前状态向量为 s0 = [当前状态组件的实际值]”
U2:“系统必须通过非线性模型预测控制进行操作。您的任务是定义一个标量成本函数,该函数对于 s[t]、w[t] 和 t 在满足以下目标时趋于0:”
G:“[控制的新目标文本]”
U3:“在成本函数中使用‘(z - z_target)**2’这样的项来达到目标值,以及‘min(0,z)**2’或‘max(0,z)**2’这样的项来惩罚违规情况。如果需要,也可以使用其他项。除非目标中明确要求,否则不要限制控制。”
U4:“生成成本函数方程的显式Python代码,以‘return c’结束。只编写代码函数,不要添加解释或示例。”
U5:“带有显式方程的代码如下:def cost_function(s_t, w_t, t):”
在提示中,U1和U2向语言模型传达了一般设置,说明了通过MPC控制的动态系统的上下文。特别是,U2项指出当目标达成时成本应接近0。这是实现接下来将要描述的自我评估程序所必需的。S1项是提示的关键部分,定义了需要控制的特定系统类型。这部分只需要简单的描述,不需要提供任何显式代码或转换函数,利用LM对系统基本行为的固有知识。这部分的一个关键元素也是状态和控制变量的精确定义。S2项添加了有关当前状态的信息,这在实时任务中可能有用(例如,为了维护当前状态)。标记为G的块包含了系统的实际目标。目标应该尽可能清晰和简洁,以避免生成不一致的成本函数。可能的约束应该与目标一起指定。U3部分再次独立于上下文,它提示LM使用标准的表达式来表示目标和约束,同时默认避免对控制施加任意限制。根据我们的经验,这对于提高输出的鲁棒性非常重要。术语“U4”再次具有通用性,这要求语言模型(LM)以这样的方式格式化成本函数:使其能够从完整输出中自动提取。最后,“U5”要求语言模型完成以正确的Python def声明开头的句子。我们注意到,目标G是提示中唯一需要用户提供的元素,每当需要新的目标时,该目标都会实时更改。这也会触发S2的更改,S2是由整个控制系统自动执行的当前状态读取。以下是一个实时完整提示的示例(实验中库存示例的测试n.1)。

一个动态系统的形式为 s[t+1] = f(s[t],w[t]),其中 s[t] 是状态向量,w[t] 是控制向量。该系统是一个包含3种物品的库存。状态向量分量 s[t][0]、s[t][1] 和 s[t][2] 分别表示时间t时的物品存储水平,s[t][3]、s[t][4] 和 s[t][5] 是对时间t阶段物品需求的估计,s[t][6]、s[t][7] 和 s[t][8] 是对时间t+1阶段物品需求的估计。控制向量分量 w[t][0]、w[t][1] 和 w[t][2] 分别表示在时间t补充的物品0、1和2的数量。当前的状态向量为 s0 = [?5, 10, 8, 9, 5, 10, 3, 9, 8]。必须通过非线性模型预测控制来操作该系统。你的任务是定义一个关于 s[t]、w[t] 和 t 的标量成本函数,当满足以下目标时该函数趋近于0:保持物品水平为零。w[t][0] + w[t][1] 必须小于12,且 w[t][1] + w[t][2] 必须小于14。在成本函数中使用“(z - z_target)**2”这样的项来达到目标值,以及“min(0,z)**2”或“max(0,z)**2”这样的项来惩罚约束违反。如果需要,还可以使用其他项。除非目标中明确要求,否则不要对控制进行限制。

生成成本函数方程的显式Python代码,代码必须严格以“return c”结束。只编写代码函数,不要添加解释或示例。显式方程的代码如下:

4.3. 自我评估程序
前一节中介绍的控制程序仅依赖于语言模型生成适合当前目标的成本函数的能力。由于目标的任意性,以及考虑到小型语言模型的内在限制,仅凭这一程序并不一定能保证鲁棒性。为了提高控制的鲁棒性,必须为该程序添加某种形式的自我评估,以评估成本函数的有效性。文献中现有的自我评估或自我校正程序通常是为特定系统和/或考虑的目标范围量身定制的。然而,在我们的上下文中,主要困难在于目标是任意的,并且仅在实时揭示,因此自我评估程序必须具有通用性。这里我们提供了一个简单的解决方案,利用提示中要求成本函数在接近目标时接近0的设计。这允许设置通用的阈值来验证给定MPC成本函数的质量。自我评估程序在算法1中进行了说明。

算法1依赖系统的标称模型来估计状态和成本函数所产生的MPC控制的演变。算法1需要第4.2节中指定的语言模型提示,以及初始状态向量,还有一些元参数的定义,如成本评估的阶段数、合适的阈值,以及在程序失败前的最大尝试次数。在适当初始化参数和标志(第1行)后,第i次迭代会请求语言模型根据提示和初始状态向量生成单阶段成本函数(第3行)。然后,根据(1)生成一个MPC轨迹(第4行)。接着通过评估其成本来分析该轨迹(第5行),基于此提供反馈以确定函数是否可以被认为是可接受的。特别是,成本必须满足两个要求:
1. 在最后斯泰吉(stage)计算出的成本平均值必须低于一个期望的阈值。
2. 成本相对于在整个轨迹中的最大绝对增加量必须低于...

条件1检查目标是否满足,因为根据设计,成本在接近目标时必须接近0。仅平均最后斯泰吉可以避免在远离目标的模拟开始时对成本进行惩罚。条件2近似于成本导数的一个界限,以检查后者是否不会增长得太快,这很可能是约束违反的迹象。因此,我们在整个阶段范围内都施加了这个条件。如果两个条件都得到满足,则将变量设置为1,并输出函数(第6-8行);否则增加该值并重复循环(第9行),除非达到该值并且程序失败(第11行)。

5. 仿真结果
在本节中,我们展示了仿真实验,以测试是否可以使用SLM来执行控制任务,并利用第4节中提出的方法。这些测试涵盖了广泛的问题,不仅限于机器人或机械系统,还包括各种性质的任务。对于测试,我们使用了Qwen 2.5 Coder 7B(70亿参数)模型[37],这是最受欢迎的开源语言模型之一。由于该模型是专门为编码任务训练的,因此非常适合我们的实验目的。然后,为了验证模型的复杂度可以被限制到什么程度,我们还测试了模型的3B(30亿参数)版本。

代码是用Python实现的,使用了Huggingface的transformers库[38]来生成SLM输出。对于模型,我们设置了top_p = 0.8、temperature = 0.5、repetition_penalty = 1.1、top_k = 10。所有其他元参数都保持默认值。仿真是在配备了Intel Core i9-13900K 3.00 GHz处理器、128 GB内存和NVidia GeForce RTX 4090显卡的PC上运行的。我们考虑了4个不同的动态系统(详细信息如下),并且对于每个系统,设计了3个不同性质的任务。鉴于语言模型的随机输出,每个任务重复了100次,既有使用算法1的自我评估程序的情况,也有不使用的情况。对于使用自我评估程序的测试,我们设置了迭代超时。所有测试都是在MPC范围下进行的。在我们的测试中,更长的MPC范围长度并没有在结果上产生有意义的差异。为了在每个阶段获得解决优化问题(1)的控制链,我们使用了Scipy Python库中的minimize函数。

如第3节所述,由于所选系统和任务的任意性,我们不追求典型自动控制问题的经典形式稳定性,作为评估SLM成本生成成功的方式。因此,为了评估与语言模型生成的成本函数相关的控制的真正成功,对于每个系统和任务,我们都手动设计了基于状态轨迹和控制序列的成功条件。具体来说,这些条件是通过在时间范围的最后斯泰吉(或在有约束的情况下为整个范围)对状态向量和/或控制向量的平均值设置阈值来表示的。这些条件根据具体的系统和任务,允许自动验证是否达到了目标,即语言模型给出的成本函数是否真正成功。在所有测试中,目标条件的设计都包含了一些容差。我们注意到这些条件是仅为事后性能评估而专门设计的,而算法1中的自我评估程序在测试期间支持语言模型成本函数的生成,它与具体所需的任务无关。

5.1. 测试问题和任务定义
下面我们描述了用于测试的动态系统及其相关的任务。这些任务旨在反映不同可能的目标,同时改变了自然语言输入的风格和措辞,有时还要求语言模型做出选择。这里我们提供了对语言模型的提示的一般描述和文本。关于状态方程和测试参数以及自我评估程序的技术细节在附录中报告。

5.1.1. 库存控制
库存优化管理是多阶段优化算法(包括动态规划和MPC[39])的经典测试平台。一般来说,目标是优化产品订购顺序,以保持库存水平低,同时在有限的预算内满足需求。我们考虑的实例有3种产品,这产生了包括需求预测的9维状态。测试中使用的系统描述(S1)如下:“该系统是一个包含3种物品的库存。状态向量分量s[t][0]、s[t][1] 和 s[t][2] 分别表示时间t时的物品存储水平,s[t][3]、s[t][4] 和 s[t][5] 是对时间t阶段物品需求的估计,s[t][6]、s[t][7] 和 s[t][8] 是对时间t+1阶段物品需求的估计。控制向量分量w[t][0]、w[t][1] 和 w[t][2] 分别表示在时间t补充的物品0、1和2的数量。”

为此测试案例考虑的任务如下:
T1:‘保持物品水平为零。w[t][0] + w[t][1] 必须小于12,且 w[t][1] + w[t][2] 必须小于14。’
T2:‘将第一种物品的水平保持在?3到3之间,并将其他物品的水平降至零。总订购量必须小于30.0。’
T3:‘保持物品水平在当前值。’

5.1.2. 水库网络管理
互连线性水库系统的最佳运行是另一个多阶段优化算法(包括动态规划和MPC[39])的经典测试平台。这里的目标是在每个时期优化水库的放水量,以实现各种目标(例如灌溉、发电、水位控制等)。我们考虑的实例有5个水库。测试中使用的系统描述(S1)如下:“该系统是一个由5个相连的水库组成的网络。状态分量s[t][i] 对于i = 0, 1, 2, 3, 4表示时间t时水库i中的水位。控制分量w[t][i] 表示在时间t时从水库i放出的水量。”

为此测试案例考虑的任务如下:
T1:‘保持水库i=3的水位为5.5,其他水库的水位保持在1.2以上。’
T2:‘将水库i=0、i=1和i=2的水位调整到相同的值。选择任何小于3.5的值。所有水库的水位必须大于0.5。’
T3:‘保持五个水库的水位在当前水平。’

5.1.3. 自主机器人控制
这个测试考虑了自主机器人的控制。更具体地说,我们考虑控制一种超动力量的SWAMP类无人水面船只(USV),即一种配备有四个方位喷射器的双体船[40]。测试中使用的系统描述(S1)如下:“该系统是一个具有4个电机的海洋无人水面船只。状态向量分量s[t][0] 表示车辆固定框架中的前进速度,s[t][1] 表示车辆固定框架中的侧向速度,s[t][2] 表示车辆固定框架中的旋转速度,s[t][3] 表示世界坐标系中的x坐标,s[t][4] 表示世界坐标系中的y坐标,s[t][5] 表示世界坐标系中的船舶航向(以弧度为单位)。控制w[t][i]对于i = 0, 1, 2, 3是指电机i的角度(以弧度为单位),而控制w[t][i]对于i = 4, 5, 6, 7是指电机i-4的推力。本测试案例考虑的任务如下:
T1:“以1.0的速度前进,航向为60度。”
T2:“到达坐标x = 3.0, y = ?2.0,并保持在该位置。”
T3:“前往坐标x = 4.0, y = 4.0。避开坐标x = 2.0, y = 2.0。”

5.1.4. 滑动小车控制
该测试考虑了控制带有质量的小车,小车通过电缆连接。

测试中使用的系统描述(S1)如下:“系统是從上方滑动的起重机,负载通过电缆连接。s[t][0]是起重机本体的x位置,s[t][1]是起重机本体的速度,s[t][2]是电缆的角度,s[t][3]是电缆的角速度,s[t][4]是负载的质量。w[t][0]是施加在起重机本体上的水平力。”

本测试案例考虑的任务如下:
T1:“将本体带到点x = 1.5,并在到达该点后保持静止,速度和角速度均为零。”
T2:“保持起重机以0.5的速度运行,不发生振荡。”
T3:“开始在当前位置振荡,力的绝对值必须在1.0到3.0之间。”

5.2. 结果
对于没有自我评估的测试,我们统计了LM生成有效代码的次数(即非空且格式正确的代码,这里上标‘v’代表‘vanilla’),以及成本函数满足上述真实目标条件的次数。
对于带有自我评估程序的测试,我们统计了LM在允许的最大迭代次数内生成有效代码的次数,以及成本函数成功的次数。在这种情况下,我们还统计了完成给定任务所需的迭代次数。

图4、图5、图6、图7展示了根据上述定义的有效生成次数和真实成功次数,涵盖了所有考虑的示例和任务。这些图表包含了7B和3B版本的LM的结果。

下载:高分辨率图像(317KB)
下载:全尺寸图像

图4. 库存测试中的有效生成次数和成功次数。

下载:高分辨率图像(322KB)
下载:全尺寸图像

图5. 水库测试中的有效生成次数和成功次数。

下载:高分辨率图像(328KB)
下载:全尺寸图像

图6. SWAMP测试中的有效生成次数和成功次数。

下载:高分辨率图像(311KB)
下载:全尺寸图像

图7. 滑动小车测试中的有效生成次数和成功次数。

然后,图8包含了上述自我评估程序所需的迭代次数的箱形图,涵盖了所有考虑的示例和任务的100次测试。

下载:高分辨率图像(388KB)
下载:全尺寸图像

图8. 自我评估程序所需迭代次数的箱形图。

最后,表1和表2总结了7B和3B版本的LM的性能,包括所有考虑的示例和任务的平均值。

表1. 7B LM提供的性能。
- 库存任务1:87次有效生成,94次成功
- 库存任务2:87次有效生成,91次成功
- 库存任务3:97次有效生成,92次成功
- 水库任务1:91次有效生成,97次成功
- 水库任务2:98次有效生成,100次成功
- 水库任务3:96次有效生成,100次成功
- USV SWAMP任务1:99次有效生成,100次成功
- USV SWAMP任务2:96次有效生成,100次成功
- USV SWAMP任务3:99次有效生成,100次成功
- 小车任务1:99次有效生成,98次成功
- 小车任务2:99次有效生成,95次成功
- 小车任务3:99次有效生成,94次成功
- 平均:96.08%

表2. 3B LM提供的性能。
- 库存任务1:87次有效生成,95次成功(平均值96.42%)
- 库存任务2:87次有效生成,98次成功(平均值96.69%)
- 库存任务3:75次有效生成,92次成功(平均值92.54%)
- 水库任务1:83次有效生成,66次成功(平均值94.58%)
- 水库任务2:95次有效生成,97次成功(平均值92.00%)
- 水库任务3:78次有效生成,63次成功(平均值91.29%)
- USV SWAMP任务1:86次有效生成,100次成功(平均值88.24%)
- USV SWAMP任务2:73次有效生成,91次成功(平均值91.58%)
- USV SWAMP任务3:92次有效生成,92次成功(平均值91.50%)
- 小车任务1:90次有效生成,74次成功(平均值84.58%)
- 小车任务2:77次有效生成,92次成功(平均值84.58%)
- 小车任务3:99次有效生成,99次成功(平均值91.48%)
- 平均:84.58%

3. 讨论
图4、图5、图6、图7和表1、表2的结果表明,这里考虑的小型语言模型可以有效地应用于各种动态系统的控制方案中。实际上,在12个任务中有9个任务中,7B版本的LM在纯方法应用下的成功率超过了70%,其中7个任务的成功率超过了80%。在LM表现较差的两个任务中(库存任务1和2),目标包含了约束条件,这可能表明在非常一般的设置中LM难以处理状态或控制的限制。USV SWAMP示例中的任务3似乎是最难处理的,成功率仅为32%。在这里,成本函数需要定义适当的条件来避开特定的坐标,这对于通用型设置来说可能太具挑战性。

然而,当我们为基于LM的控制方案提供某种形式的自我评估(如算法1中提供的)时,控制变得显著更加稳健。首先,从表1中的数值可以看出,最终总是能获得有效代码。更重要的是,我们注意到在12个任务中有10个任务的成功率至少达到95%,所有任务的平均成功率为96.66%,克服了仅使用纯方法一次尝试时处理约束的困难。这也适用于USV SWAMP示例中的任务3,其成功率为97%。

值得注意的是,平均而言,自我评估算法只需要很少的迭代次数就能生成LM认为良好的成本函数,如图8中的箱形图和表1的最后一列所示。实际上,所有任务的平均迭代次数为1.55次。不出所料,那些需要更多迭代的任务通常是LM纯应用表现最差的任务(库存任务1和2以及USV SWAMP任务3)。然而,平均每次迭代只需要大约3次就能获得成本函数,使得成本生成过程相当高效。

3B版本模型的应用不如7B版本成功。实际上,参数较少的模型的性能更加不稳定,平均成功率为40.08%(表2)。即使在带有自我评估程序的情况下,成功率也只有56.25%。3B模型测试中最令人担忧的结果是,自我评估的应用仅在一个任务中(库存任务1)将性能提升到了令人满意的水平(从30%提高到88%)。在一个任务中,算法甚至降低了性能(库存任务3),这意味着在纯情况下一些无法通过自我评估检查的成本函数实际上适合达到目标。

值得注意的是,表现最好的任务(水库任务2)是LM必须做出任意选择的任务,这再次表明严格约束是对这类模型来说最难处理的元素。

为了了解成本函数生成过程中的主要计算时间,我们考虑了LM生成单个有效成本函数所需的时间,以及包括执行自我评估步骤(即使用当前成本函数模拟系统)的时间。表3和表4报告了返回有效成本函数的测试中上述时间的平均值(以秒为单位),并按各个系统、7B和3B版本的LM进行了平均。

表3. 7B LM在各种测试中所需的计算时间。

表4. 3B LM在各种测试中所需的计算时间。

正如预期的那样,参数较少的LM生成有效代码所需的时间更少。7B LM执行自我评估步骤也需要稍长的时间。这可能令人惊讶,因为3B和7B情况的模拟条件是相同的。原因是7B模型更频繁地生成有效的成本函数,而MPC解决方案计算“不良”成本函数(可能缺乏约束或始终等于0等)需要更多时间。

结果表明,生成有效代码大约需要几十秒的时间间隔。这些时间尺度通常与实时使用兼容,例如在线规划器请求下一个动作时。实际上,像SWAMP类自主系统这样的典型任务可以由一系列动作组成(例如“前往下一个航点”或“在某个时间段内保持静止”),每个动作至少持续几十秒。因此,对应于下一个请求动作的任务函数可以在规划器执行前一个动作时计算出来。在最坏的情况下,ASV可能需要等待几秒钟以完成代码生成,然后再执行下一个动作:这种行为也与人类在新情况和环境中操作时的行为类似。

6. 结论和未来工作
在本文中,我们研究了小型语言模型在实时生成动态系统模型预测控制的成本函数方面的能力。我们的方法利用自然语言提示和自我评估来确保在不同控制场景中的稳健性。我们设计了一个通用程序,其中SLM动态地为MPC控制器生成成本函数。我们还提出了一种自我评估机制,以检查生成的函数是否实现控制目标,显著提高了成功率。整个程序在设计上具有通用性,无论所选的动态系统或实时目标如何,这两者都可以是任意的。

使用7B参数SLM进行的大量模拟显示出有希望的结果:该模型成功为多个动态系统和任务生成了有效的成本函数。然而,3B参数模型的表现较差,表明可靠的成本函数生成需要最低的复杂性阈值。尽管如此,在某些特定系统和任务中,3B模型也能提供稳健的控制。这表明,如果提示更加针对手头的系统,并且所需任务的自由度较低,甚至更小的模型也可能提供一致的良好性能。这将是未来工作和研究的重点。

所提出的方法论以及SLM的应用存在一些固有的限制。虽然SLM在计算开销方面比LLM有显著优势,但在我们的测试中,它们平均需要10-20秒来生成经过验证的成本函数,这可能限制了需要快速实时适应的关键应用。此外,部署时仍然需要消费级GPU,而且提示的敏感性可能会引入输出的可变性。关于最后一个问题,我们的自我评估程序可以显著减少这种可变性。该算法并非完全不受系统影响,因为需要提供名义模型的方程式。然而,名义模型可以由LM自动生成,从而使整个过程在实践中不受系统限制。我们将在未来的工作中探索这种可能性。

根据上述结果的讨论,另一个未来的研究方向是在实时系统中试验所提出的基于SLM的框架,例如无人驾驶海洋车辆(其中可以根据操作员的实时情况在线升级可用任务函数库)和智能运输系统。

作者贡献声明:
Massimo Caccia:写作 – 审阅与编辑、原始草稿、软件、方法论、概念化
Cristiano Cervellera:写作 – 审阅与编辑、原始草稿、软件、方法论、概念化
Danilo Macciò:写作 – 审阅与编辑、原始草稿、软件、方法论、概念化
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号