最新资讯

  • RoboVLM——通用机器人策略的VLA设计哲学:如何选择骨干网络、如何构建VLA架构、何时添加跨本体数据

RoboVLM——通用机器人策略的VLA设计哲学:如何选择骨干网络、如何构建VLA架构、何时添加跨本体数据

2025-04-27 09:37:47 0 阅读

前言

本博客内解读不少VLA模型了,包括π0等,且如此文的开头所说

前两天又重点看了下openvla,和cogact,发现

  • 目前cogACT把openvla的动作预测换成了dit,在模型架构层面上,逼近了π0
  • ​那为了进一步逼近,感觉可能会有人把cogACT中的VLM模块(dinov2+sigclip+llama2)换成paligemma

总之,各种vlm + 各种动作预测头/方法,会出来很多vla

当然,各种VLA我在此文《24年具身智能模型汇总:从训练数据、动作预测、训练方法到Robotics VLM、VLA》已经详细介绍过

而适用于通用机器人策略的VLA也不是随意设计的,背后都有一整套的设计哲学、逻辑、方法论,本文便基于RoboVLMs探讨这背后的设计哲学

  1. 其对应的论文为《Towards Generalist Robot Policies: What Matters inBuilding Vision-Language-Action Models》
  2. 对应的作者为
    Xinghang Li1,2∗, Peiyan Li2,3∗, Minghuan Liu2,4∗, Dong Wang1,2∗, Jirong Liu2,4∗,Bingyi Kang2, Xiao Ma2, Tao Kong2, Hanbo Zhang5, Huaping Liu1
    他们各自来自
    1Tsinghua University, 2ByteDance Research, 3CASIA MAIS-NLPR,4Shanghai Jiao Tong University, 5National University of Singapore

尽管有的设计哲学——动作空间是连续的还是离散的,在之前诸多模型的效果PK上,我们早已看出来,但为系统起见,还是也放在本文的介绍中

第一部分 RoboVLMs

1.1 引言与相关工作

1.1.1 VLM骨干和结构的研究

在构建通用机器人策略的其中一种途径是基于VLM微调并进行一定的架构调整来学习机器人基础模型,从而最终成为VLA

而这个途径之所以广受欢迎,在于VLMs在通过对网络规模数据的广泛训练中展示了学习多模态数据(如文本、图像/视频)的通用且鲁棒的表示的强大能力。这种能力可以激发机器人基础模型的适应,以弥合高度多样化的开放世界场景和有限的机器人数据之间的差距

然而,大规模视觉-语言预训练在多大程度上促进通用机器人策略仍然是一个未解决的问题。此外,伴随着不同类型的LLM骨干、训练数据、模型规模、架构和训练方案,迅速涌现出大量多样化的不同VLMs

故,哪种VLM骨干更适合机器人操作也是成功开发VLAs的一个关键问题

除了不同骨架的多样性之外,对于通用机器人策略,包括VLA,其结构更加复杂且形式多样

基于现有的最流行的工作[4-π0,7-Rt-2,20-Vima,22-Openvla,24-Vision-language foundation models as effective robot imitators,34-R3m,35-Open x-embodiment,39-Octo,47-Unleashing large-scale video generative pre-training for visual robot manipulation,55-3d-vla]——这其中大部分的工作,都可以在此文 《24年具身智能模型汇总:从训练数据、动作预测、训练方法到Robotics VLM、VLA》里看到对应的介绍链接

作者提出了一种分类方法,基于

  1. 历史和动作信息如何在VLA中被整合
  2. 动作空间是连续的还是离散的

如下图图2所示,考虑了4种结构形式「根据两个主要层次对VLA结构进行分类:1)动作空间(纵轴);2)是否整合了历史信息(横轴)——比如左边是one-step 右边是historical。此外,对于涉及历史的VLAs,根据历史信息的组织模式将涉及历史的VLAs分为策略头和交错形式。请注意,这种分类不仅考虑了从预训练的VLMs中派生的模型,还包括那些虽然没有在VLMs上预训练(因此不被称为VLAs),但可以为将VLMs转变为VLAs提供见解的策略架构

对于历史信息建模,识别出两种形式:

  1. 一步建模one-step modeling——见上图左侧●,仅利用当前状态或观察来产生动作;
  2. 历史建模history modeling,处理历史状态或观察的滑动窗口

关于历史信息的聚合,将其分为两种方法:

  1. 交错建模interleaved modeling▲——见上图右上角、右下角,将历史观察和动作序列以交错格式整合
  2. 策略头policy head ▀——见上图中间偏右上,分别处理每个历史步骤,并在一个独立的策略头中融合信息以进行动作预测

不同的结构以不同的方式利用预训练的VLMs。因此,当面临不同类型的环境和任务时,它们在鲁棒性、泛化能力和数据效率方面可能具有不同的特征

1.1.2 数据的质量、多样性、跨本体数据、训练方法的研究

除了VLA本身,用于开发VLA的训练数据的质量和多样性同样重要。随着著名VLA的近期进展[4-π0,7-Rt-2,22-Openvla,35-Open x-embodiment,39-Octo],来自不同来源的大规模数据对于在对抗分布外任务和环境的鲁棒性和泛化方面进一步提高性能非常重要

然而,它们在详细的训练方法上存在很大差异:一些利用额外的数据进一步预训练VLMs,使表示更接近机器人操作任务[4-π0],而另一些则与领域内任务共同训练VLA[7-Rt-2,22-Openvla,35-Open x-embodiment,39-Octo]

此外,通过充分预训练在多样化操作技能上,期望机器人策略能以最少的示范学习新技能[13]。因此,在开发高效VLA的情况下,何时利用大规模跨化身数据成为一个有趣的问题

为了彻底研究上述问题并找到VLA的最有效解决方案,作者的研究选择了4种VLA结构、8种不同骨架和3种不同的训练数据方案来训练VLA模型

1.1.3 RoboVLMs:使任何VLM能轻松集成到VLA中

在作者的实验中,他们提出了一个新的框架,RoboVLMs,将VLM转移到VLA,并提供了一个统一、灵活、易于使用的开源框架,使任何VLM能轻松集成到VLA中,几乎不需要额外努力,允许机器人从业者研究、比较和部署未来的VLA

此外,他们还在一个自收集的真实世界机器人操作数据集上训练和评估了建成的VLA,该数据集由100个操作任务和总共74K条轨迹组成

  1. 具体来说,他们最初选择了三个常用的VLMs——LLaVA、Flamingo和KosMos 作为骨架,将它们与四种VLA结构结合起来,检查动作空间、观察视野和历史聚合方法的效果

    对于应该如何制定VLA
    通过广泛的研究和实验,连续动作始终优于自回归离散动作,同时结合历史背景对于提高性能和解决部分可观测性至关重要

    发现连续动作空间的策略头建模表现最佳后,又比较了8种不同的VLMs作为骨架与策略头形式,以回答哪个骨架更适合

    对于哪种VLM骨干更适合用于VLA
    作者对8种不同的VLM骨干进行的广泛研究显示,两种杰出的VLM骨干,即KosMos [36]和Paligemma [3],显著优于其他骨干。这些结果强调,全面的视觉-语言预训练对于实现卓越的VLA性能至关重要
  2. 同时,比较了不同VLA结构的泛化和数据效率
    对于模型架构,直接与策略头集成的视觉-语言模型(VLM)表现优于其他形式,因为一致使用,即视觉-语言token应以其原始预训练格式进行处理,并添加策略头以整合过去的视觉和本体感知观察以进行有效决策

    对于数据效率
    更大的VLM进一步提高效率,需更少的数据即可实现更高的性能
  3. 对于何时利用跨化身数据的问题
    虽然普遍认为使用跨体数据进行预训练或后训练能提高性能,但这一观点尚未得到严格验证。他们的研究结果表明,使用跨体数据进行预训练并不总能显著改善最终性能。然而,在目标数据集上对跨体预训练模型进行后训练可以显著提高性能

    故作者比较了
      预训练(使用Open X-Embodiment训练的VLA)
      微调(使用目标数据集训练的VLA)
      后训练(使用Open X-Embodiment预训练并进一步用目标数据集微调的VLA)——相当于预训练 + 微调
  4. 最后,为了确认具有最佳配置的VLA在真实世界中的适用性,作者在真实世界机器人操作场景中训练和评估了它们,展示了在
    1)未见的干扰物
    2)未见的背景
    3)未见的目标对象
    4)新技能描述方面的泛化能力

此外,利用相同机器人或任务的操作数据可以明显提升性能

例如,模块化方法利用预训练的视觉和语言模块来编码多模态输入的潜在表示 [6- Rt-1,31-What matters in language conditioned robotic imitation learning over unstructured data],而替代方法则依赖于使用多样化的机器人数据集进行直接训练 [39-Octo]。即使在VLA研究中,对于架构或训练方案也没有共识 [7-Rt-2, 8-Gr-2, 22-Openvla, 24-Vision-language foundation models as effective robot imitators]

1.2 主要结果及发现

利用RoboVLMs这个框架,作者进行了广泛的实验以解决几个关键问题

  1. 为什么更喜欢 VLA?
  2. 应该如何制定 VLA?
  3. 哪种 VLM 主干更适合 VLA?
  4. 应该何时利用跨实体数据集?

如下表 I 所示

作者进一步将 4 个基本问题分为 6 个研究问题,并实施 VLA 的连续实验以回答每个研究问题。使用适当的主干和结构构建的 VLA 模型可以大幅超越最新的通用机器人策略

为了全面评估 VLA 的性能,在这项工作中,作者对所有模型进行了基准测试,具体而言,如下图图 3 所示

选择了两个知名且广泛使用的模拟基准(CALVIN[32] 和 SimplerEnv[40])以及一个现实世界的机器人操作实验来评估 VLA 模型

  • CALVIN[32] 是一个用于多任务桌面操作的模拟基准,数据集根据不同的场景设置分为 A、B、C和 D 四个部分,并提供 34 个基本任务,总共包含 24K 人工远程操作演示,并附有语言指令注释
    评估指标包括完成1 ∼5 个连续任务的成功率,以及成功执行的任务平均数量(简称为Avg. Len.)
  • 真实机器人基准测试[8]包括超过70K的远程操作人类轨迹,用于微调机器人策略,涵盖105个操作任务
    为了评估模型在该基准测试上的性能,采用[23- Gr-mg: Leveraging partially annotated data via multi-modal goal conditioned policy]中概述的方法,在一个简单设置和四个具有挑战性的未见设置中测试每个模型

    这些设置的示例如下图图4所示

    总共,在20个任务中评估每个VLA,每个任务有5个设置,每个设置有3次执行,并报告每个设置的平均成功率。基准测试的详细描述见附录K和附录D。这些基准测试中包含的所有任务都由单臂机器人驱动,导致7个自由度的动作——夹持器的6D姿态和一维的开/关状态。机器人观测可以从本体感受器信息、视觉观测和语言输入中获得

1.2.1 为什么偏爱VLA?——是否合适构建通用策略、现实世界中的表现如何

1.2.1.1 是否合适构建通用策略

关于为什么需要VLA?可以先回答

问题1:VLA是否是构建通用机器人策略的合适选择?

具体来说,作者展示了研究中表现最好的VLA,它在CALVIN和SimplerEnv基准测试中创造了新的最先进成果,以明显优势超越了所有其他机器人策略

所有结果如表II和图5所示「在CALVIN基准上的模拟性能,所有模型均在拆分ABCD/ABC上训练,并在拆分D上评估。KosMos P.H.代表使用KosMos-2作为骨干和策略头作为架构的VLA,且使用RoboVLMs框架构建,最大训练5个周期——即KosMos P.H. represents the VLA utilizing KosMos-2 as backbone and policy head as architecture, built with theRoboVLMs framework, and is maximally trained for 5 epochs

从这些表格中,可以看到,RoboVLM大幅超越了现有的最先进通用策略,并为机器人操作任务在模拟和实际实验中建立了一个强有力的基准

具体来说,可以轻松观察到以下事实

  • 在CALVIN 基准测试中,RoboVLM模型在所有指标上都达到了最高性能,并在从ABC 转移到D(一个在训练分割中未见过的新场景)时展示了卓越的泛化能力,单个任务执行的绝对提升为12.6 %,连续5 个任务的总提升为30.3 %
    平均而言,在零样本设置下,RoboVLM可以在每次单独展开中完成5 个任务中的4.25 个,超越了之前的SOTA 模型(GR-1)1.09 个任务
  • 在SimplerEnv 中,RoboVLM在WidowX + Bridge 和Google Robol 环境中都实现了最高的平均性能,展示了对不同设置和多样化操作任务的普遍有效性和鲁棒性

此外,作者还研究了视觉-语言预训练对泛化和数据效率的影响(图6和表IV),详细结果见附录H

  1. 在CALVIN的泛化中,作者采用官方设置:在ABC的分割上训练模型,并在D上验证性能
  2. 为了评估数据效率,我们在模型规模从3B到9B和各种数据规模上进行实验:10%的训练数据(0.1x ABCD),标准设置(ABCD),以及500%的训练数据(5x ABCD),额外的数据来自于官方发布的未标记数据集,遵循Wu等人[47]中介绍的设置,不同数据规模的详细结果见附录E

可以看到,视觉-语言预训练对于泛化和数据效率都是至关重要的。这个观察是直观的,因为对齐的视觉-语言表示提供了一个稳固的视觉理解基础,使策略能够专注于学习操作技能。因此,可以得出结论

发现1:VLA是通用机器人策略的有前途路径

1.2.1.2 VLA在现实世界的场景中的表现如何

然而,尽管VLA在模拟中表现良好,由于模拟到现实的差距[54],VLA是否适合实际机器人应用仍然是一个未解的问题,故,作者提出第二个开放问题

问题 2:在现实世界的场景中,VLA 的表现如何?

如上所述,作者在现实世界的场景中部署了表现最佳的RoboVLM模型,即基于仅解码器KosMos的模型,以验证其有效性

如下图图4所示,作者的实验涉及20个具有多种技能的任务,包括打开、关闭、按按钮、拾取和放置等任务

对于每项任务,我们评估五次执行,包含基本设置、新技能描述、未见过的干扰因素、未见过的目标对象和未见过的背景

  • 该机器人系统用于真实实验,基于一个7自由度的Kinova Gen3机械臂,配备Robotiq 2F-85夹爪,更多关于真实机器人的细节请参见第四节
  • 输入方面,分别获取机器人头部和手腕上的两台摄像机的RGB图像
    头部摄像机提供工作空间的概览,而夹爪摄像机则提供末端执行器与环境之间交互区域的近距离观察

在真实机器人基准上微调由RoboVLMs构建的Octo-Base、OpenVLA和KosMos P.H.,并比较它们的性能。结果如图7所示

他们观察到,由RoboVLMs构建的最佳VLA(KosMos P.H.)在所有评估设置中均表现最佳,尤其是在简单和未见过的背景上,展示了其有效性和泛化能力,这与SimplerEnv和CALVIN模拟中的结果一致

至于定性结果在附录K中展示,包括各种设置下的成功执行和一些具有代表性的失败案例。KosMos P.H.不仅在基本设置任务如打开抽屉、拾取茄子等方面优于基线模型,而且在未见过的物体、干扰物和背景上也能实现更好的性能

此外,如下图图8所示

KosMos P.H. 展现出自我纠正能力,它能够识别末端执行器的不正确位置,并纠正其未来的轨迹以成功完成任务。请注意,这种能力在其他测试的基线中没有出现,而这种数据不包含在训练数据集中

如此可以得到

发现2:由RoboVLMs构建的最佳设置的VLA在实际场景中表现出强大的有效性和鲁棒性

1.2.2 如何制定VLA?策略头结合历史观测和连续动作,且提高泛化和数据效率

1.2.2.1 如何对机器人操作任务中的观测、状态和动作进行建模

更具体地说,应该如何在VLA的背景下对机器人操作任务中的观测、状态和动作进行建模?

为了解决这个问题,作者实现了几种变体,利用了各种开源VLM骨干网络,如OpenFlamingo [35]、LLaVA [28]和KosMos [36-Kosmos-2: Grounding multimodal large language models to the world]

这些变体结合了不同的历史信息建模策略和动作空间,如在Sec.I中讨论和分类的那样。CALVIN中各种VLA结构的性能总结在表III中「下图中,one-step代表一步模型,interleaved代表交错,policy head代表策略头,discrete代表离散,continuous代表连续

根据这些结果,可以得出以下关键观察:

  1. 连续动作很重要
    通过比较两种类型的动作空间,连续和离散,如表III所示,观察到在单帧公式下,连续动作空间始终优于离散动作,尤其是在任务时间跨度增加时
    这一发现是直观的:连续动作可以表示高精度的浮点值,而离散动作仅限于索引动作区间。对于长时间跨度任务,累积的复合错误显著降低了离散动作的性能
  2. 历史观察事项History observation matters
    如表 III 所示,在相同的 VLM 结构下(无论是编码器-解码器还是仅解码器),将历史观察作为输入的模型始终优于一步模型,在所有任务中均实现了显著更高的成功率「models incorporating history observations as input consistently outperform one-step models」。这种改进不受历史融合策略的影响
    此外,增加可观察历史的长度可以提高性能,尽管会带来更高的计算开销
  3. 策略头policy head改进历史融合
    在利用历史信息的各种公式中,交错历史公式的表现不如通过额外的策略头合并历史信息的效果好「Among the formulations utilizing history, the interleaved history formulationperforms worse than merging history via an additional policy head」。假设策略头保留VLM 的原始视觉-语言融合能力,同时有效地整合历史信息
    此外,交错的公式在训练和推理过程中会导致显著更高的内存和 FLOP 成本。这表明,通过附加的策略头来结合历史信息对于 VLAs 是一种更有效和高效的方法

发现3:VLA在使用多步骤的历史观测作为输入和连续动作作为输出时,其性能最佳。为了将历史与连续动作空间结合,策略头结构表现更佳

1.2.2.2 不同的公式化如何影响VLAs的泛化和数据效率?

然而,除了性能本身之外,现代VLA面临的最重要挑战之一是实现对新对象和环境设置的泛化,这对于在各种机器人和场景中的实际部署至关重要

因此,VLA应在开放世界环境中继承VLM的泛化能力,同时在有额外域内训练样本可用时保持高数据效率。因此,他们进一步探讨以下问题

问题4:不同的公式化如何影响VLAs的泛化和数据效率?

为了解决这个问题,作者对各种VLA公式的泛化和数据效率进行了实证研究和评估,旨在为训练高性能的VLA提供实用见解

具体来说,他们通过在不同数据规模上使用CALVIN数据集训练不同架构和公式的模型,评估由RoboVLMs构建的不同VLA的泛化和数据效率

如前所述,他们重点比较交错和策略头公式——使用OpenFlamingo和KosMos骨干网络,这些配置在所有配置中显示出强大的潜力

请注意,交错的公式只能与仅解码器结构配对。图9和表IV中展示的结果导致以下观察

  • 关于泛化性能(图9),作者的最佳模型基于KosMos骨干网络,并利用策略头进行历史融合,在零样本设置中仅表现出轻微的性能下降

    相比之下,其他公式化方法则经历了显著的性能下降。这个发现强调了模型架构对泛化的显著影响
    这一结论在图5的结果中得到了进一步支持,其中评估集中的任务与新指令配对;
    以及在图7中,他们的最佳模型在所有未见任务上大幅领先于其他模型
  • 对于数据效率,他们观察到与泛化类似的趋势
    他们的最佳模型在训练数据缩减时始终实现最高性能,并且与其他公式相比,性能下降速度显著较慢
    此外,不同规模的编码器-解码器VLA比较显示,较大的模型往往更具数据效率

如此,得出

发现4:在泛化能力和数据效率方面,利用策略头进行历史融合是最好的

1.2.3 哪种VLM骨干网络更适合VLA?KosMos和Paligemma证明:充分视觉-语言预训练很有用

在大规模视觉-语言数据集上训练VLMs需要极高的资源。因此,他们基于多样化选择的预训练大规模视觉-语言骨干进行VLAs,它们具有不同的架构、训练数据规模、模型大小和潜在嵌入

这些包括

  1. Flamingo模型家族[1](编码器-解码器)
  2. 以及一系列仅解码器的VLMs,包括LLaVA[28]、Qwen-VL[2]、MoonDream[44]、UForm[41]、Paligemma[3]和KosMos[36]

值得注意的是,在本节中,为了公平比较,所有模型均使用静态图像进行训练,而非同时使用静态和手持相机。尽管这种方法可能无法提供完全受控的比较,但他们的广泛实验旨在提供关于不同VLM骨干对VLA影响的见解

结果如表V所示,揭示了以下观察

KosMos和Paligemma表现出明显更好的性能:从表V可以看出,这两个骨干比其他骨干有显著的优势。它们的优越性能得益于在大型视觉语言数据集上进行的充分视觉语言预训练——也从侧面解释了为何目前的vla sota模型π0,选择PaliGemma作为其中的VLM结构部分的原因

这一结果是直观的,因为广泛的预训练促进了视觉和语言特征之间更强的对齐——这种对齐对语言条件操控任务至关重要

从而也就说明了

发现5:VLAs从VLMs主干的“大型视觉语言数据集上进行的充分视觉-语言预训练”中受益——即VLAs benefit from the sufficient vision-language pre-training on large vision-language datasets of VLMsbackbone

1.2.4 应该何时利用跨实体数据集?大规模跨体预训练可提高机器人操作和泛化能力

在最近的研究中,利用大规模跨形态机器人操作数据集来提高VLAs的性能已成为一种主流趋势[4-π0, 7- Rt-2, 22-Openvla, 35- Open x-embodiment]。然而,是否真正有帮助仍不完全清楚,一个重要的问题仍然存在:

问题6:大规模跨形态数据集如何对VLAs做出贡献?

为了解决这个问题,作者将其分解为两个子问题:

  1. 从大规模跨载体数据集中获取哪些类型的数据对构建VLA最有利?
  2. 何时以及如何有效地利用这些数据?

在本节中,他们进行了一系列实验,以研究使用外部大规模跨实体数据集的不同策略。具体来说,作者探讨了两种主要的设置

  • 预训练:使用领域内操作数据和跨实体数据集对模型进行预训练。这种方法已在RT-2 [7]、OpenVLA [22] 和OCTO[39] 中进行探索
    ——如下图所示,该图来自此文《GRAPE——RLAIF微调VLA模型:通过偏好对齐提升机器人策略的泛化能力(含24年具身模型汇总)》的开头

  • 后训练:首先在跨实体数据集上训练VLMs,然后通过领域内操作任务进行微调。这一策略已被π0 [4] 采用

本节中的实验使用表现最佳的KosMos骨干网与用于历史融合的策略头作为基础模型。他们使用Open X-Embodiment (OXE) [35] 作为跨实体数据集,该数据集包含了全球收集的多种机器人操作数据,是最近研究中使用最广泛的[比如广泛应用于4-π0, 7- Rt-2, 22-Openvla, 39-Octo]

为了进行比较,他们还评估了一个基线设置Finetune,其中VLA仅在域内数据上进行训练

此外,对于Google Robot,包括了RT Partial Finetune和RT Finetune

  • 其中RT Partial Finetune仅涉及与评估任务相同任务类型的轨迹
  • 而RT Finetune涉及使用来自同一机器人在不同任务中的额外数据对策略进行协同微调
    and RT Finetune involves co-fine tuning the policy with additional data from the same robot across different task

对于Bridge,只评估Bridge Finetune,它使用整个Bridge-V2数据集微调策略,因为训练数据集中不包含具有相同评估任务指令的轨迹

为了更全面地评估跨体数据集的影响,他们还在CALVIN上进行了实验,CALVIN不属于OXE。对于CALVIN,他们省略了共同训练设置,主要关注跨体数据集是否有利于机器人操控在分布外任务上的少样本学习

因此,他们在CALVIN上仅使用每个任务10条轨迹进行实验(CALVIN少样本)

为了保持设置一致,他们仅使用来自静态头顶摄像头的图像作为输入。在不同训练阶段利用跨化身的比较如图10所示

从上到下,该图显示了SimplerEnv-Google Robot和SimplerEnv-Bridge的评估结果。此外,关于是否在CALVIN few-shot上整合跨化身预训练的比较如图11所示

可以得出以下观察结果

  1. 使用跨体现数据进行预训练并没有显著帮助
    比较OXE Pre-train和RT-Partial Finetune可以发现,对于谷歌机器人和Bridge,使用跨体现数据进行共同训练并没有带来实质性的性能提升
    特别是对于谷歌机器人来说,使用额外的领域内数据进行训练(RT Finetune)——即便是来自不同任务的数据——也能实现更高的成功率(相比于RT-Partial Finetune)
    这表明领域内

    即使是与任务无关的数据,也比跨载体数据更有效地提高模型性能
  2. 在跨载体预训练后进行后训练显示出潜在的好处
    后训练模型的平均性能(在Google Robot 上为52 %,在Bridge 上为38 %)超过了仅在域内数据上微调的模型(在Google Robot 上为48 %,在Bridge 上为31 %)
    这表明跨载体预训练可以提供一个有用的初始化,从而有利于随后的微调
  3. 预训练提高了少样本学习性能
    在CALVIN 的少样本设置中,使用单视角头部摄像头,预训练显著提高了性能,单任务执行提高了17.2 %,每次回合多执行0.25 个任务
    可以得出结论,在大规模跨载体数据集上进行预训练有利于学习更有效的机器人操作表示,这可以快速适应包含未见过的物体和环境设置的新操作任务

从而得出发现6

发现6:即使来自不同任务的额外领域内数据也显示出有益,并且大规模跨体现预训练进一步提高了整体以及少样本性能

1.3 小结:相关结论

1.3.1 解决的4个基本问题

这项实证研究主要关注于构建视觉-语言-动作模型(VLA)时的重要因素。作者提出了四个构建VLA的基本问题:

  • 为什么我们需要VLA而不是其他通用策略,并通过大幅超越现有方法,说明研究VLA的必要性
  • 接下来,描述了构建基于VLM的VLA的关键组件:
    应该使用哪种VLM骨干——对应上文的1.2.3 哪种VLM骨干网络更适合VLA?KosMos和Paligemma证明:充分视觉-语言预训练很有用
    如何训练模型生成动作——对应上文的1.2.2 如何制定VLA?策略头结合历史观测和连续动作,且提高泛化和数据效率
    以及何时应将跨载体数据添加到训练阶段

为回答这些问题,作者建立了一个统一框架,以便对VLA进行公平比较,并设计了一系列自下而上的系统实验

为此,作者在三个模拟器中进行了广泛的实验,涉及20个任务中的240多次实际场景的执行

可以从实验中得出结论:

  1. 对于为什么的问题,VLA能够实现高性能和泛化,是通用机器人策略的有前途的路径;
  2. 对于哪个问题,发现在大规模视觉-语言数据集进行“充分视觉-语言预训练”的VLM适合构建VLA
    For the Which problem, we find that VLMs with sufficient vision-languagepre-training over large scale vision-language datasets is suitable for constructing VLAs.
  3. 对于如何的问题,可以研究不同VLA结构的性能、泛化和数据效率,发现整合历史观察对于VLA至关重要,并且相比交错,策略头是一种更有效和高效的历史聚合方法
  4. 对于何时的问题,我们比较了在不同阶段整合跨载体的三种训练方法,并得出结论,额外的域内数据显示出有益,并且大规模跨载体预训练进一步提高了整体以及少样本性能

作为对提出问题的答案的副产品,作者构建了一个易于使用的框架,便于整合任意VLM并将其转换为VLA,名为RoboVLMs

1.3.2 研究中的观察与限制

在作者的实验中,他们发现基于 Qwen-VL 和 LLaVA 构建的 VLA,其性能出奇的低,与其在视觉语言任务中的原始性能相比。 在视觉编码器后添加感知重采样器后,他们发现基于 Qwen-VL 和 LLaVA 的 VLA 可以获得显著的性能提升并达到合理的性能。他们假设性能提升与输入标记序列中的图像分辨率和视觉标记数量有关。

尽管他们尽力研究构建视觉语言代理 (VLA) 的关键挑战,但这项工作仍处于初步阶段,目前存在一些限制

  1. 为了快速和简单地扩展现有的视觉语言模型 (VLM),他们保留了 VLM 中的多模态交互结构(例如,注意力掩码、专家混合)
    在此基础上,他们进一步发展了视觉、语言和动作之间的交互,这在大多数现有作品中是一种常见的方法 [22,24]
    然而,针对架构和与动作的多模态交互的专门设计有可能产生更优异的性能(例如,π0 模型 [4]),值得进一步探索
  2. 出于 (1) 中所述原因,这里考虑的VLA 分类和公式是简化和有限的
  3. 本工作中未充分探索动作标记化、策略头和相应的训练目标。 例如,像 VQ-VAE [42]、扩散模型 [9,17] 和流匹配 [4,12,26] 这样的技术在 VLA 上下文中仍未得到充分探索
  4. 本研究中考虑的 VLM 骨干网络集是有限的,可以积极扩展
  5. 将如此大型的模型用于实时机器人控制仍然是一个重大挑战

对于未来的工作,作者设想了几个推进通用机器人策略的潜在方向

  1. 如前所述,他们当前的方法在 VLM 的内部结构、策略头和相应的训练目标的设计上存在局限性。 进一步研究 VLA 的更细粒度设计选择可能非常有价值,因为最近的研究表明它们在提高效率和效果方面发挥了重要作用 [4-π0]
  2. 除了语义泛化之外,理想的通用机器人策略应该能够处理长时间的复杂任务指令(例如,做早餐),逐步推理可执行的动作,并与环境产生有意义的物理交互「例如,[52-Robotic control via embodiedchain-of-thought reasoning],相当于CoT赋能具身模型,本博客后面会解读下
    故作者设想,在他们未来的工作中,他们旨在探索开发具有这些高级能力的策略所需的关键要素

第二部分 通用方法论与各类VLA模型的总结

接下来,考虑基于语言指令 和每个时间步t 的历史观测(最大历史长度为H)来控制机器人完成一组任务的问题

  1. 在本文中,主要考虑一个桌面机器人手臂,因此观测 是传感器输入和图像,例如,,来自第三视角相机、夹持器相机或两者兼有
  2. 建立了一个控制策略,其中动作a 被建模为一个7 维向量,包括夹持器的6 自由度位姿及其开/关状态

2.1 视觉语言模型

如RoboVLM论文中所说,视觉语言模型(VLMs),也称为多模态大型语言模型,将视觉整合到其输入模态中,使其能够处理和推理视觉和文本信息

通常,VLMs通过图像和/或文本生成文本[1,2,3,28,41,44],从而促进图像字幕生成、视觉问答和目标导向的规划等应用。这个过程可以形式化地描述为

这里, 和 分别表示图像和文本提示,而 代表由VLM 生成的文本输出。例如,在视觉问答任务中,对应于问题,而 对应于生成答案的Ground Turth

训练VLM 通常涉及最小化交叉熵损失以预测离散语言token,其可以表示为

其中, 是真实文本。通过在数百万甚至数十亿对视觉-语言数据上进行预训练,VLMs 获得了视觉和文本模态的鲁棒表示

为了有效处理这两种不同的模态,VLMs 通常使用视觉处理器和语言解码器,通过各种视觉-语言特征融合机制连接。在可用的选项中,视觉变换器(ViTs)[11] 和感知重采样器[18] 是视觉处理器的广泛采用选择[24,29,39,47]。ViT 模块将每个输入图像I 重塑为补丁,并将其编码为视觉token[OBS]

其中,N 表示标记数量, 表示第i 个token,在ViT 中,是一个编码输入图像块的嵌入向量

编码器-解码器架构由两个主要组件组成:

  1. 编码器通常负责使用如上所述的输入嵌入模块从输入中提取特征
  2. 解码器则生成输出(例如,文本或多模态预测)自回归

编码器和解码器之间的特征融合通常通过解码器中的交叉注意力层实现。由于其能够在生成之前显式编码多模态信息,这种结构在需要对输入模态进行详细理解的任务中表现优异,如图像字幕生成和视觉推理。代表性模型包括Flamingo [1]和OFA [46]


至于仅解码器架构则依赖于统一的transformer框架,其中输入模态(视觉和文本)和输出序列在同一个自回归解码器中处理

  1. 在这些模型中,视觉特征首先嵌入为类似token的表示(通过视觉处理器),然后与文本token连接并传递通过解码器。多模态特征融合自然地通过自注意力机制发生,使解码器能够在token生成过程中建模视觉和文本输入之间的依赖关系
  2. 仅解码器架构更加灵活和可扩展,适合于如指令跟随、多模态问答和开放式生成等任务。仅解码器模型的例子包括GPT-4V [49]和LLaVA [28]

2.2 视觉-语言-动作模型

视觉-语言-动作模型(VLA)主要应用于机器人任务中,它们作为通用机器人策略π,能够处理复杂任务。形式上,VLA根据当前时间步t的先前观测来预测动作序列

其中, 是一系列预测的7 维动作, 是动作序列长度, 是历史观测长度。与VLMs 不同,VLAs 的观测 通常包含本体状态,例如关节角度和末端执行器位置——除了视觉输入之外

作者将VLAs 抽象并分类为基于1)历史信息建模和2)动作空间的四种代表性结构。在以形式描述这些不同模型之前,首先介绍在处理不同动作空间中的机器人动作时的一般预处理和预测原则

  1. 动作预处理
    一方面是动作归一化
    对于连续和离散动作空间,对7 自由度动作的每个维度进行归一化。按照Kim 等人的方法[22],计算训练数据中动作的第1st 和第99th 分位数,并使用这些分位数来限制动作的每个维度[7]


    其中 是动作a 的第i 维的限制值。接下来,使用动作的第1st 和99th 分位数来标准化限制动作的每一维

    是归一化的动作,每个维度的范围是[−1, 1],最后一个维度表示夹爪的开/闭状态∈{−1, 1}。在推理时,将反向映射预测的动作为未归一化的动作

    二方面是动作离散化
    对于离散动作表示,需要进一步离散化归一化的动作。根据Brohan et al. [7], Kim et al. [22]的方法,将连续的机器人动作映射到VLM的分词器使用的离散token

    具体来说,将每个机器人动作维度单独离散化为256个箱子中的一个。对于每个维度,设置箱子的宽度,以均匀划分训练数据中动作的第1和第99百分位之间的区间。使用这种离散化,将转换为,其中包含7个离散整数∈[0...255]
    且为了避免损害语言分词器中原有的特殊token位置,添加一个偏移量(默认设置为10),并用离散化的索引替换最后的偏移∼256+偏移token
  2. 动作预测
    对于连续动作
    优化预测动作序列与真实动作序列的均方误差(MSE)和二元交叉熵(BCE)

    MSE 损失是针对前六个维度计算的,而BCE 损失是针对最后一个夹持器维度计算的,计算在预测动作 和真实值,λ 是平衡权重

    对于离散动作
    离散动作模型为每个动作维度预测动作token。这些token是从按维度离散化的连续动作中得到的区间索引,可以很容易地去标记化以恢复动作向量
    优化目标具有类似于VLM训练中广泛使用的文本生成的交叉熵(CE)格式


    其中, 表示在时间i 时预测动作标记[ACT] 的第 维度的区间索引,而 是对应的真实值。在推理过程中,获得预测动作标记 后,我们将离散token重新投影到对应区间的中心——以连续形式实现任务

2.3 VLA结构:一步连续动作、一步离散动作、交错连续动作、策略头连续动作

如下图图12所示「所考虑的VLA(可变长动作)公式的示意图,包括几种流行的设计。例如,RoboFlamingo[24] 是一种策略头连续型VLA——对应于右下角RT-2 [7] 和 OpenVLA [22] 对应于一步离散动作型VLA——对应于下图左下角。Octo[39] 和 GR [47] 对应于具有固定窗口大小的交错连续动作型VLA——对应于下图右上角

VLA结构主要根据动作空间和历史聚合方法分为四类,即

  1. 一步连续动作模型,对应于上图左上角
  2. 一步离散动作模型,对应于上图左下角
  3. 交错连续动作模型,对应于上图右上角
  4. 策略头连续动作模型,对应上图右下角

请注意,RoboVLMs框架可以轻松将VLMs转移到任意VLA结构

2.3.1 一步模型:含一步连续动作模型与一步离散动作模型——分别以ACT/π0、RT2/OpenVLA为代表

一步模型仅使用当前时间步t的观测值预测未来动作序列,即历史长度为1

对于一步模型,有两个变体:连续动作模型和离散动作模型型

  • 对于连续动作模型:VLM模型首先使用VLM骨干网络预测一个可学习的token[LRN]

    这通过融合视觉和语言token(在编码器-解码器架构中)或连接多模态token(在仅解码器架构中)来实现


    然后使用一个MLP来预测动作向量


    一步连续动作模型包括ACT [53]、BC-Z [19]、MVP [37]、R3M [34]、VIMA [20]、3D Diffuser [21]、RoboMamba [29]和π0[4]
  • 对于离散动作模型,直接遵循与VLMs相同的简单下一个词预测,其中动作被离散化为类似文本的token


    一步离散动作模型包括RT-1 [6]、RT-2 [7]、3D-VLA [55]、LAPA [50]、OpenVLA [22]和Embodied-COT [52]

2.3.2 交错-连续动作模型:以Octo/GR2为代表

交错模型接收观测-动作序列:

其中, 表示时刻 的输入token,[OBS] 表示观测token,[LRN] 表示可学习的动作token,并重复H 次,以交错格式插入到

VLM 骨干网络融合此序列(在仅解码器结构中)并通过基于每个动作token的MLP 预测动作序列

用于预测动作块,表示插入在之后并在t 之前与观测融合的[LRN]。损失和动作非标准化过程与单步连续动作模型相同

在推理的时刻t

  1. 输入序列仅包含当前观测 和语言指令 ,作者在输入序列的末尾添加可学习的token[ACT],并将序列传递给VLM 以预测动作
  2. 在机器人执行预测动作后,再将新的观测和语言指令 添加到输入序列中以预测当前步骤的动作

交错连续动作模型包括GR-1 [47]、OCTO[39]、GR-2 [8]。注意,像GATO [38] 和RoboCat [5] 这样的交错离散动作模型不在考虑范围内

2.3.3 策略头连续动作模型:以字节的RoboFlamingo为代表

策略头连续动作模型:与在VLM骨干中融合历史信息的交错模型不同,策略头VLA仅要求VLM在每个时间步提供单步多模态表示

历史信息随后被建模,并通过额外的策略头预测动作,例如RNN [10,15,30]、 transformer [14, 43]或扩散模型 [9]:

动作块 的序列长度为,是基于可学习的token预测的——每个[ LRN ]t 都是相同的

需要注意的是,交错连续动作模型仅适用于仅解码器的骨干网络。策略头连续动作模型可以基于具有编码器-解码器和仅解码器结构的VLM 骨干网络构建

他们的主要区别在于语言解码器

  1. 编码器-解码器VLM 的输入序列融合仅包含文本和可学习动作token,它通过交叉注意力融合多模态输入,其中文本token与可学习token结合作为键和值,视觉token作为查询
  2. 仅解码器的骨干网络直接将视觉、语言和可学习token串联作为输入,并利用自注意力融合多模态特征

策略头连续动作模型包括RoboFlamingo [24]、RoboUniview [27] 和DeeRVLA [51]

在每个推理步骤t

  1. 当前观测[OBS]t 和语言指令 以及一个可学习的token[LRN] 被连接为一个完整的输入序列,然后传递到VLM 主干中
  2. 在策略头部获取[LRN] 并预测当前动作序列后,机器人根据预测的动作进行操作,并获得下一轮预测的新观测

// 待更

本文地址:https://www.vps345.com/3146.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP 服务器 linux 运维 游戏 云计算 deepseek Ollama 模型联网 API CherryStudio 进程 操作系统 进程控制 Ubuntu ssh javascript 前端 chrome edge 数据库 centos oracle 关系型 安全 分布式 python MCP llama 算法 opencv 自然语言处理 神经网络 语言模型 harmonyos 华为 开发语言 typescript 计算机网络 ubuntu 笔记 C 环境变量 进程地址空间 react.js 前端面试题 node.js 持续部署 Dell R750XS 科技 ai java 人工智能 个人开发 macos adb numpy rust http 网络 阿里云 网络安全 网络协议 nginx 监控 自动化运维 tcp/ip android django fastapi flask web3.py windows 搜索引擎 kubernetes 容器 学习方法 经验分享 程序人生 自动化 蓝耘科技 元生代平台工作流 ComfyUI github 创意 社区 RTSP xop RTP RTSPServer 推流 视频 kvm 无桌面 命令行 flutter matlab YOLOv8 NPU Atlas800 A300I pro asi_bench ecm bpm zotero WebDAV 同步失败 代理模式 udp unity golang 后端 IIS .net core Hosting Bundle .NET Framework vs2022 ollama llm php pycharm 串口服务器 ESP32 YOLO 深度学习 pytorch vue.js audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 nuxt3 vue3 sql KingBase mcp mcp-proxy mcp-inspector fastapi-mcp agent sse 银河麒麟 kylin v10 麒麟 v10 LDAP spring boot websocket docker 实时音视频 filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 面试 性能优化 jdk intellij-idea 架构 c++ c语言 gitlab DeepSeek-R1 API接口 多线程服务器 Linux网络编程 json html5 firefox conda pillow spring kylin 大数据 v10 镜像源 软件 armbian u-boot 向日葵 jenkins gitee 嵌入式硬件 驱动开发 硬件工程 嵌入式实习 电脑 权限 爬虫 Samba SWAT 配置文件 服务管理 网络共享 ollama下载加速 大模型 WSL win11 无法解析服务器的名称或地址 mysql ftp DeepSeek 服务器繁忙 AI tomcat apache stm32 单片机 qt 开源 Cline ecmascript nextjs react reactjs 网络工程师 华为认证 URL 学习 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 MI300x openwrt maven ide ux 多线程 云原生 k8s LLM Web APP Streamlit 机器学习 string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap 目标检测 计算机视觉 开发环境 SSL证书 Python 网络编程 聊天服务器 套接字 TCP 客户端 Socket 小程序 svn 能力提升 面试宝典 技术 IT信息化 live555 源码剖析 rtsp实现步骤 流媒体开发 c# odoo 服务器动作 Server action Flask FastAPI Waitress Gunicorn uWSGI Uvicorn prometheus 银河麒麟操作系统 国产化 rpc 远程过程调用 Windows环境 Docker Hub docker pull daemon.json Linux 直播推流 excel 腾讯云 智能路由器 媒体 微信公众平台 C语言 ipython 物联网 Hyper-V WinRM TrustedHosts redis 联想开天P90Z装win10 DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 jmeter 软件测试 microsoft Dify C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 av1 电视盒子 机顶盒ROM 魔百盒刷机 Deepseek 3d 数学建模 网络结构图 统信UOS 麒麟 bonding 链路聚合 vscode mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 数据集 windows日志 web安全 安全架构 游戏服务器 Minecraft ddos cursor MCP server C/S LLM agi AIGC ansible playbook gpu算力 H3C 命名管道 客户端与服务端通信 uni-app Cursor 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 华为云 springsecurity6 oauth2 授权服务器 前后端分离 openEuler jar arm html FunASR ASR 佛山戴尔服务器维修 佛山三水服务器维修 android studio 交互 go file server http server web server ssl https 集成学习 集成测试 代码调试 ipdb 远程连接 rdp 实验 ios 远程工作 负载均衡 pygame 小游戏 五子棋 消息队列 安装教程 GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 oceanbase rc.local 开机自启 systemd UOS 统信操作系统 yum 监控k8s集群 集群内prometheus 深度优先 图论 并集查找 换根法 树上倍增 git elasticsearch shell 僵尸进程 MNN Qwen 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 chatgpt llama3 Chatglm 开源大模型 hugo arm开发 远程桌面 gaussdb DeepSeek行业应用 Heroku 网站部署 xss Docker Compose docker compose docker-compose AI编程 pppoe radius 编辑器 flash-attention 报错 AI agent TRAE GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 java-ee next.js 部署 部署next.js 国标28181 视频监控 监控接入 语音广播 流程 SIP SDP 机器人 googlecloud bash JAVA IDEA Java 弹性计算 虚拟化 KVM 计算虚拟化 弹性裸金属 idm ci/cd virtualenv debian EMQX MQTT 通信协议 运维开发 Reactor 设计模式 C++ 宝塔面板 同步 备份 建站 安全威胁分析 vscode 1.86 豆瓣 追剧助手 迅雷 nas 微信 内存 unity3d jvm aws 备选 网站 api 调用 示例 银河麒麟桌面操作系统 Kylin OS vim postman mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 intellij idea spring cloud IIS服务器 IIS性能 日志监控 重启 排查 系统重启 日志 原因 mosquitto 外网访问 内网穿透 端口映射 word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 sqlite dubbo TCP服务器 qt项目 qt项目实战 qt教程 openssl 密码学 根服务器 Agent kafka hibernate AI大模型 大模型入门 大模型教程 webrtc sqlserver 国产操作系统 ukui 麒麟kylinos openeuler Linux PID 微服务 统信 虚拟机安装 游戏程序 eureka ffmpeg 音视频 温湿度数据上传到服务器 Arduino HTTP 医疗APP开发 app开发 ruoyi springboot 雨云 NPS 孤岛惊魂4 恒源云 tcp mongodb big data oneapi open webui 博客 Headless Linux 远程登录 telnet pdf asp.net大文件上传 asp.net大文件上传下载 asp.net大文件上传源码 ASP.NET断点续传 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 交换机 visualstudio zookeeper fpga开发 rtsp rtp HarmonyOS Next 毕昇JDK prompt easyui langchain webstorm Trae IDE AI 原生集成开发环境 Trae AI 测试工具 1024程序员节 中间件 可信计算技术 网络攻击模型 mcu 数据分析 CPU 主板 电源 网卡 n8n 工作流 workflow rclone AList webdav fnOS 信息与通信 jupyter 图形化界面 换源 国内源 Debian 项目部署到linux服务器 项目部署过程 本地部署 wsl2 wsl pyqt IPv4 子网掩码 公网IP 私有IP SSH 密钥生成 SSH 公钥 私钥 生成 tensorflow 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 半虚拟化 硬件虚拟化 Hypervisor EasyConnect GCC crosstool-ng Kali Linux 黑客 渗透测试 信息收集 h.264 micropython esp32 mqtt Windows RustDesk自建服务器 rustdesk服务器 docker rustdesk 黑客技术 matplotlib 流式接口 opensearch helm 历史版本 下载 安装 大语言模型 ssrf 失效的访问控制 npm postgresql pgpool iperf3 带宽测试 grafana vscode1.86 1.86版本 ssh远程连接 selete 高级IO 田俊楠 SSE 系统安全 多层架构 解耦 open Euler dde deepin 嵌入式 linux驱动开发 迁移指南 SSH 服务 SSH Server OpenSSH Server ShenTong .netcore hadoop safari pip Mac 系统 系统架构 硬件架构 计算机 网工 outlook nvidia xrdp 图像处理 线程 TrinityCore 魔兽世界 devops 游戏引擎 sysctl.conf vm.nr_hugepages adobe elk 微信分享 鸿蒙 Image wxopensdk fd 文件描述符 bug ESXi 环境迁移 服务器管理 配置教程 服务器安装 网站管理 崖山数据库 YashanDB 视频编解码 Ubuntu 24.04.1 轻量级服务器 python3.11 dash 正则表达式 ip 群晖 文件分享 软件工程 iis W5500 OLED u8g2 chfs ubuntu 16.04 信号 list 模拟实现 前端框架 远程控制 远程看看 远程协助 minio 宠物 毕业设计 免费学习 宠物领养 宠物平台 sentinel visual studio code 智能手机 小艺 Pura X rsyslog cpu 实时 使用 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 NFS 双系统 毕设 AI-native Docker Desktop 相差8小时 UTC 时间 FTP服务器 跨域 mac 软链接 硬链接 cocoapods xcode 华为od OD机试真题 华为OD机试真题 服务器能耗统计 gitea WebUI DeepSeek V3 threejs 3D SenseVoice dns 数据结构 虚拟机 低代码 文件系统 路径解析 三级等保 服务器审计日志备份 Qwen2.5-coder 离线部署 yolov8 css 智能音箱 智能家居 Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 流水线 脚本式流水线 多个客户端访问 IO多路复用 回显服务器 TCP相关API efficientVIT YOLOv8替换主干网络 TOLOv8 VR手套 数据手套 动捕手套 动捕数据手套 bootstrap web gcc g++ g++13 软考 CrewAI log4j XCC Lenovo 压测 ECS 输入法 繁忙 解决办法 替代网站 汇总推荐 AI推理 CDN dba Xinference RAGFlow 压力测试 tailscale derp derper 中转 express 矩阵 线性代数 电商平台 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 大文件秒传跨域报错cors 7z unix VMware安装Ubuntu Ubuntu安装k8s 数据挖掘 AI写作 DOIT 四博智联 防火墙 NAT转发 NAT Server Unity Dedicated Server Host Client 无头主机 远程 命令 执行 sshpass 操作 stm32项目 embedding 信号处理 WSL2 wsgiref Web 服务器网关接口 onlyoffice 课程设计 自动驾驶 glibc RAGFLOW cd 目录切换 常用命令 文本命令 目录命令 ui thingsboard LORA NLP ardunio BLE 端口测试 iDRAC R720xd r语言 k8s集群资源管理 云原生开发 freebsd cnn GoogLeNet apt dell服务器 iventoy VmWare OpenEuler css3 Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 XFS xfs文件系统损坏 I_O error 合成模型 扩散模型 图像生成 es 烟花代码 烟花 元旦 序列化反序列化 磁盘监控 iot 无人机 鸿蒙系统 其他 zabbix dity make okhttp 服务器配置 生物信息学 王者荣耀 DevEco Studio HarmonyOS OpenHarmony 真机调试 服务器主板 AI芯片 Jellyfin selenium xpath定位元素 技能大赛 redhat 我的世界服务器搭建 asm Wi-Fi 超融合 sdkman 程序 Spring Security 我的世界 我的世界联机 数码 Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 具身智能 firewall 缓存 ISO镜像作为本地源 云电竞 云电脑 todesk cuda cudnn 视觉检测 prometheus数据采集 prometheus数据模型 prometheus特点 抗锯齿 BMC IPMI 带外管理 Kali 职场和发展 相机 db 实习 微信小程序 jetty undertow c tidb GLIBC mysql离线安装 ubuntu22.04 mysql8.0 Typore NAS Termux 源码 程序员 rabbitmq ruby Erlang OTP gen_server 热代码交换 事务语义 rustdesk 基础入门 编程 hive Hive环境搭建 hive3环境 Hive远程模式 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 金仓数据库 2025 征文 数据库平替用金仓 webgl 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 centos-root /dev/mapper yum clean all df -h / du -sh 考研 在线office GPU ocr 思科模拟器 思科 Cisco IM即时通讯 QQ 企业微信 剪切板对通 HTML FORMAT chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 云服务 proxy模式 5G 3GPP 卫星通信 测试用例 功能测试 交叉编译 kind 虚拟局域网 AI作画 聊天室 nac 802.1 portal KylinV10 麒麟操作系统 Vmware 边缘计算 银河麒麟服务器操作系统 系统激活 MySql 显卡驱动 算力 Radius camera Arduino 电子信息 Linux环境 tcpdump epoll muduo 个人博客 X11 Xming Ubuntu Server Ubuntu 22.04.5 dify Python基础 Python教程 Python技巧 iBMC UltraISO 移动魔百盒 windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 USB转串口 CH340 飞牛NAS 飞牛OS MacBook Pro harmonyOS面试题 实战案例 邮件APP 免费软件 ceph aarch64 编译安装 HPC HAProxy 数据库架构 数据管理 数据治理 数据编织 数据虚拟化 vue less Claude 直流充电桩 充电桩 junit Linux24.04 AnythingLLM AnythingLLM安装 虚幻 SEO 漏洞 显示管理器 lightdm gdm 树莓派 VNC 深度求索 私域 知识库 阻塞队列 生产者消费者模型 服务器崩坏原因 环境配置 laravel Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos deepseek r1 jina Nuxt.js SSH Xterminal springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 frp netty p2p 腾讯云大模型知识引擎 P2P HDLC k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm QT 5.12.12 QT开发环境 Ubuntu18.04 GRUB引导 Linux技巧 网络穿透 云服务器 iphone Netty 即时通信 NIO HTTP 服务器控制 ESP32 DeepSeek make命令 makefile文件 AD域 致远OA OA服务器 服务器磁盘扩容 can 线程池 CORS 游戏机 wps 安卓 技术共享 VMware安装mocOS VMware macOS系统安装 uv ssh远程登录 vasp安装 wireshark 查询数据库服务IP地址 SQL Server ros 镜像 多进程 加解密 Yakit yaklang 语音识别 AutoDL mariadb linux上传下载 鲲鹏 昇腾 npu 健康医疗 互联网医院 HCIE 数通 模拟退火算法 ROS code-server rnn SVN Server tortoise svn 数据可视化 SysBench 基准测试 vmware 卡死 navicat MS Materials eclipse gateway Clion Nova ResharperC++引擎 Centos7 远程开发 浏览器开发 AI浏览器 业界资讯 linux安装配置 MacOS录屏软件 kamailio sip VoIP 大数据平台 mamba Vmamba 银河麒麟高级服务器 外接硬盘 Kylin seatunnel yaml Ultralytics 可视化 echarts 信息可视化 网页设计 gradle 计算机外设 AISphereButler etl etcd 数据安全 RBAC rocketmq Dell HPE 联想 浪潮 rust腐蚀 ue4 着色器 ue5 框架搭建 .net UDP的API使用 vSphere vCenter 串口驱动 CH341 uart 485 开机自启动 rag ragflow ragflow 源码启动 Java Applet URL操作 服务器建立 Socket编程 网络文件读取 模拟器 教程 升级 CVE-2024-7347 VPS .net mvc断点续传 Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 需求分析 规格说明书 bcompare Beyond Compare anaconda 产测工具框架 IMX6ULL 管理框架 飞书 web3 Linux的基础指令 autodl 软件定义数据中心 sddc lio-sam SLAM 反向代理 IMX317 MIPI H265 VCU 状态模式 composer 大模型微调 工业4.0 IMM EMUI 回退 降级 rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK 传统数据库升级 银行 LLMs 单一职责原则 HiCar CarLife+ CarPlay QT RK3588 Node-Red 编程工具 流编程 IPMITOOL 硬件管理 opcua opcda KEPServer安装 token sas 小智AI服务端 xiaozhi TTS FTP 服务器 uniapp 中兴光猫 换光猫 网络桥接 自己换光猫 微信开放平台 微信公众号配置 性能分析 bat ArkUI 多端开发 智慧分发 应用生态 鸿蒙OS hexo 移动云 僵尸世界大战 游戏服务器搭建 单元测试 linux 命令 sed 命令 nfs SSL 域名 Anolis nginx安装 环境安装 linux插件下载 策略模式 单例模式 实时互动 ldap 软件需求 rpa minecraft GIS 遥感 WebGIS edge浏览器 fast 链表 大模型应用 大大通 第三代半导体 碳化硅 元服务 应用上架 OpenSSH 自动化任务管理 ai工具 java-rocketmq 分布式训练 springcloud trae Kylin-Server Linux find grep 离线部署dify 内网环境 飞牛nas fnos yum源切换 更换国内yum源 deekseek WebRTC gpt win服务器架设 windows server vr 网卡的名称修改 eth0 ens33 cpp-httplib eNSP 企业网络规划 华为eNSP 网络规划 SRS 流媒体 直播 分析解读 ABAP x64 SIGSEGV xmm0 ip命令 新增网卡 新增IP 启动网卡 Linux的权限 存储维护 NetApp存储 EMC存储 风扇控制软件 自动化测试 性能测试 雨云服务器 李心怡 MacMini 迷你主机 mini Apple 热榜 PX4 知识图谱 docker部署Python YOLOv12 risc-v 办公自动化 自动化生成 pdf教程 CentOS swoole arcgis Invalid Host allowedHosts 程序员创富 服务器数据恢复 数据恢复 存储数据恢复 北亚数据恢复 oracle数据恢复 visual studio DenseNet 影刀 #影刀RPA# 西门子PLC 通讯 产品经理 MDK 嵌入式开发工具 论文笔记 sublime text 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 运维监控 宕机切换 服务器宕机 增强现实 沉浸式体验 应用场景 技术实现 案例分析 AR pyautogui triton 模型分析 skynet transformer figma keepalived bot Docker 虚幻引擎 sonoma 自动更新 leetcode 推荐算法 DocFlow xshell termius iterm2 ubuntu24 vivado24 neo4j 数据仓库 数据库开发 database trea idea 代理 PVE 自动化编程 ArcTS 登录 ArcUI GridItem arkUI 阿里云ECS 服务网格 istio js chrome devtools chromedriver Unity插件 键盘 ros2 moveit 机器人运动 lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 docker run 数据卷挂载 交互模式 Open WebUI Google pay Apple pay 嵌入式系统开发 鸿蒙开发 移动开发 代理服务器 TrueLicense 语法 rime 图形渲染 黑苹果 deep learning 强化学习 DNS sequoiaDB searxng 网络药理学 生信 PPI String Cytoscape CytoHubba 本地知识库部署 DeepSeek R1 模型 UDP 捆绑 链接 谷歌浏览器 youtube google gmail 服务器时间 alias unalias 别名 游戏开发 远程服务 linux环境变量 硬件 设备 PCI-Express VMware创建虚拟机 conda配置 conda镜像源 音乐服务器 Navidrome 音流 ping++ DBeaver 大模型部署 nlp 混合开发 JDK regedit 开机启动 信创 信创终端 中科方德 minicom 串口调试工具 大模型推理 大模型学习 车载系统 搭建个人相关服务器 sqlite3 dns是什么 如何设置电脑dns dns应该如何设置 本地化部署 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 京东云 dock 加速 政务 分布式系统 监控运维 Prometheus Grafana 私有化 docker命令大全 架构与原理 ai小智 语音助手 ai小智配网 ai小智教程 智能硬件 esp32语音助手 diy语音助手 玩机技巧 软件分享 软件图标 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 gpt-3 文心一言 Deepseek-R1 私有化部署 推理模型 人工智能生成内容 欧标 OCPP 金融 物联网开发 网络用户购物行为分析可视化平台 大数据毕业设计 lua clickhouse vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 社交电子 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 RAID RAID技术 磁盘 存储 域名服务 DHCP 符号链接 配置 VLAN 企业网络 mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 大模型面经 音乐库 飞牛 实用教程 拓扑图 docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 匿名管道 hosts midjourney 裸金属服务器 弹性裸金属服务器 基础环境 xml ubuntu20.04 开机黑屏 Ark-TS语言 iftop 网络流量监控 cmos 状态管理的 UDP 服务器 Arduino RTOS 沙盒 word 粘包问题 多路转接 项目部署 干货分享 黑客工具 密码爆破 Windsurf USB网络共享 Playwright EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 执法记录仪 智能安全帽 smarteye 流量运营 mybatis Ubuntu共享文件夹 共享目录 Linux共享文件夹 ssh漏洞 ssh9.9p2 CVE-2025-23419 flink Cookie 华为机试 Attention 数据库系统 C# MQTTS 双向认证 emqx IO模型 AI代码编辑器 remote-ssh RAG 检索增强生成 文档解析 大模型垂直应用 seleium LInux llama.cpp 做raid 装系统 火绒安全 内网服务器 内网代理 内网通信 EtherCAT转Modbus ECT转Modbus协议 EtherCAT转485网关 ECT转Modbus串口网关 EtherCAT转485协议 ECT转Modbus网关 perf VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 kerberos 剧本 系统开发 binder framework 源码环境 openstack Xen RTMP 应用层 uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 TCP协议 CentOS Stream gnu 蓝桥杯 Logstash 日志采集 软负载 kali 共享文件夹 VS Code 开发 CLion 嵌入式Linux IPC milvus firewalld AI Agent 字节智能运维 AD 域管理 spark HistoryServer Spark YARN jobhistory 网站搭建 serv00 grub 版本升级 扩容 curl wget 端口 查看 ss wpf VSCode raid5数据恢复 磁盘阵列数据恢复 自定义客户端 SAS docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 ubuntu24.04.1 AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 服务器部署ai模型 灵办AI Redis Desktop 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份