π0.5的KI改進版——知識隔離:讓VLM在不受動作專家負反饋的同時,繼續輸出離散動作token,并根據反饋做微調(而非凍結VLM)

前言

過去的一個月(25年6.4-7.4),我司「七月在線」具身長沙分部為沖刺一些為客戶來現場看的演示項目,基本都用lerobot的那套框架

  1. 比如上周五(7.4日)晚上,通過上周五下午新采的第五波數據做『耳機線插入耳機孔』的任務,推理十次之后
    前兩天 又測了幾輪(每次還是推理十次)
    結論是:通過模仿學習ACT 在piper臂上做耳機插孔任務,基本可穩定在80%左右

    再往上,模仿學習在這種任務、這種臂上,確實很難再提升了
    所以之前規劃 準備IL + RL弄,同時考慮franka機械臂
  2. 但考慮到暫時沒有franka機械臂(而南京那邊的機器 又有項目再弄,不好弄到長沙來)
    故長沙這邊,本周先在松靈臂上部署下官方π0——即openpi,下周再搞下人形

    至于franka機械臂 回頭再想辦法,比如到時看從哪那 借一臺

總之,在下一波客戶密集來訪之前,且加之G1暫時缺位,本周先弄下openpi

當然,因為團隊以前經驗的積累,加上有朋友的幫助,使得我司長沙具身分部在7.7-7.9短短3天內便把openpi在piper機械臂上部署好了并完成數據的采集,且將于7.10-7.11兩天完成訓練、推理

正因為開整openpi,使得我再次關注到PI公司,自然而然,便再次回憶到了PI公司在如下圖所示的π0.5「當然,更多詳見此文《π0.5——離散化token自回歸訓練,推理時則用連續動作表示,且加強推理(同一個模型中先高層拆解出子任務,后低層執行子任務)》

之后發布的兩項工作:

  • VLAs that Train Fast, Run Fast, and Generalize Better,發布于25年5月
  • Real-Time Action Chunking with Large Models,發布于25年6月

本文來解讀上面的第一個工作:π0.5的KI改進版

說到VLA,近期的VLA模型采用了專門的高效連續控制模塊,如動作專家或連續輸出頭,這通常需要在預訓練VLM主干上添加新的未訓練參數。雖然這些模塊提升了實時性和控制能力,但它們是否能夠保留或削弱預訓練VLM中的語義知識——即基于網絡規模視覺-語言預訓練所提煉的語義知識,以及對VLA訓練動態有何影響,仍是一個懸而未決的問題

本文在包含連續擴散或流匹配動作專家的VLA模型背景下研究了這一問題,結果表明,直接引入此類專家會顯著損害訓練速度和知識遷移效果

對此,來自π0公司的研究者提出了一種在VLA訓練過程中對VLM主干進行隔離的技術,以緩解上述問題

PS,遺憾的是,該工作目前尚未開源,期待有比Hybridvla更接近 “KI改進版π0.5” 的開源工作早日出現

    第一部分??

    1.1 引言與相關工作

    1.1.1 引言

    如原論文所說,大多數物理系統(如機器人)需要連續且精確的指令,例如關節角度或目標位姿,這些指令必須以高頻率實時生成

    基于自回歸的離散token解碼并不適合這類高頻連續控制,原因在于離散化動作的分辨率有限,以及使用大型模型自回歸解碼的計算成本高昂,而模型規模的持續擴大只會加劇這一挑戰

    此外,物理系統通常會產生比大型視覺語言模型(VLM)訓練時更為復雜的觀測結果,例如多視角圖像和本體感知狀態。這些差異要求對原有的VLM架構進行調整,以適應機器人控制的需求

    1. 因此,機器人領域已經開發出特別適用于實時連續控制需求的架構[54,11,45,55,7,32,6,8,25,22]
      雖然多種不同的設計都取得了成功,但一個共同點在于:為實現高效靈巧控制而調整的模型,通常會在transformer或VLM主干網絡上增添某種用于連續輸入和輸出的適配器。例如,后者常通過擴散或流匹配與動作塊(即未來動作的短序列)結合使用[54]
    2. 這樣,模型能夠表示復雜的連續動作分布,選擇極為精確的動作,并捕捉高頻靈巧技能
      然而,當這些額外模塊被添加到預訓練的VLM以構建VLA時,通常需要從頭初始化,并且VLA的訓練過程必須將這些模塊“嫁接”到VLM主干上

      這引出了一個重要問題:這些通過連續狀態和動作適配器增強的VLA,實際上能夠從大規模網頁預訓練中繼承和受益多少?

    在本研究中,作者觀察到,以往針對具有連續輸出的VLMs 進行微調的方法,或許并不令人意外地,會導致顯著更差的訓練動態,因為這些方法依賴于來自連續適配器(例如擴散頭)的梯度作為訓練信號。這可能會削弱它們對語言指令的解釋能力,并降低最終VLA 策略的整體性能

    為了解決這一挑戰,作者提出了一種解決這些問題的訓練方案,稱之為知識隔離

    • 知識隔離的核心思想是,在對VLM 主干進行離散化動作的微調的同時,適配一個動作專家以生成連續動作(例如通過流匹配或擴散),但不將其梯度反向傳播到VLM主干中

      在下圖圖1 中對此進行了說明
      方法的核心思想是使用離散化動作和通用VLM數據,通過下一個token預測損失訓練VLM主干網絡,以學習優質表征;同時,動作專家通過流匹配在連續動作上進行訓練。梯度不會從動作專家反向傳遞到主干網絡,從而保護主干網絡的知識
      在推理階段,使用體積更小的動作專家生成連續動作,有利于實現快速且精確的控制;而
      利用離散動作和通用VLM數據進行表征學習,使模型訓練更快,并通過將VLM數據的知識遷移到機器人動作中,實現更好的泛化能力。實驗表明,在訓練階段同時具備兩種動作表征至關重要

      實際上,離散動作token 提供了一種替代的學習信號,不受動作專家未初始化權重的影響,從而使VLM 仍能學習到適用于機器人控制的合適表示,但不會受到來自動作專家梯度的干擾
    • 這種方法還有其他優勢:
      首先,使用下一個token 預測使得模型學習速度更快且更穩定
      其次,仍然使用動作專家能夠實現快速推理
      第三,該的方案使作者能夠在通用視覺-語言數據上對模型進行聯合訓練,將VLA的優勢重新帶入模型中

    說白了

    1. 考慮到“動作專家”是新來的,一開始什么都不會(參數是隨機的)
      在訓練過程中,它犯錯時產生的“負反饋”(梯度)會反向傳播,干擾甚至“污染”原本VLM模型已經學好的知識
      故在訓練時,研究人員切斷了從“動作專家”到VLM主干模型的“負反饋”通道

      這樣一來,“動作專家”在學習過程中的任何失誤都不會影響到VLM主干
      VLM的知識被“隔離”保護了起來
    2. 但與凍結VLM不同的是,“凍結”是完全不讓主干網絡繼續學習,而“知識隔離”是讓主干網絡在“受保護”的情況下繼續學習和適應——即VLM主干網絡參與(微調)訓練并更新權重,即VLM主干會根據自己的學習任務(預測動作token)進行微調和優化,但完全不受旁邊那個“新手”動作專家在學習過程中犯錯所產生的“負面梯度”的影響

      從而在保護VLM核心知識的同時,允許其表征向機器人控制任務進行適配和微調,使其變得對機器人更有用:繼續為機器人任務提供足夠有效的信息

    寫到這,讓我想到了現實生活中的一個例子,特此分享,以方便大家一目了然、更快速度理解這個機制

    1. 即咱們是不是可以想象這樣一個場景,某文藝公司派出一個資深歌唱家(類似VLM),和一新手(類似動作頭) 去參加一個文藝匯演,他倆都需要竭盡全力讓整個匯演的效果更好——類比于機器人需要更好的完成對應任務
    2. 但新手畢竟是新手,唱歌的時候不小心跑調了,而且跑的很離譜
      這個時候 如果不采取措施的話,新手很容易把其師傅(資深歌唱家)帶偏,從而搞砸本次文藝匯演
    3. 好在公司早有預防,即趕緊調小了新手的話筒,而調大資深歌唱家的話筒
      如此
      一方面,他倆繼續根據現場聽眾的反饋,而實時調整自己的歌唱節奏
      二方面,資深歌唱家繼續帶著新手,把新手往回拉:以拉回調上,讓本次匯演效果更好

      而非直接給資深歌唱家戴上眼罩和隔絕新手聲音的大耳機——類似凍結VLM那樣,因為那樣的話,資深歌唱家便無法幫新手找回調,也無法根據現場聽眾的反饋調整歌唱節奏——說白了 資深歌唱家再資深 也是得不斷訓練 改進的,不是到天了,為匯演效果做貢獻了

    1.1.2 相關工作:包含Hybridvla、π0.5等

    第一,對于多模態大型語言模型

    1. 在本研究中,作者探討了如何將機器人動作作為一種新模態集成到預訓練視覺語言模型(VLM)中。在相關文獻中,常見的方法是將新的輸入模態嵌入為離散或連續(“軟”)token [31,26,9,42]
    2. 繼早期關于多模態交叉注意力的研究 [2] 之后,近期的工作表明,對于多模態生成建模(例如交錯的圖像、文本和語音預測),將不同模態分離為模態特定的“專家”網絡且彼此交叉注意——可以防止干擾,并提升預測質量[28,40,49]

    雖然這些研究主要訓練視覺-語言-語音模型,但作者關注的是如何利用類似的架構,將一種新的模態——機器人動作——融合到預訓練的視覺語言模型(VLMs)中

    第二,對于視覺-語言-動作模型(VLA)

    視覺-語言-動作模型近期被提出,作為實現通用機器人控制的一種有前景的方法 [14,59,24,7,50,56,34,27,3,41,37,43,51,6,21]

    1. VLA 的核心思想是對預訓練的視覺-語言模型(VLM)進行微調,以實現動作預測。這類 VLA 能夠很好地擴展到大規模機器人數據集 [12,15,48,36,23,5,17,39,1],并且已被證明可以將基于網絡大規模 VLM預訓練獲得的知識遷移,用于提升策略泛化能力 [59,24]
    2. 為了使 VLM 能夠在動作數據上進行微調,VLA 訓練流程通常會將連續動作映射為一系列離散動作 token,這一過程可以通過簡單的分箱離散化方法 [59,24],或更為先進的基于壓縮的 token 化方法 [37] 實現

    隨后,VLA 通過標準的自回歸下一個 token 預測進行訓練。盡管這一策略在較簡單、低頻的控制任務上效果顯著,但存在兩個缺點:

    1. 從連續動作到離散動作 token 的映射可能導致信息損失
    2. 自回歸地解碼動作會導致策略推理速度較慢 [37,3]
      因此,現代自回歸VLA 通常只能以低于 2Hz 的控制頻率運行 [37],這使其在許多高頻任務中難以實際應用

    第三,對于VLAs中的快速連續動作解碼機制

    1. 為了解決這些問題,已有多項研究探索了適用于VLAs的替代動作解碼機制,這些機制能夠保留連續動作輸出并實現快速推理
      這些方法通常在VLA動作微調期間引入新的權重和損失,常見方式包括擴散預測頭[34,51,32,6]或基于流匹配的“動作專家”[7,8],這些模塊能夠關注VLM主干網絡中的特征
    2. 雖然這些方法實現了快速推理,但在微調過程中簡單地增加新權重和訓練損失也帶來了新的問題:這類VLA在訓練速度上往往明顯慢于其自回歸對應方法,并且網絡數據傳輸效率也有所下降[37]

      Liu等人[32-Hybridvla]提出了一種混合自回歸-擴散訓練方法,但在推理階段仍需采用較慢的自回歸動作解碼「個人覺得原文中的這個表述是有問題的,詳見《HybridVLA——讓單一LLM同時具備擴散和自回歸動作預測能力:訓練時既擴散也回歸,但推理時則擴散》

      包括OpenVLA-OFT[25]和π0.5[22]在內的多項工作采用了兩階段流程,先通過自回歸離散化進行模型訓練,然后再在目標領域通過連續輸出進行微調

    第四,對于π0 和π0.5 模型

    作者基于π0 [7] 和π0 -FAST [37] VLA 進行構建。π0 引入了一種連續動作專家,能夠捕捉動作片段上的復雜連續分布,實現高效推理,并支持對如疊衣服等靈巧任務的連續控制,然而,正如作者在他們實驗中展示的

    • 僅使用π0 方法會導致語言遵循能力和訓練速度的下降,因為動作專家的梯度會削弱預訓練的VLM 主干
    • π0 -FAST 通過使用基于DCT 的分詞器對動作進行離散化,從而實現了復雜動作片段的高效離散化,但代價是需要昂貴的自回歸推理,并降低了執行精細和動態任務的能力,這一點我們在實驗中也有說明
    • π0.5 [22] 首先僅用FAST 離散化動作進行訓練,然后在后期訓練中加入隨機初始化的動作專家,通過聯合訓練對移動操作數據進行微調

    本次的工作形式化了π0.5 的方法,并將其擴展為單階段訓練方案,在該方案中,VLM 主干通過離散token 適配于機器人控制的同時,動作專家同步訓練以生成連續動作,從而兼得兩者優勢。作者在實驗中對知識保留和協同訓練的不同機制進行了嚴格消融分析

    從而提出了第一個能夠快速訓練、保留VLM 知識并支持高頻率連續動作輸出的VLA 方案

    1.2 前情提要:標準VLA模型訓練方案

    1.2.1?構建和訓練VLA的標準方法

    訓練VLA π 的核心思想是將視覺-語言模型(VLM)適配為在給定圖像觀測I_{1: V}、機器人本體狀態q \in \mathbb{R}^{s}以及自然語言指令l?作為輸入的條件下,輸出機器人動作a \in \mathbb{R}^{d},即a \sim \pi\left(\cdot \mid I_{1: V}, q, \ell\right)

    VLA 的優勢在于,當其微調至機器人動作時,能夠繼承在互聯網規模數據上預訓練的底層VLM 的知識

    1.2.1.1 動作表示

    機器人動作a \in \mathbb{R}^{d}在大多數情況下是實值向量,通常用于表示機器人關節角度或末端執行器的坐標。一種常見策略是采用所謂的動作分塊(action chunking)[54],即相對于當前機器人狀態預測一段動作軌跡a_{1: H}

    為了將 VLM 適配為 VLA,對于這些動作塊的表示方式有多種選擇

    • 樸素離散化
      在最簡單的情況下,一個片段中每個動作的每個維度都被離散化,然后每個離散化區間都與一個特殊的文本token相關聯[59]
      這樣,一個片段a_{1: H}被映射為H \cdot d個token。機器人動作預測因此被表述為下一個token預測問題,并且該模型可以像非機器人專用的VLM 一樣,通過交叉熵損失進行訓練
    • 時序動作抽象
      樸素離散化的缺點在于,對于高頻率和高維系統,表示動作所需的token數量會迅速增加,這大大提高了計算成本,并導致訓練收斂速度變慢

      最近的研究,如 PRISE [57]、FAST [37],通過在時間上壓縮信息的變換方法來緩解這一問題。作者采用 FAST 進行動作編碼,該方法對動作片段的每個維度應用離散余弦變換,然后進行量化和字節對編碼 [18],以生成動作token
    • 擴散與流匹配
      許多近期提出的VLA 模型采用擴散或流匹配方法[29, 35] 來生成連續動作,作者的實驗也遵循了π0 的設計,使用了流匹配的” 動作專家”[7],如圖1 所示

      對于流匹配的時間索引\tau \in[0,1],模型的輸入是動作片段的加噪版本a_{1: H}^{\tau, \omega}=\tau a_{1: H}+(1-\tau) \omega, \omega \sim \mathcal{N}(0, \mathbf{I}),模型被訓練以預測流\omega-a_{1: H}。在推理時,該流場被積分以將\omega 去噪為最終的動作片段
    1.2.1.2 狀態表示

    作者針對機器人的本體狀態考慮了三種不同的表示方式:

    1. 即通過離散化后將其表示為文本(“文本狀態”,即text state)
    2. 同樣通過離散化使用特殊token(“特殊token狀態”)
    3. 以及通過學習的投影將連續狀態直接映射到主干網絡中(“連續狀態”)

    更多細節和討論請參見C節

    1.2.1.3?VLA 架構、訓練與專家混合

    大多數 VLA 由多模態 Transformer 構建,通常使用預訓練的 VLM權重進行初始化。以下便是一種基于 Transformer 的 VLA 架構的一般形式

    \begin{array}{l} \begin{aligned} & \pi_{\theta}\left(y \mid I_{1: v}, q, \ell\right) \\ = & p_{\theta}\left(y_{1: n} \mid x_{1: n}\right) \end{aligned}\\ =p\left(y_{1: n} \mid f\left(\left(\phi_{p(i)}\left(x_{i}\right)\right)_{i=1}^{n}, A\left((\rho(i))_{i=1}^{n}\right),(\rho(i))_{i=1}^{n}\right)\right) \end{array}

    1. 將一個長度為n 的多模態輸入序列x_{i} 映射為一個長度為n 的多模態輸出序列y上的概率
      對于VLA,通常y=y^{a}對應于動作目標
      以往的工作已經考慮了對動作預測和VLM任務(此時y=y^{\ell}為分詞化文本輸出)進行聯合訓練的單一模型[14,59]
    2. 如其模態類型\rho: i \mapsto \text { \{image, word, action, state, ...\} }所示,每個token 可以是
      文本\operatorname{token}\left(x_{i}^{\ell} \in \mathbb{N}\right)
      圖像\operatorname{patch}\left(x_{i}^{I} \in \mathbb{R}^{p \times p \times 3}\right)
      連續輸入\left(x_{i} \in \mathbb{R}^{d}\right),如機器人狀態或動作
      這些token 通過不同的編碼器\phi_{j}: \mathcal{T}_{j} \rightarrow \mathbb{R}^{d}進行嵌入,其中\mathcal{T}_{j}是類型j的所有多模態token 的空間,d_{e}?為模型的嵌入維度

      圖像patch 通過視覺Transformer 進行編碼
      文本token 通過嵌入矩陣
      連續輸入通過仿射投影

      注意力掩碼A\left((\rho(i))_{i=1}^{n}\right) \in\{-\infty, 0\}^{n \times n}則指示哪些token 可以彼此進行注意力計算
    3. transformer[47] 是一個函數f: \mathbb{R}^{n \times d_{e}} \rightarrow \mathbb{R}^{n \times d_{e}},它將n 個輸入嵌入映射為n個輸出嵌入。它通過堆疊多個模塊構建,每個模塊由一個注意力層、一個前饋層和歸一化層組成

      X=x_{1: n} \in \mathbb{R}^{n \times d_{e}}
      故,標準transformer中的注意力層計算為
      \operatorname{attn}(X)=E(X) W_{V}, W_{V} \in \mathbb{R}^{d_{e} \times d_{v}}

      其中
      E(X)=P(X) V(X),
      P(X)=\operatorname{softmax}\left(Q(X) K(X)^{T}\right)
      Q(\cdot), K(\cdot), V(\cdot) 分別是所謂的查詢、鍵和值投影,例如Q(X)=X Q_{m}, Q_{m} \in \mathbb{R}^{d_{e} \times d_{q}},其中d_{q}是投影的維度

    與標準transformer相比,作者的模型按照[28] 的建議

    1. 為不同的token 使用獨立的權重進行處理
      與π0 [7] 類似,作者從PaliGemma [4] 初始化VLM,并為動作token 使用更小的權重集合,這在生成動作時顯著減少了推理時間
    2. 主干和動作token 擁有各自的查詢、鍵和值投影,但這些投影的維度d_{q}, d_{k}, d_{v}是相同的,以便專家之間可以相互交互

    大多數 VLA 都是在大規模機器人行為克隆數據集上進行訓練的。對于自回歸架構,標準的訓練流程是最小化目標標記的負對數似然

    \begin{array}{l} \mathcal{L}_{\text {AR--VLA }}(\theta) \\ =\mathbb{E}_{(x, y) \sim \mathcal{D}}\left[-\log p_{\theta}\left(y_{1: n} \mid x_{1: n}\right)\right]\\ =\mathbb{E}_{(x, y) \sim \mathcal{D}}-\sum_{j=1}^{n-1} M_{j} \log p_{\theta}\left(y_{j+1} \mid x_{1 ; j}\right) \end{array}

    其中M 是一個損失掩碼,用于指示哪些標記需要被預測,D 是一個數據集(通常假設x = y)。在使用流匹配進行動作預測的情況下,損失為

    \mathcal{L}_{\text {FLOW-VLA }}(\theta)=\mathbb{E}_{\mathcal{D}, \tau, \omega}\left[\left\|\omega-a_{1: H}-f^{a}\left(a_{1: H}^{\tau, \omega}\right)\right\|^{2}\right]

    1.2.2?標準VLA方法的問題:自回歸VLA推理慢、動作專家從VLM預訓練知識中獲益不大等

    在下圖圖2中所示的機器人被指示將勺子送入垃圾桶的任務中

    • π0[7](左)忽略了指令,反而抓起了一塊垃圾——當然 要注意的是,不是說π0沒有指令遵循能力,而是在一些任務中 該能力較弱甚至遵循錯誤
    • π0-FAST[37](中)最終能夠完成任務,但其推理速度非常慢
    • KI改進版π0.5的方案(右)不僅完成了任務,推理速度快,且模型能夠非常迅速地收斂到良好的性能(參見圖6b)

    具體而言,當前VLA訓練方法存在的問題包含

    1. 自回歸VLA的(推理)速度較慢
      自回歸VLA將預測實值動作的問題轉化為離散的下一個token預測問題,這不僅限制了模型所能表示的數值分辨率,還導致推理過程緩慢且具有順序性

      在RTX4090 GPU上,π0-FAST預測1秒動作片段的推理時間約為750毫秒[37]。正如作者在實驗中所展示的,這可能導致動力學不匹配以及整體軌跡變慢
    2. 機器人特定架構和模態適配器從VLM 預訓練中受益不大
      像π0 [7] 或GROOT [6] 這樣的架構包含專為機器人設計的模塊,從而實現更快的推理
      例如,π0 架構中的動作專家參數量少于VLM 主干,因此π0 能夠實現10 Hz 的控制頻率,這比自回歸VLA(1.3 Hz)要快得多
      雖然這些模型的部分組件是從預訓練的VLM(如視覺編碼器或語言模型主干)初始化的,但機器人特定模塊則是從頭開始初始化

      而本文工作的關鍵出發點,便是因為:對這樣一個隨機初始化的動作專家進行簡單訓練,會損害模型遵循語言指令的能力(作者推測是由于梯度干擾所致)
    3. VLM 預訓練對于機器人領域的表征能力不足——凍結權重的方法并不可行
      直觀來看,維持 VLM預訓練所得知識、從而避免上述問題的最簡單方法是凍結已預訓練的權重,僅訓練新加入的、針對機器人任務的權重
      然而,當前的 VLM 并未使用機器人領域的數據進行預訓練。因此,在權重被凍結的情況下,其表征能力對于機器人訓練高性能的策略而言是不足的
      ——說白了,就是VLM也是需要訓練的,畢竟其訓練時 并沒有啥機器人數據

    1.3 完整方法論:KI改進版π0.5通過協同訓練、聯合訓練與知識隔離提升VLA

    為了克服上文(原論文第4節中)所述的以往VLA方法的局限性,作者考慮了一系列改進措施

    具體而言,作者提出:

    1. 對模型同時進行自回歸和流匹配動作預測的聯合訓練(joint-training)
      該模型使用(更小的)動作專家在測試時生成連續動作,以實現快速推理。自回歸目標僅在訓練階段作為表征學習目標使用,這使模型能夠更快地完成訓練

      說白了,就是訓練自回歸、推理連續動作表示,從而兼顧訓練快、推理快
    2. 對模型進行聯合訓練,使用非動作數據集,如通用視覺-語言數據和機器人規劃數據(VLM數據聯合訓練)
      在這些數據源上訓練可以確保模型在適配為VLA時,知識損失更少
    3. 停止動作專家與主干權重之間的梯度流
      這樣,在將預訓練的VLM適配為VLA時,新初始化的動作專家權重不會干擾預訓練權重

    1.3.1?聯合離散/連續動作預測的協同訓練與表征學習

    為了實現與VLM 數據的高效協同訓練、增強從語言到策略的知識遷移,并實現快速訓練,作者考慮在一個模型中結合自回歸語言離散動作預測、以及連續動作的流匹配建模

    1. 具體來說,作者提出學習一個模型,從中可以采樣實值動作片段a_{1: H}a_{i} \in \mathbb{R}^{d},以及文本\widehat{\ell},即模型的輸出空間為y=\left(a_{1: H}, y^{\ell, a}\right)

      其中
      \rightarrow??a_{1: H}為連續動作-比如-1.7 1.25 3.14 1.42
      \rightarrow??y^{\ell, a}表示語言token-比如pick up the sleeve「描述機器人接下來應該做什么進行注釋,以及離散化的動作token——比如-17 12 34 142「使用FAST [37] tokenizer 將連續動作轉換為離散token
    2. 隨后,作者可以從模型中聯合采樣動作文本
      (a, \hat{\ell}) \sim \pi\left(\cdot, \cdot \mid I_{1: V}, q, \ell\right)

      并用token 的組合來訓練模型預測
      參見LAR-VLA于(2)
      \begin{array}{l} \mathcal{L}_{\text {AR--VLA }}(\theta) \\ =\mathbb{E}_{(x, y) \sim \mathcal{D}}\left[-\log p_{\theta}\left(y_{1: n} \mid x_{1: n}\right)\right]\\ =\mathbb{E}_{(x, y) \sim \mathcal{D}}-\sum_{j=1}^{n-1} M_{j} \log p_{\theta}\left(y_{j+1} \mid x_{1 ; j}\right) \end{array}

      和流匹配損失
      參見LFLOW-VLA于(3)
      \mathcal{L}_{\text {FLOW-VLA }}(\theta)=\mathbb{E}_{\mathcal{D}, \tau, \omega}\left[\left\|\omega-a_{1: H}-f^{a}\left(a_{1: H}^{\tau, \omega}\right)\right\|^{2}\right]


      同時進行,即如下公式4所示
      \mathcal{L}_{\mathrm{CO}-\mathrm{VLA}}(\theta)=\mathbb{E}_{\mathcal{D}, \tau, \omega}\left[-\sum_{j=1}^{n-1} M_{j}^{\ell} \log p_{\theta}\left(\hat{\ell}_{j+1} \mid x_{1: j}\right)+\alpha M^{\mathrm{act}}\left\|\omega-a_{1: H}-f_{\theta}^{a}\left(a_{1: H}^{\tau, \omega}\right)\right\|^{2}\right]

      其中
      \rightarrow??\alpha是一個損失倍增器,用于在通過流匹配進行動作預測與標準語言建模損失之間進行權衡
      \rightarrow??M^{\ell}是一個語言損失掩碼(指示在token流中應該:應用語言損失的位置,即indicating locations in the token stream at which the language loss should be applied
      \rightarrow? 而M^{\text {act }}?是一個動作掩碼指示器,用于指定是否應為給定樣例預測動作。這種損失構建方式使得能夠靈活地將來自不同模態的數據進行混合協同訓練

      具體來說,作者將
      VLM 數據(僅包含圖像和文本注釋)
      與僅有動作的數據(任務是在圖像和文本條件下進行動作預測),以及結合了語言和動作預測任務的數據作者對僅有動作的數據額外用語言描述機器人接下來應該做什么進行注釋,比如pick up the sleeve)[53]
      進行組合

      如此,作者認為,這種不同模態數據的混合能夠增強最終VLA 中的知識遷移能力
      \hat{\ell}同時包含文本(語言)token和FAST 分詞后的(離散化)動作token
      關鍵的是,作者設置注意力掩碼A,使得任何離散FAST 動作token都不能關注連續動作token,反之亦然

      作者認為,他們的實驗表明,這種聯合訓練目標能夠兼得兩者的優點:通過使用FAST動作token學習良好表征實現訓練過程的快速收斂,同時還能通過少量流積分步驟實現連續動作的快速推理——相當于兼顧訓練快、推理快

    對于上面這句:“作者設置注意力掩碼A,使得任何離散FAST 動作token都不能關注連續動作token,反之亦然”,值得補充解釋下


    根據此文《π0.5——離散化token自回歸訓練,推理時則用連續動作表示,且加強推理(同一個模型中先高層拆解出子任務,后低層執行子任務)》的「1.4 π0.5的訓練方案:先預訓練后微調」,可知

    他們——即π0.5,利用注意力矩陣確保不同的動作表示之間,不會相互關注,且最終經過優化,以最小化組合損失

    \begin{aligned} \mathbb{E}_{\mathcal{D}, \tau, \omega} & {\left[H\left(x_{1: M}, f_{\theta}^{\ell}\left(\mathbf{o}_{t}, \ell\right)\right)\right.} \\ & \left.+\alpha\left\|\omega-\mathbf{a}_{t: t+H}-f_{\theta}^{a}\left(\mathbf{a}_{t: t+H}^{\tau, \omega}, \mathbf{o}_{t}, \ell\right)\right\|^{2}\right] \end{aligned}

    1. 其中H\left(x_{1: M}, y_{1: M}^{\ell}\right)是文本token和預測對數值logits(包括FAST編碼的動作token)之間的交叉熵損失
    2. y_{1: H}^{a}=f_{\theta}^{a}\left(\mathbf{a}_{t: t+H}^{\tau, \omega}, \mathbf{o}_{t}, \ell\right)是(較小的)動作專家的輸出
    3. \alpha \in \mathbb{R}是一個權衡參數

    對于上面這點,與本KI改進版π0相似的另一個工作:HybridVLA確實不一樣——比如HybridVLA允許自回歸token 關注連續動作,具體下文的「2.2.1 任務表現與基線對比」節中會詳述

    1.3.2?知識隔離與梯度流動

    通過流匹配訓練的動作專家的梯度,可能會對圖像編碼器和語言模型主干的訓練動態產生不利影響;尤其是在將一個新、隨機初始化的動作專家添加到一個預訓練主干時

    因此,作者建議停止動作專家到模型中預訓練權重的梯度流。當然了,這只有在主干還被額外訓練為直接預測動作作為其語言輸出的一部分時,才是合理的限制

    由于作者提出聯合對模型進行離散動作訓練,故他們認為可以確保transformer 層的組合激活包含足夠的信息來推斷動作。預訓練模型主干和動作專家僅通過注意力層進行交互

    為了阻止動作專家的梯度流入主干,需要如下修改注意力層

    1. 對于單頭注意力的情況,可以將注意力操作寫為
      P=\operatorname{softmax}\left(Q(X) K(X)^{T}+A\right)=\left(\begin{array}{cc} P_{b b} & 0 \\ P_{a b} & P_{a a} \end{array}\right)
      其中X 是注意力層的輸入,Q, K 分別是注意力查詢和鍵投影,A是如上所述的注意力掩碼,softmax 是按行進行的softmax 操作

      其結果是對token 特征的注意力概率,這些概率可分解為:
      \rightarrow? VLM 主干的特征 關注主干特征的概率P_{b b}
      \rightarrow? 動作專家特征 關注主干特征的概率P_{a b}
      \rightarrow? 以及動作專家特征 關注其他動作專家特征的概率P_{a a}
    2. 基于此,作者可以通過如下實現softmax 計算來按需限制信息流
      \left(\begin{array}{cc} P_{b b} & 0 \\ P_{a b} & P_{a a} \end{array}\right)=\operatorname{softmax}\left(\left(\begin{array}{cc} Q_{b}\left(X_{b}\right) K_{b}\left(X_{b}\right)^{T} & 0 \\ Q_{a}\left(X_{a}\right) \operatorname{sg}\left(K_{b}\left(X_{b}\right)^{T}\right) & Q_{a}\left(X_{a}\right) K_{a}\left(X_{a}\right)^{T} \end{array}\right)+A\right)

      其中
      \text { sg }表示停止梯度(stop-gradient)操作符,用于限制該部分計算中的梯度流動
      X_{b} 對應于所有用主干權重處理的x_{i}
      X_{a} 對應于用動作專家權重處理的tokens

      然后,值嵌入通過以下方式計算
      E=\binom{E_{b}}{E_{a}}=\binom{P_{b b} V_{b}\left(X_{b}\right)}{P_{a b} \operatorname{sg}\left(V_{b}\left(X_{b}\right)\right)+P_{a a} V_{a}\left(X_{a}\right)}

      最終的注意力為\operatorname{attn}(X)=P E
      這種設計的另一個優點是可以在(公式4) 中簡單地設置\alpha=1,因為現在擴散損失項適用于一組獨立的權重

    // 待更

    第二部分 實驗

    2.1 任務設置與評估

    2.1.1 任務設置、數據集設置

    作者在現實世界中對涉及多種不同機器人形態(見圖3)的靈巧、長時序操作任務進行了方法評估,任務包括

    1. 清理桌面(“餐桌整理”)
    2. 使用雙臂靜態機器人折疊襯衫(稱為“襯衫折疊”)
    3. 用單臂靜態機器人將家居物品放入抽屜(“物品入抽屜”)
    4. 以及多個涉及雙臂移動操作機器人的任務

    對于后兩類任務,作者僅在模型未見過任何數據的保留場景中進行評估。此外,作者還在LIBERO仿真基準[30]和現實世界的DROID[23]上展示了實驗結果

    且既訓練了針對單一機器人形態的模型,也訓練了通用模型,這些通用模型在大量不同機器人和多種任務的大規模混合數據上進行訓練,包括非動作預測任務,如圖像描述、邊界框預測和機器人規劃。有關任務、數據集和模型訓練的詳細信息,請參見附錄A、B

    2.1.2 實驗評估關注的重點:性能、語言遵循能力、泛化能力

    實驗評估主要關注以下幾個問題

    1. 性能
      KI改進版π0.5的方法在絕對任務性能方面與強大的基線方法如VLAs π0[7]、π0-FAST[37]、HybridVLA[32]、OpenVLA-OFT[25]相比表現如何?
    2. 知識隔離
      停止梯度流動會產生什么影響?
    3. 語言遵循性
      許多機器人策略的一個常見局限是它們比起語言輸入,更加關注圖像[25]。哪些建模選擇會影響模型對語言輸入的關注程度,從而影響任務的完成效果?
    4. 收斂速度
      KI改進版π0.5的模型在訓練步數方面的訓練速度有多快?
    5. 泛化能力
      KI改進版π0.5的架構不僅可以在機器人動作數據上訓練模型,還能利用其他數據源,如視覺問答(VQA)、圖像描述或邊界框預測
      那能否將這些數據源中的知識遷移到動作專家的動作生成上?
    6. 狀態表示
      不同的機器人狀態表示會如何影響模型表現?

    2.1.3 訓練對比角度:涉及OpenVLA-OFT、HybridVLA等

    作者考慮以下基線和消融方法,并在他們的數據混合集上重新訓練它們:

    1. π0[7] 使用動作專家、連續動作,并且僅在機器人數據上進行訓練
    2. π0-FAST[37] 是一種帶有token壓縮的自回歸VLA,僅在機器人數據上進行訓練
    3. OpenVLA-OFT[25] 對標準自回歸VLA進行了修改,使其能夠使用帶有雙向注意力的并行解碼
      作者在本研究中采用了這種方法,但未使用FiLM,并保留了文本狀態
    4. Transfusion[58] 在同一Transformer主干中對連續輸入進行去噪。最初的Transfusion工作將其方法應用于圖像生成。本文作者將其改編用于機器人動作
    5. HybridVLA[32]同時以Transfusion和簡單自回歸token化方式訓練VLA
      自回歸token可以關注擴散輸入
      作者對該架構進行了輕微修改,使其在連續token上也能使用動作專家
    6. 聯合訓練(沒有使用停止梯度)
      與KI改進版π0.5的模型差不多,但沒有使用停止梯度(此綠色粗體代表有VLM)
    7. 聯合訓練(沒有使用停止梯度且無VLM數據)
      該消融實驗同時移除了停止梯度和在VLM數據上的聯合訓練,這也可以被視為HybridVLA [32]的一種變體,即同時訓練兩種動作表示,但與HybridVLA相比,本次聯合訓練(無VLM)的自回歸token無法關注流匹配輸入
    8. 將樸素分詞作為表示學習目標,與FAST進行比較(見第3節)

    2.2 任務表現、語言遵循表現、遷移表現

    2.2.1?任務表現與基線對比

    對于 “抽屜中的物品” 任務,該任務既需要準確地遵循語言指令(以選擇正確的物體),又需要精確的操作(打開廚房抽屜),所有基線方法的表現都明顯不如KI改進版π0.5提出的方法(見圖4a)

    1. 常見的失敗模式是無法打開抽屜。需要注意的是,此任務是在一個保留環境中進行評估的。特別地,聯合訓練基線(無停止梯度)在遵循語言指令方面存在問題,π0.π0 -FAST 在許多情況下移動緩慢且無法精確打開抽屜
    2. HybridVLA [32] 是在方法上與KI改進版π0.5的方法最為相似的基線,因為它同樣在離散和連續動作上進行聯合訓練,但允許自回歸token 關注連續動作。這似乎大大影響了該任務的性能『即HybridVLA [32], since it also jointly trains on both discretized and continuous actions, butallows autoregressive tokens to attend to continuous actions,詳見此文《HybridVLA——讓單一LLM同時具備擴散和自回歸動作預測能力:訓練時既擴散也回歸,但推理時則擴散》

      但,按照KI改進版π0.5提出的方法:設置注意力掩碼——詳見上文此節「1.3.1?聯合離散/連續動作預測的協同訓練與表征學習」的最后,能夠帶來更好的表現

    KI改進版π0.5方法以及其他基線在 “餐桌整理” 任務上的建模選擇的詳細消融分析見圖5

    1. KI改進版π0.5的方法表現最佳,此處聯合訓練也表現良好
    2. π0 -FAST 較慢,完成任務所需時間是其他方法的兩倍
    3. Transfusion 表現良好,但比KI改進版π0.5的方法慢
    4. 使用并行解碼(OpenVLA-OFT)通常也表現更差
    5. 凍結骨干網絡并不是知識隔離的可行選項,因為預訓練模型中的表征對于機器人領域來說并不充分,導致性能較低——說白了VLM 還是得繼續微調/學習(參見圖4a和疊襯衫任務,圖8)
      其中π0由于在他們的大規模單體數據混合集上訓練,也表現不佳

      在這種情況下,凍結骨干網絡或并行解碼同樣不是有效策略
    6. 且作者還在開源基準DROID [23]上評估了他們的通用模型,任務集與[37]中的桌面操作任務相同。KI改進版π0.5的方法得分為0.55±0.09,π0得分為0.49±0.09,π0-FAST為0.45±0.09
    7. 最后,如表1所示,KI改進版π0.5的方法在LIBERO-90和LIBERO-Spatial [30]上取得了新的最先進水平。該模型是在通用stop-gradient + VLM數據聯合訓練模型的基礎上,在LIBERO上進行了微調,因為通用模型的原始訓練混合集中并未包含LIBERO數據

    2.2.2?通用VLA 評估:證明阻斷梯度流的必要性

    此前的結果只考慮了僅用目標實體數據訓練的VLA(盡管包含的任務比作者評估的更多),接下來將評估在聯合訓練所有可用數據時,KI改進版π0.5的方法表現如何

    1. 圖6a 顯示

      在” 桌面清理” 任務中,KI改進版π0.5的方法實現了與上述實體特定結果相當的性能
      相比之下,聯合訓練『要么有使用停止梯度(此綠色粗體代表有VLM)——可證明阻斷梯度流的有用性,要么沒有使用停止梯度 + 去除VLM數據』會導致任務完成度下降
    2. 對于任務完成比
      作者還展示了去除VLM 數據(例如,把KI改進版π0.5的方法削弱下,使得不包含VLM 數據)會使任務完成百分比略微下降——證明了VLM對任務效果的有用性
    3. 對于語言遵循能力
      有趣的是,在觀察策略遵循人類提供的清理桌面語言指令的比例時,去除VLM 數據對聯合訓練的影響最大,此,證明了VLM數據參與聯合訓練對指令遵循效果的有用性
      作者推測,在這種情況下,這些數據對于避免與預訓練表征發生災難性干擾尤為重要
    4. 最后,作者在4項移動操作任務上評估了KI改進版π0.5的方法(例如,將餐具放入水槽,詳見A.2.2 節)。結果如圖所示

    2.2.3 語言遵循能力:不使用stop-gradient影響不大,但沒有VLM影響很大

    在任何場景中,機器人通常可以執行多種合理的動作,例如抓取不同的物體。在本部分,作者評估不同模型在接收到特定任務(通過自然語言指令提供)時,是否會執行旨在完成該任務的動作。這對于具有長遠目標的任務尤為重要,例如清理廚房臺面,這類任務中模型可能會因過度依賴圖像輸入而在提供的數據上過擬合,從而解決長遠任務

    1. 作者假設,如果VLA能夠保留更多其VLM預訓練的知識,那么它更有可能關注實際的語言輸入
      如圖4b所示,阻斷來自動作專家的梯度流是一種比π0和聯合訓練(不使用stop-gradient且未與VLM數據聯合訓練)更有效提升語言遵循能力的方法

    2. 如上所述,如果模型與VLM數據聯合訓練,如圖6a、圖5和圖7所示,那么即便不使用stop-gradient,聯合訓練也能取得良好的語言遵循表現——因為有VLM數據參與聯合訓練的存在

      下圖是上文出現過的圖5

    3. 此外,transfusion(見圖5)在語言遵循方面優于帶有動作專家的π0,這可以通過其復用主干權重進行連續動作生成,且僅有動作投影部分為新初始化參數來解釋

    這些結果強有力地支持了這樣一個假設:隨機初始化的機器人特定適配器的梯度與預訓練的VLM權重之間會產生不利的相互作用——相當于阻斷梯度流是有用的

    即作者提出的知識隔離技術(阻斷梯度流),和/或與VLM數據聯合訓練,能夠實現更好的語言遵循

    // 待更

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/bicheng/88380.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88380.shtml
    英文地址,請注明出處:http://en.pswp.cn/bicheng/88380.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    Eigen中Isometry3d的使用詳解和實戰示例

    Eigen::Isometry3d 是 Eigen 庫中用于表示 三維空間中的剛性變換(Rigid Transformation) 的類,屬于 Eigen::Transform 模板類的一個特化版本。它結合了 旋轉和平移,廣泛應用于機器人學、SLAM、三維幾何計算等場景。一、核心定義 #…

    《未來已來:當人類智慧遇上AI智能體》

    在這個充滿奇跡的時代,人類的智慧與科技的力量正以前所未有的速度交織在一起。 我們站在一個新時代的門檻上,一邊是古老而深邃的自然規律,另一邊是充滿可能性的未來世界。 今天,就讓我們一起走進這場關于人類智慧與AI智能體Kimi的對話,看看未來究竟會帶給我們怎樣的驚喜…

    【三維生成】FlashDreamer:基于擴散模型的單目圖像到3D場景

    標題&#xff1a;<Enhancing Monocular 3D Scene Completion with Diffusion Model> 代碼&#xff1a;https://github.com/CharlieSong1999/FlashDreamer 來源&#xff1a;澳大利亞國立大學 文章目錄摘要一、前言二、相關工作2.1 場景重建2.2 擴散模型2.3 Vision languag…

    CANFD記錄儀設備在無人駕駛快遞車的應用

    隨著物流行業的快速發展&#xff0c;無人駕駛快遞車因其高效、低成本的優勢&#xff0c;逐漸成為“最后一公里”配送的重要解決方案。然而&#xff0c;無人駕駛系統的穩定性和安全性高度依賴車輛總線數據的精準采集與分析。南金研CANFDlog4 4路記錄儀憑借其多通道、高帶寬、高可…

    Kubernetes存儲入門

    目錄 前言 一、Volume 的概念 二、Volume 的類型 常見的卷類型 Kubernetes 獨有的卷類型 三、通過 emptyDir 共享數據 1. 編寫 emptyDir 的 Deployment 文件 2. 部署該 Deployment 3. 查看部署結果 4. 登錄 Pod 中的第一個容器 5. 登錄 Pod 中的第二個容器查看/mnt下…

    10.Docker安裝mysql

    (1)docker pull mysql:版本號eg&#xff1a;docker pull mysql(默認安裝最新版本)docker pull mysql:5.7(2)啟動并設置mysql鏡像docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 --name mysql1 mysql其他參數都不多講&#xff0c;下面這個參數指的是設置數據庫用戶ro…

    Debian-10編譯安裝Mysql-5.7.44 筆記250706

    Debian-10編譯安裝Mysql-5.7.44 筆記250706 單一腳本安裝 ### 1. 安裝編譯依賴 sudo apt install -y cmake gcc g build-essential libncurses5-dev libssl-dev \ pkg-config libreadline-dev zlib1g-dev bison curl wget libaio-dev \ libjson-perl libnuma-dev libsystemd-d…

    HarmonyOS 中狀態管理 V2和 V1 的區別

    鴻蒙ArkUI框架中的ComponentV2與V1在狀態管理、組件開發模式、性能優化等方面存在顯著差異。以下是兩者的核心區別及技術解析&#xff1a;一、狀態管理機制V1的局限性V1的Observed裝飾器只能觀察對象的第一層屬性變化&#xff0c;需配合ObjectLink手動拆解嵌套對象。例如&#…

    centos7 安裝jenkins

    文章目錄前言一、pandas是什么&#xff1f;二、安裝依賴環境1.前提準備2.安裝git3.安裝jdk&#xff0c;以及jdk版本選擇4.安裝maven5.安裝NodeJS6.驗證三、安裝Jenkins四、驗證Jenkins總結前言 正在學習jenkinsdocker部署前后端分離項目&#xff0c;安裝jenkins的時候遇到了一…

    Leetcode刷題營第二十題:刪除鏈表中的重復節點

    面試題 02.01. 移除重復節點 編寫代碼&#xff0c;移除未排序鏈表中的重復節點。保留最開始出現的節點。 示例1&#xff1a; 輸入&#xff1a;[1, 2, 3, 3, 2, 1]輸出&#xff1a;[1, 2, 3]示例2&#xff1a; 輸入&#xff1a;[1, 1, 1, 1, 2]輸出&#xff1a;[1, 2]提示&…

    關于市場主流自動化測試工具和框架的簡要介紹

    下面我會分別講解 Selenium、Appium、Playwright 等主流自動化框架的區別、聯系、適用場景和歸屬范疇&#xff0c;幫助你更系統地理解它們。&#x1f527; 一、它們都屬于哪一類工具&#xff1f;Selenium、Appium、Playwright、Cypress 等都屬于&#xff1a;?? 自動化測試框架…

    基于cornerstone3D的dicom影像瀏覽器 第三十二章 文件夾做pacs服務端,fake-pacs-server

    文章目錄 前言一、實現思路二、項目與代碼三、dicom瀏覽器調用1. view2d.vue前言 本系列最后一章,提供一個模擬pacs服務,供訪問dicom圖像測試。 修改nodejs本地目錄做為http服務根目錄,提供一個根目錄,其中的每個子目錄代表一個檢查。在dicom瀏覽器url中帶入參數studyId=目…

    【Python 核心概念】深入理解可變與不可變類型

    文章目錄一、故事從變量賦值說起二、不可變類型 (Immutable Types)三、可變類型 (Mutable Types)四、一個常見的陷阱&#xff1a;當元組遇到列表五、為什么這個區別如此重要&#xff1f;1. 函數參數的傳遞2. 字典的鍵 (Dictionary Keys)3. 函數的默認參數陷阱六、進階話題與擴展…

    wpf使用webview2顯示網頁內容(最低兼容.net framework4.5.2)

    wpf使用webview2顯示網頁內容(最低兼容.net framework4.5.2 一、核心功能與架構混合開發支持?進程隔離模型?通信機制?二、核心優勢性能與兼容性?跨平臺部署?開發效率?安全機制?三、適用場景四、開發部署要點WebView2 是微軟推出的現代瀏覽器控件,基于 Chromium 內核的 …

    MySQL斷開連接后無法正常啟動解決記錄

    問題現象 夜里23點MySQL在還原備份的時候斷開連接&#xff0c;嘗試重啟&#xff0c;表面上是運行中實際上無法通過命令端連接&#xff0c;無法正常啟動。 問題檢查 可以使用 systemctl start mysql 但是沒有監聽 3306端口 mysql -ucosmic -p 提示無法找到socket文件 刪除原先的…

    隧道安全監測系統的應用意義

    隨著我國交通基礎設施建設的快速發展&#xff0c;公路、鐵路及城市地鐵隧道數量不斷增加&#xff0c;隧道安全問題日益凸顯。隧道作為地下封閉空間&#xff0c;受地質條件、施工質量、運營環境等多因素影響&#xff0c;易出現結構變形、滲漏水、襯砌開裂等安全隱患。一旦發生事…

    前端UI邏輯復雜可以用什么設計模式

    中介者模式 當UI組件間存在復雜交互或多個組件需共享狀態時&#xff0c;中介者模式能集中管理事件分發和狀態更新&#xff0c;減少組件間的直接依賴&#xff0c;提升解耦性。 vue實現中介者模式 在Vue中實現中介者模式&#xff0c;你可以通過創建一個全局的事件中心&#xff08…

    WIFI協議全解析05:WiFi的安全機制:IoT設備如何實現安全連接?

    &#x1f510; WiFi的安全機制&#xff1a;IoT設備如何實現安全連接&#xff1f;“我的設備明明連上WiFi了&#xff0c;為什么還是能被‘蹭網’&#xff1f;” “WPA3 是什么&#xff1f;ESP32 支持嗎&#xff1f;” “我做了MQTT加密就算安全了嗎&#xff1f;”IoT設備連接WiF…

    HTTP 請求體類型詳解:選擇最適合的數據提交格式

    HTTP 請求體類型詳解&#xff1a;選擇最適合的數據提交格式 &#x1f680; 本文全面解析 HTTP 請求中不同 Content-Type 的適用場景、數據結構與優劣勢&#xff0c;幫助開發者高效選擇數據傳輸方案。 &#x1f4cc; 目錄 核心請求體類型對比詳細類型解析最佳實踐指南總結 &am…

    C語言 | 函數核心機制深度解構:從底層架構到工程化實踐

    個人主頁-愛因斯晨 文章專欄-C語言 引言 最近偷懶了&#xff0c;迷上了三國和李賀。給大家分享一下最喜歡的一句詩&#xff1a;吾不識青天高黃地厚&#xff0c;唯見月寒日暖來煎人壽。我還不是很理解27歲的李賀&#xff0c;如何寫出如此絕筆。 正文開始&#xff0c;今天我們…