知识隔离的视觉-语言-动作模型:训练更快、运行更快、泛化更好

news2025/5/31 22:01:32

25年5月来自PI的论文“Knowledge Insulating Vision-Language-Action Models: Train Fast, Run Fast, Generalize Better”。

视觉-语言-动作 (VLA) 模型通过将端到端学习与来自网络规模视觉-语言模型 (VLM) 训练的语义知识迁移相结合,为机器人等物理系统训练控制策略提供了一种强大的方法。然而,实时控制的约束通常与 VLM 的设计相冲突:最强大的 VLM 拥有数百亿甚至数千亿个参数,这给实时推理带来障碍,并且 VLM 操作的是离散tokens,而不是控制机器人所需的连续值输出。为了应对这一挑战,近期的 VLA 模型使用了专门的模块来实现高效的连续控制,例如动作专家或连续输出头,这通常需要在预训练的 VLM 主干模型中添加新的未训练参数。虽然这些模块提升了实时性和控制能力,但它们是否会保留或降低预训练 VLM 中包含的语义知识,以及它们对 VLA 训练动态的影响,仍然是一个悬而未决的问题。本文在包含连续扩散或流匹配动作专家的 VLA 环境中研究了这个问题,结果表明,单纯地引入此类专家会严重损害训练速度和知识迁移。为此,本文对各种设计方案及其对性能和知识迁移的影响进行了广泛的分析,并提出一种在 VLA 训练期间隔离 VLM 主干网的技术,以缓解此问题。


大语言模型 (LLM) 的成功可以归因于大规模数据集的可用性,以及强大的模型架构,例如以预测下一个token为目标,在数万亿个tokens上进行训练的 Transformer。LLM 可以用于解决各种任务,从创作诗歌和代码到解决竞赛级数学问题,甚至可以进一步应用于解决视觉推理问题,并通过多模态编码器进行扩展,从而生成视觉语言模型 (VLM)。将 LLM 的强大功能引入物理世界的下一步自然是进一步扩展其以执行物理动作,从而生成视觉语言动作 (VLA) 模型,该模型可以控制机器人执行语言命令,将端到端机器人学习的强大功能与从网络规模的视觉语言预训练中提炼出的语义知识相结合 [59, 24, 7]。然而,将 LLM 和 VLM 应用于现实世界的控制需要应对许多新的挑战。大多数物理系统(例如机器人)需要连续且精确的指令,例如关节角度或目标姿态,这些指令必须以高频实时生成。离散tokens的自回归解码不太适合这种高频连续控制,这既因为离散化动作的分辨率有限,也因为大模型的自回归解码计算成本高昂,而模型规模越大,这一挑战就越严峻。

此外,物理系统通常会产生比训练 VLM 更复杂的观测数据,例如多视角图像和本体感受状态。这些差异使得需要修改原始 VLM 架构以适应机器人控制。

因此,机器人界已经开发出特别适合实时连续控制需求的架构 [54, 11, 45, 55, 7, 32, 6, 8, 25, 22]。虽然许多不同的设计都取得了成功,但一个共同的主题是,用于有效灵巧控制的模型通常会在Transformer或VLM主干上添加某种用于连续输入和输出的适配器,后者最常使用例如扩散或流匹配与动作块(未来动作的短序列)[54]。这使得模型能够表示复杂的连续动作分布,选择非常精确的动作,并捕捉灵巧的高频技能。然而,当将这些附加模块添加到预训练的VLM以创建VLA时,通常需要从头开始初始化它们,并且VLA训练过程必须将它们“嫁接”到VLM主干上。这就引出了一个重要的问题:添加了这些连续状态和动作适配器的VLA实际上在多大程度上继承并受益于网络规模的预训练?
π0 和 π0.5 模型。以 π0 [7] 和 π0-FAST [37] VLA 为基础。π0 引入连续动作专家,它可以捕捉动作块的复杂连续分布,实现高效推理,并支持对灵巧任务(例如叠衣服)的连续控制。然而,正如在实验中所展示的,π0 本身会导致语言跟随和训练速度的下降,因为来自动作专家的梯度会降低预训练的 VLM 主干模型性能。π0-FAST 通过使用token化动作解决了这个问题,它使用基于 DCT 的token化器,可以高效地离散化复杂的动作块,但代价是需要昂贵的自回归推理,并且会降低执行精细动态任务的能力,在实验中也证明了这一点。π0.5 [22] 首先仅使用 FAST token 化动作进行训练,然后在训练后添加一个随机初始化的动作专家,以便通过联合训练对移动操作数据进行微调。

先前用于微调具有连续输出的 VLM 的方法,由于依赖于来自连续适配器(例如扩散头)的梯度作为训练信号,可能会导致训练动态显著下降。这会降低 VLM 解释语言命令的能力,并降低最终 VLA 策略的整体性能。为了应对这一挑战,本文提出一种解决这些问题的训练方案,称之为知识隔离。知识隔离背后的关键思想,是使用离散化动作微调 VLM 主干网络,同时使动作专家适应生成连续动作(例如,通过流匹配或扩散),而不将其梯度传播回 VLM 主干网络,如图所示。实际上,离散动作tokens提供了一种替代学习信号,该信号不受动作专家未初始化权重的影响,因此 VLM 仍然可以学习适合机器人控制的表示,但不会受到动作专家梯度带来的干扰。

请添加图片描述

构建和训练视觉-语言-动作模型 (VLA) 的标准方法如下。训练 VLA π 的思路是调整视觉-语言模型 (VLM),使其输出机器人动作 a,该动作以图像观测 I_1:V、机器人本体感受状态 q 和自然语言指令 l 为输入,即 a ∼ π(·|_I1:V , q, l)。VLA 的优势在于,在根据机器人动作进行微调时,能够继承底层已在互联网规模数据上预训练的 VLM 的知识。

动作表示。在大多数情况下,机器人动作 a 是实值向量,通常表示机器人关节角度或末端执行器坐标。一种常见的策略是采用所谓的动作分块 [54],即预测机器人动作 a_1:H 相对于当前机器人状态的轨迹。为了使 VLM 适应 VLA,有多种选择来表示这些动作块。

简单离散化。在最简单的情况下,将块中每个动作的每个维度离散化,然后将每个离散化块与一个特殊的文本token 关联 [59]。这样,块 a_1:H 被映射到 H · d 个tokens。然后,机器人动作预测被构建为下一个token 预测问题,并且该模型可以像一个非机器人特定的、带有 交叉熵损失的可变长度语言模型 (VLM) 一样进行训练。

时间动作抽象。简单离散化的缺点在于,对于高频和高维系统,表示动作的tokens数量会快速增长,这大大增加了计算成本并导致训练收敛速度缓慢。近期的研究,例如 PRISE [57] 和 FAST [37],通过应用一种在时间上压缩信息的变换来缓解这种影响。用 FAST 对动作进行编码,该方法对动作块中的每个维度应用离散余弦变换,然后进行量化和字节对编码 [18] 以生成动作tokens。

扩散和流匹配。许多近期提出的 VLA 模型使用扩散或流匹配 [29, 35] 来生成连续动作,本文实验遵循 π0 的设计,使用流匹配“动作专家” [7],如上图所示。对于流匹配时间索引 τ ∈ [0, 1],模型的输入是动作块 a^1:H_τ,ω = τa_1:H+(1−τ)ω, ω∼N(0,I) 的噪声化版本,并且训练模型预测的投影将连续状态直接映射到主干网络(“连续状态”)。

VLA 架构、训练和专家混合。大多数 VLA 是由多模态Transformer构建的,通常使用预训练的 VLM 权重进行初始化。本文描述一种基于Transformer VLA 架构的通用形式。该模型将 n 个多模态输入tokens x_i 的序列映射到 n 个多模态输出 tokens y 序列上的概率。对于 VLA,通常 y = ya 对应于动作目标。之前的研究考虑联合训练一个模型用于动作预测和 VLM 任务(其中 y = yl 是 token 化的文本输出)[14, 59]。如其模态类型 ρ : i → {图像, 单词, 动作, 状态, . . . . . } 所示,每个 token 可以是文本 tokens (xl_i)、图像块 (xI_i) 或连续输入 (xi),例如机器人状态或动作。token 嵌入不同的编码器 φ_j : T_j → Rd_e,其中 T_j 是所有类型 j 的多模态 token 空间,d_e 是模型的嵌入维度。图像块使用视觉Transformer (Vision-Transformer) 进行编码,文本 token 带有嵌入矩阵,并通过仿射投影进行连续输入。注意掩码 A (ρ(i)) ∈ {−∞, 0} 指示哪些 tokens 可以相互关注。Transformer [47] 是一个函数 f,它将 n 个输入嵌入映射到 n 个输出嵌入。它通过堆叠多个块构建而成,这些块本身由注意层、前馈层和规范化层组成。令 X = x_1:n。标准Transformer中的注意层计算为 attn(X) = E(X)W_V ,其中 E(X) = P(X)V(X),P(X) = softmax(Q(X)K(X)^T),Q(·)、K(·)、V(·) 是所谓的 Q、K 和 V 投影,例如 Q(X) = XQ_m,d_q 是投影的维度。与标准 Transformer 相比,该模型使用不同的权重处理不同的 token,正如 [28] 中提出的。作为 π0 [7],从 PaliGemma [4] 中初始化 VLM,并对动作 token 使用较小的权重集,这显著减少生成动作时的推理时间。主干和动作 token 拥有各自的Q、K和V投影,但这些投影的维度 d_q、d_k、d_v 相同,以便专家之间可以相互交互。

大多数 VLA 都是在大型机器人行为克隆数据集上进行训练的。对于自回归架构,标准的训练程序是最小化目标 token 的负对数似然 LAR-VLA(θ)。在使用流匹配进行动作预测的情况下,损失会被修改 LFLOW-VLA(θ)。

如图将当前 VLA 训练方案中的问题可视化。 自回归 VLA 速度较慢。自回归 VLA 将预测实值动作的问题转化为离散的下一个token预测问题,这既限制了模型能够表示的值分辨率,也导致了缓慢的顺序推理。π0-FAST 在 RTX4090 GPU [37] 上预测 1 秒动作块的推理时间约为 750 毫秒,正如在实验中所展示的,这可能导致动态不匹配和整体轨迹缓慢。 机器人专用架构和模态适配器无法从 VLM 预训练中获益太多。像 π0 [7] 或 GROOT [6] 这样的架构包含机器人专用模块,可以实现更快的推理。例如,π0 架构中的动作专家比 VLM 主干网络的参数更少,因此 π0 可以实现 10 Hz 的控制频率,这比自回归 VLA(1.3 Hz)快得多。

请添加图片描述

虽然这些模型的部分内容是从预训练的 VLM(例如视觉编码器或语言模型主干网络)初始化的,但机器人专用模块是从头初始化的。使用这种随机初始化的动作专家进行简单的训练会损害模型执行语言命令的能力(可能是由于梯度干扰)。 VLM 预训练没有足够的机器人表征——冻结不起作用。直观地说,维护 VLM 预训练知识并从而避免上述问题的最简单方法是冻结预训练的权重,仅训练新添加的、机器人专用的权重。然而,当前的 VLM 并未使用机器人数据进行预训练。因此,当它们的表征被冻结时,它们不足以训练出高性能的策略。

考虑了一系列措施来克服第四节中概述的先前 VLA 方法的局限性。具体而言,其提出:

  1. 同时联合训练自回归和流匹配动作预测模型(联合训练)。该模型使用(较小的)动作专家生成连续动作,以便在测试时进行快速推理。自回归目标仅在训练时用作表征学习目标,这使得模型的训练速度更快。
  2. 在非动作数据集(例如通用视觉-语言数据和机器人规划数据)上联合训练模型(VLM 数据联合训练)。在这些数据源上进行训练可确保模型在适应 VLA 时丢失更少的知识。
  3. 停止动作专家和主干网络权重之间的梯度流。这样,当将预训练的 VLM 适配到 VLA 时,动作专家新初始化的权重不会干扰预训练的权重。

联合训练和表征学习,结合离散/连续动作预测

为了实现与 VLM 数据的有效协同训练,增强从语言到策略的知识迁移,并实现快速训练,考虑将自回归语言和离散动作预测以及连续动作的流匹配建模结合到一个模型中。具体而言,学习一个模型,从中可以同时采样实值动作块 a_1:H 和文本 lˆ,即模型的输出空间为 y = (a_1:H , yl,a),其中 a_1:H 表示连续动作,yl,a 表示语言 token 和离散动作 token。用 FAST [37] token 化器将连续动作转换为离散 tokens。然后,可以从模型中联合采样动作和文本,(a, lˆ) ∼ π(·, ·|I_1:V , q, l),并使用 token 预测(参见 (L_AR-VLA)和流匹配损失(L_FLOW-VLA)的组合来训练模型,即 L_CO-VLA(θ)。

这种损失函数的构造,能够灵活地混合搭配不同模态的数据进行协同训练。具体而言,将 VLM 数据(仅包含图像和文本标注)与纯动作数据(任务是基于图像和文本的动作预测)以及语言和动作预测任务(其中采用纯动作数据,并额外使用语言描述对其进行标注,以说明机器人下一步应该做什么)相结合 [53]。以这种方式混合不同模态的数据可以增强生成的 VLA 中的知识迁移。lˆ 包含文本(语言)token 和 FAST token 化的动作 token。至关重要的是,设置注意掩码 A,使得任何离散的 FAST 动作 token 都无法关注连续的动作 token,反之亦然。在实验中,这种联合训练目标能够兼顾两者的优势:在训练过程中通过使用 FAST 动作 token 学习良好的表示获得了快速收敛,同时仍然可以通过几个流-集成步骤,获得连续动作的快速推理。

知识隔离与梯度流

使用流匹配训练的动作专家的梯度可能会对图像编码器和语言模型主干网络的训练动态产生不利影响;尤其是在将新的、随机初始化的动作专家添加到预训练的主干网络时。因此,停止从动作专家到模型中预训练权重的梯度流。当且仅当主干网络经过额外训练,能够将动作预测作为其语言输出的一部分时,这种限制才是合理的。

由于对离散动作进行联合训练,因此可以确保 Transformer 层的组合激活包含足够的信息来推断动作。预训练的模型主干网络和动作专家仅通过注意层进行交互。为了阻止从动作专家到主干网络的梯度流,需要按如下方式修改注意层。对于单头注意的情况,可以编写注意操作。结果是针对 token 特征的注意概率,这些概率分解为:来自 VLM 主干网络的特征关注主干网络特征 P_bb 的概率、动作专家特征关注主干网络特征 P_ab 的概率,以及动作专家特征关注其他动作专家特征 P_aa 的概率。鉴于此,可以通过相应地修改 softmax 计算的实现来根据需要限制信息流。

此设计的另一个优点是,可以简单地在 L_CO-VLA(θ) 中设置 α = 1,因为现在扩散损失项适用于一组独立的权重。


在现实世界中针对涵盖多种不同机器人实施例的灵巧、长视野操作任务评估方法(如图所示)。这些任务包括清洁桌子(“桌子清洁”);用双手静态机器人折叠衬衫(“衬衫折叠”);用单个静态机械臂将家居用品放入抽屉(“抽屉中物品”);以及涉及双手移动机械手的多个任务。对于后两者,仅在模型未见过任何数据的留空场景中评估模型进一步展示了在 LIBERO 模拟基准 [30] 和现实世界中的 DROID [23] 上的结果。既在单个机器人实施例上训练模型,也训练通用模型,后者使用来自许多不同机器人的大量混合数据进行训练,这些任务包括非动作预测任务,如图像字幕、边框预测和机器人规划。
请添加图片描述

通才模型基于一个包含 12 种机器人形态配置的大型数据集进行训练,其中包括单臂静态机械手(ARX、UR5、Franka)、双手静态机械手(ARX、AgileX、Trossen、UR5)和双手移动机械手(Trossen mobile、ARX slate、Galaxea G1、Hexmove H1、Fibocom)。这些机器人数据涵盖了各种各样的任务,远远超出了本文所考虑的评估任务(例如,在各种环境(包括办公室环境和真实家庭环境)下研磨咖啡豆或将毛巾挂在烤箱手柄上)。还纳入了开源 OXE 数据集 [36]。

使用各种通用 VLM 任务来训练通用模型。数据涵盖图像字幕制作(CapsFusion [52]、COCO [10])、视觉问答(Cambrian-7M [46]、PixMo [13]、VQAv2 [19])以及目标定位。对于目标定位,进一步扩展标准数据集,添加了带有边框标注的室内场景和家居物品网络数据。
使用 PaliGemma VLM [4] 架构作为 VLM 的主干,并使用其预训练权重对其进行初始化。动作专家是一个较小的 Transformer,它接收一系列带噪声的动作 aτ,ω_1:H,动作范围为 50,即 H = 50。首先使用单个线性层将带噪声的动作块投影到 Transformer 的嵌入维度。用 MLP 来投影 τ,然后应用自适应 RMSNorm 将时间步长信息注入动作专家的每一层。MLP 的形式为 swish(W2 · swish(W1 · φ(τ ))),其中 φ 是一个正弦位置编码函数 [47]。动作专家输出动作 token y^a_1:H,然后使用最终的线性投影将其解码为目标向量场。

VLM 主干网络和动作专家的维度如下:2B 语言模型主干网络的维度为 { width = 2048, depth = 18, mlp_dim = 16,384, num_heads = 18, num_kv_heads = 1, head_dim = 256 };动作专家的维度除 { width = 1024, mlp_dim = 4096} 外其他维度均相同,因此共有 3 亿个参数。
VLM 和动作专家的嵌入仅通过自注意力机制进行交互。图像、语言标记和文本状态使用完整前缀掩码;FAST 动作标记会关注此前缀,并自回归地关注先前的动作标记。动作专家的嵌入会关注前缀和彼此,但不关注 FAST 动作标记,以避免两种动作表示之间的信息泄漏。实际上,信息从 VLM 单向流向动作专家;没有任何 VLM 嵌入会关注动作专家。我们遵循π0对流匹配时间步长τ进行采样。总而言之,我们偏离了标准的均匀采样τ∼U(0,1)[29, 33]或强调中段时间步长的方法[16],而是使用强调低段时间步长的时间步长采样分布[7],该分布由p(τ) = Beta(s−τ/s; α=1.5, β=1), s=0.999 给出。

考虑机器人本体感受状态 q 的三种不同表示形式:
• 文本状态。此表示形式将状态离散化为 n_b 个容器,然后将这些容器转换为从 1 到 n_b 的数字。这些数字随后作为普通文本输入模型。这是以往 VLA 的标准方法。对于像 Gemma [44] 中的 token化器来说,这意味着最多需要⌊log10(nb) + 2)⌋ · s 个 tokens 来将状态表示为文本。
• 特殊标记状态。与“文本状态”类似,此表示形式直接使用离散化的容器,将每个容器与 VLM token化器中的一个特殊token关联起来。这需要 s 个tokens。
• 连续状态。此表示形式通过将实值向量 q 使用学习的仿射投影投影到 de 维嵌入空间,将其直接输入模型。

文本状态方法的优势在于,它最接近主干网络在预训练期间可能看到的内容,因为它只是自然文本中的数字序列,但它需要最多的 tokens。特殊 token 状态和连续状态都是模型的全新输入,并带有随机初始化的投影/嵌入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2391947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[ARM][架构] 02.AArch32 程序状态

目录 参考资料 1.程序状态 - PSTATE 2.用户模式的 PSTATE 信息 2.1.状态标志 2.2.溢出/饱和标志 2.3.大于等于标志 2.4.指令集状态 2.5.IT 块状态 2.6.端序控制 2.7.指令执行时间控制 3.用户模式访问 PSTATE - APSR 寄存器 4.系统模式的 PSTATE 信息 4.1.状态标志…

React---day4

3、React脚手架 生成的脚手架的目录结构 什么是PWA PWA全称Progressive Web App,即渐进式WEB应用;一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用;随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线…

ArkUI(方舟UI框架)介绍

ArkUI(方舟UI框架)介绍 构建快速入门 使用ArkWeb构建页面

若依微服务的定制化服务

复制依赖 复制依赖 复制system服务的bootstrap.yml文件,修改port和name 在nacos复制一个新的nacos配置,修改对应的nacos的配置 ,可能不需要修改,看情况。 网关修改 注意curd的事项,模块名称的修改

Axios 如何通过配置实现通过接口请求下载文件

前言 今天,我写了 《Nodejs 实现 Mysql 数据库的全量备份的代码演示》 和 《NodeJS 基于 Koa, 开发一个读取文件,并返回给客户端文件下载》 两篇文章。在这两篇文章中,我实现了数据库的备份,和提供数据库下载等接口。 但是&…

20250529-C#知识:运算符重载

C#知识:运算符重载 运算符重载能够让我们像值类型数据那样使用运算符对类或结构体进行运算,并且能够自定义运算逻辑。 1、运算符重载及完整代码示例 作用是让自定义的类或者结构体能够使用运算符运算符重载一定是public static的可以把运算符看成一个函…

如何在WordPress网站中添加相册/画廊

在 WordPress 网站上添加相册可以让您展示许多照片。无论您是在寻找标准的网格相册画廊还是独特的瀑布流相册画廊体验,学习如何在 WordPress 网站上添加相册总是一个好主意。在本教程中,我们将介绍两种为 WordPress 网站添加相册的方法:使用区…

Codeforces Round 1025 (Div. 2)

Problem - A - Codeforces 查有没有人说谎&#xff0c;有一个必错的情况&#xff1a; 两个人都说输了&#xff0c;必有人撒谎&#xff0c;还有就是所有人都赢了&#xff0c;也是撒谎 来看代码&#xff1a; #include <iostream> #include <vector> using namespa…

Ubuntu20.04操作系统ssh开启oot账户登录

文章目录 1 前提2 设置root密码3 允许ssh登录root账户3.1 编辑配置文件3.2 重启ssh服务 4 安全注意事项 1 前提 ssh可以使用普通用户正常登录。 2 设置root密码 打开终端&#xff0c;设置密码 sudo passwd root # 设置root密码3 允许ssh登录root账户 3.1 编辑配置文件 su…

类欧几里得算法(floor_sum)

文章目录 普通floor_sum洛谷P5170 【模板】类欧几里得算法 万能欧几里得算法求 ∑ i 1 n A i B ⌊ a i b c ⌋ \sum_{i1}^{n}A^iB^{\lfloor \frac{aib}{c} \rfloor} ∑i1n​AiB⌊caib​⌋求 ∑ i 0 n ⌊ a i b c ⌋ \sum_{i0}^n \lfloor\frac{aib}{c}\rfloor ∑i0n​⌊caib…

每日Prompt:卵石拼画

提示词 世界卵石拼画大师杰作&#xff0c;极简风格&#xff0c;贾斯汀.贝特曼的风格&#xff0c;彩色的鹅卵石&#xff0c;斑马头像&#xff0c;鹅卵石拼画&#xff0c;马卡龙浅紫色背景&#xff0c;自然与艺术的结合&#xff0c;新兴的艺术创作形式&#xff0c;石头拼贴画&am…

硬件服务器基础

1、硬件服务器基础 2、服务器后面板 3、组件 3.1 CPU 3.2 内存 3.3 硬盘 3.4 风扇 4、服务器品牌 4.1 配置 4.2 CPU 架构 4.2.1 CPU 命名规则 4.2.2 服务器 CPU 和家用 CPU 的区别 4.2.3 CPU 在主板的位置 4.2.4 常见 CPU 安装方式 4.3 内存中组件 4.3.1 内存的分类 4.3.1.1 …

TRS收益互换平台开发实践:从需求分析到系统实现

一、TRS业务概述 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;允许投资者通过支付固定或浮动利息&#xff0c;换取标的资产&#xff08;如股票、指数&#xff09;的收益权。典型应用场景包括&#xff1a; ​​跨境投资​​&#xff…

测试Bug篇

本节概要&#xff1a; 软件测试的生命周期 bug的概念 buh要素 bug等级 bug生命周期 对于bug的定级与开发发生冲突如何解决 一、 软件测试的⽣命周期 软件测试贯穿于软件的整个生命周期&#xff0c;针对这句话我们⼀起来看⼀下软件测试是如何贯穿软件的整个生命周期。 软…

【Linux系统移植】Cortex-A8 Linux系统移植(超详细)

目录 前言 一、ARM开发板ARM简介RISC和CISCARM产品分布核心板S5pv210 SOC嵌入式系统开发方式 二、嵌入式系统组成为什么要系统移植内核移植框图 三、嵌入式开发环境搭建搭建开发环境总流程设置ubuntu与windows共享目录修改用户为root用户安装NFS服务器安装tftp服务器安装交叉编…

第十五届蓝桥杯大赛软件赛国赛Python 大学 C 组试做【本期题单: 设置密码、栈】

早上好啊大伙&#xff0c;这一期依旧是蓝桥杯备赛刷题的记录。 本期题单&#xff1a;设置密码、栈 前言 前段时间准备省赛&#xff0c;运气好进国赛了。所以就开始准备6月份的国赛。但是近期还有别的比赛要准备&#xff0c;所以刷题的速度比较慢&#xff0c;可能每一期就会有一…

报错SvelteKitError: Not found: /.well-known/appspecific/com.chrome.devtools.json

报错信息 SvelteKitError: Not found: /.well-known/appspecific/com.chrome.devtools.json 解决方案一 更新所有依赖 npm update解决方案二&#xff08;不一定成功&#xff09; src\lib\hooks.server.ts&#xff0c;每次请求服务器时执行 import type { Handle } from &…

word添加页眉

问题一&#xff1a; 为word文档添加页眉。 方法&#xff1a; 1、在要添加页眉的第一页页面顶端双击页眉区域&#xff0c;如果添加页眉页上面还有其他页或者与上一页添加页眉内容不同&#xff0c;记得取消“链接到前一节”&#xff08;点击使其上面没有灰色即可&#xff09;&…

2025推客系统小程序开发:独立部署源码交付,高性价比裂变增长引擎

在私域流量争夺白热化的今天&#xff0c;源码独立部署的推客系统小程序已成为企业构建自主分销体系、降低获客成本的核心利器。基于成熟案例与技术沉淀&#xff0c;我们提供安全可控、高性价比的一站式解决方案&#xff0c;助力企业快速搭建专属推客生态&#xff0c;实现长效增…

CentOS 7.0重置root密码

文章目录 版本&#xff1a;CentOS 7.0内核版本&#xff1a;CentOS Linux, with Linux 3.10.0-123.el7.x86_64 服务器重启后&#xff0c;等待进入上述页面&#xff0c;按⬆⬇键&#xff0c;中断正常启动。在此页面按E&#xff0c;进入编辑模式 继续按⬇&#xff0c;找到linux16…