視覺-語言-動作模型:概念、進展、應用與挑戰(上)

25年5月來自 Cornell 大學、香港科大和希臘 U Peloponnese 的論文“Vision-Language-Action Models: Concepts, Progress, Applications and Challenges”。

視覺-語言-動作 (VLA) 模型標志著人工智能的變革性進步,旨在將感知、自然語言理解和具體動作統一在一個計算框架內。這篇基礎綜述全面總結視覺-語言-動作模型的最新進展,并系統地涵蓋構成這一快速發展領域格局的五大主題支柱。首先建立 VLA 系統的概念基礎,追溯其從跨模態學習架構到緊密集成視覺-語言模型 (VLM)、動作規劃器和分層控制器的通用智體演變過程。其方法論采用嚴格的文獻綜述框架,涵蓋過去三年發布的 80 多個 VLA 模型。關鍵進展領域包括架構創新、參數高效的訓練策略和實時推理加速。其探索人形機器人、自動駕駛汽車、醫療和工業機器人、精準農業以及增強現實(AR)導航等多種應用領域。本綜述進一步探討實時控制、多模態動作表征、系統可擴展性、泛化至未知任務以及倫理部署風險等方面的主要挑戰。借鑒最新成果,其提出針對性的解決方案,包括智體 AI 自適應、跨具身泛化和統一神經符號規劃。在前瞻性討論中,概述未來路線圖,其中 VLA 模型、VLM和智體 AI 將融合,為符合社會規范、自適應且通用的具身智體提供支持。

在視覺-語言-動作 (VLA) 模型出現之前,機器人技術和人工智能的進步主要發生在不同的領域:能夠查看和識別圖像的視覺系統 [44, 69],能夠理解和生成文本的語言系統 [164, 137],以及能夠控制運動的動作系統 [49]。這些系統獨立運行良好,但難以協同工作或處理新的、不可預測的情況 [46, 21]。因此,它們無法理解復雜的環境或靈活應對現實世界的挑戰。

如圖所示,傳統的計算機視覺模型主要基于卷積神經網絡 (CNN),僅適用于目標檢測或分類等特定任務,需要大量標記數據集,并且即使環境或目標發生輕微變化,也需要繁瑣的再訓練 [156, 62]。這些視覺模型可以“看”(例如,如圖所示,識別果園中的蘋果),但缺乏對語言的理解,也無法將視覺洞察轉化為有目的的動作。語言模型,尤其是大語言模型 (LLM),徹底改變了基于文本的理解和生成 [23];然而,它們仍然局限于處理語言,而缺乏感知或推理物理世界的能力 [76](圖中的“果園里成熟的蘋果”就體現這一局限性)。與此同時,機器人領域中基于動作的系統嚴重依賴于手動制定的策略或強化學習 [122],雖然能夠實現諸如目標操作之類的特定行為,但需要艱苦的工程設計,并且無法在狹隘的腳本場景之外進行泛化 [119]。盡管 VLM 取得進展,通過結合視覺和語言實現令人印象深刻的多模態理解 [149, 25, 148],但仍然存在明顯的整合差距:無法基于多模態輸入生成或執行連貫的動作 [121, 107]。

請添加圖片描述

如圖所示,大多數 AI 系統最多專注于兩種模態——視覺-語言、視覺-動作或語言-動作——但難以將這三種模態完全整合到一個統一的端到端框架中。因此,機器人可以通過視覺識別目標(“蘋果”),理解相應的文本指令(“摘蘋果”),或執行預定義的運動動作(抓取),但將這些能力協調成流暢、適應性強的行為卻遙不可及。結果是一個碎片化的流水線架構,無法靈活地適應新的任務或環境,從而導致泛化能力脆弱和勞動密集型的工程工作。這凸顯具身人工智能的一個關鍵瓶頸:如果沒有能夠共同感知、理解和行動的系統,智能自主行為仍然是一個難以實現的目標。

彌合這些差距的迫切需求催化 VLA 模型的出現。VLA 模型概念化于2021-2022年左右,由谷歌 DeepMind 的Robot Transformer 2 (RT-2) [224]等項目開創,它引入了一種變革性架構,將感知、推理和控制統一在一個框架內。為了解決圖中概述的局限性,VLA集成視覺輸入、語言理解和運動控制能力,使具身智體能夠感知周圍環境,理解復雜指令,并動態地執行適當的操作。早期的 VLA 方法通過擴展視覺-語言模型,將動作 token(機器人運動命令的數字或符號表示)納入其中,從而實現這種集成,從而使模型能夠從成對的視覺、語言和軌跡數據中學習 [121]。這種方法上的創新極大地提高機器人泛化到未見過的目標、解釋新的語言命令以及在非結構化環境中執行多步推理的能力 [83]。

VLA 模型代表追求統一多模態智能的變革性一步,克服了長期以來將視覺、語言和動作視為獨立領域的局限性 [121]。通過利用整合視覺、語言和行為信息的互聯網規模數據集,VLA 不僅使機器人能夠識別和描述其環境,還能在復雜、動態的環境中根據上下文進行推理并執行適當的動作 [196]。如圖所示的從孤立視覺、語言和動作系統到集成的 VLA 范式的進展,體現向真正具有適應性和可泛化的具身智體發展的根本性轉變。

本綜述系統地分析 VLA 模型的基本原理、發展進展和技術挑戰。目標是鞏固當前對 VLA 的理解,同時識別其局限性并提出其未來的發展方向。綜述首先詳細探討關鍵概念基礎(如圖所示),包括 VLA 模型的構成、其歷史演變、多模態集成機制以及基于語言的 token 化和編碼策略。這些概念組件為理解 VLA 的結構及其跨模態功能奠定了基礎。

請添加圖片描述

在此基礎上,呈現了近期進展和訓練效率策略的統一視圖(如圖所示)。這包括支持更強大、更通用 VLA 模型的架構創新,以及數據高效的學習框架、參數高效的建模技術,以及旨在在不影響性能的情況下降低計算開銷的模型加速策略。這些進步對于將 VLA 系統擴展到實際應用至關重要。

請添加圖片描述

接下來,探討 VLA 系統目前面臨的局限性(如圖所示)。這些局限性包括推理瓶頸、安全隱患、高計算需求、有限的泛化能力以及倫理影響。不僅強調這些緊迫的挑戰,還對解決這些挑戰的潛在解決方案進行分析性探討。

請添加圖片描述

這三幅圖共同構成一個可視化框架,支持本文的文本分析。通過概述概念圖、最新創新和尚未解決的挑戰,本文旨在指導未來的研究,并鼓勵開發更穩健、更高效、更符合倫理的 VLA 系統。

VLA 模型代表一類新型智能系統,它們能夠聯合處理視覺輸入、解讀自然語言并在動態環境中生成可執行動作。從技術上講,VLA 結合視覺編碼器(例如 CNN、ViT)、語言模型(例如 LLM、Transformer)以及策略模塊或規劃器,以實現任務條件控制。這些模型通常采用多模態融合技術(例如交叉注意、級聯嵌入或 token 統一),將感官觀察結果與文本指令對齊。

與傳統的視覺運動流程不同,VLA 支持語義基礎,從而實現上下文-覺察推理、affordance 檢測和時間規劃。典型的 VLA 模型通過攝像頭或傳感器數據觀察環境,解讀用語言表達的目標(例如“拿起紅蘋果”)(如圖所示),并輸出低級或高級動作序列。最近的進展整合模仿學習、強化學習或檢索增強模塊,以提高樣本效率和泛化能力。本綜述探討 VLA 模型如何從基礎融合架構發展成為能夠在機器人、導航和人機協作等領域實際部署的通用智體。

請添加圖片描述

VLA 模型是多模態人工智能系統,將視覺感知、語言理解和身體動作生成統一到一個框架中。這些模型使機器人或人工智能智體能夠解讀感官輸入(例如圖像、文本)、理解上下文含義,并在現實環境中自主執行任務——所有這些都通過端到端學習而非孤立的子系統實現。如圖概念所示,VLA 模型彌合視覺識別、語言理解和運動執行之間長期以來的脫節,而這種脫節限制了早期機器人和人工智能系統的能力。

如圖展示一條完整的時間線,重點介紹 2022 年至 2025 年間開發的 47 個 VLA 模型的演變歷程。最早的 VLA 系統,包括 CLIPort [157]、Gato [141]、RT-1 [18] 和 VIMA [86],通過將預訓練的視覺語言表征與任務條件策略相結合,為操作和控制奠定了基礎。隨后是 ACT [216]、RT-2 [224] 和 Vox-Poser [78],它們整合了視覺思維鏈推理和 affordance 基礎。像 Diffusion Policy [34] 和 Octo [167] 這樣的模型引入隨機建模和可擴展的數據流水線。 2024年,Deer-VLA [202]、ReVLA [39] 和 Uni-NaVid [210] 等系統增加域專業化和內存高效設計,而 Occllama [183]?? 和 ShowUI [108] 則著眼于部分可觀測性和用戶交互。這一發展軌跡延續到專注于機器人技術的 VLA,例如 Quar-VLA [43] 和 RoboMamba [111]。最近的創新強調泛化和部署:SafeVLA [205]、Humanoid-VLA [42] 和 MoManipVLA [190] 融合驗證、全身控制和記憶系統。Gr00t N1 [13] 和 SpatialVLA [136] 等模型進一步連接模擬-到-現實的遷移和空間落地。這條時間線展現 VLA 如何從模塊化學習發展到通用、安全和具身智能。

請添加圖片描述

VLA 模型興起的核心進步在于其能夠進行多模態集成,即在統一架構內聯合處理視覺、語言和動作。傳統的機器人系統將感知、自然語言理解和控制視為離散的模塊,通常通過手動定義的接口或數據轉換進行連接 [109, 20, 168]。例如,經典的基于流水線框架需要感知模型輸出符號標簽,然后由規劃器將其映射到特定的動作——通常需要使用特定領域的手動工程 [138, 90]。這些方法缺乏適應性,在模糊或新的環境中失效,并且無法在預編碼模板之外泛化指令。

相比之下,現代 VLA 使用大規模預訓練編碼器和基于 Transformer 的架構,端到端地融合各種模態 [188]。這種轉變使模型能夠在同一計算空間內解釋視覺觀察和語言指令,從而實現靈活的上下文-覺察推理 [99]。例如,在“撿起紅色的成熟蘋果”任務中,視覺編碼器(通常是 Vision Transformer (ViT) 或 ConvNeXt)對場景中的目標(例如,蘋果、樹葉、背景)進行分割和分類,識別顏色和成熟度屬性 [187]。同時,語言模型(通常是 T5、GPT 或 BERT 的變體)將指令編碼為高維嵌入。然后,這些表示通過交叉注意或聯合token化方案融合,生成一個統一的潛空間,為行動策略提供信息 [68]。

這種多模態協同作用首次在 CLIPort [157] 中得到有效展示,它使用 CLIP 嵌入進行語義基礎構建,并使用卷積解碼器進行像素級操作。CLIPort 繞過了顯式語言解析的需要,直接在自然語言上調節視覺運動策略。同樣地,VIMA [86] 通過使用 Transformer 編碼器聯合處理以目標為中心的視覺tokens和指令tokens,改進了這種方法,從而實現了跨空間推理任務的少樣本泛化。

最近的進展通過結合時間和空間基礎,進一步推動了這種融合。VoxPoser [78] 采用體素級推理來解決 3D 目標選擇中的歧義問題,而 RT-2 [224] 將視覺語言 tokens 融合到一個統一的 Transformer 中,支持對未見指令的零樣本泛化。另一個值得關注的貢獻是 Octo [167],它引入一種記憶增強的 Transformer,能夠跨不同場景進行長視界決策,展示了感知-語言-動作聯合學習的可擴展性。

至關重要的是,VLA 為現實世界的落地挑戰提供了強大的解決方案。例如,Occllama [183]?? 通過基于注意機制處理遮擋目標引用,而 ShowUI [108] 演示自然語言界面,允許非專家用戶通過語音或鍵入輸入來指揮智體。這些功能之所以能夠實現,是因為集成并不局限于表面層次的融合;相反,它能夠捕捉跨模態的語義、空間和時間對齊。

VLA 模型區別于傳統視覺-語言架構的核心創新在于其基于 token 的表示框架,該框架支持對感知 [125, 215]、語言和物理動作空間 [106] 進行整體推理。受 Transformer 等自回歸生成模型的啟發,現代 VLA 使用離散 token 對世界進行編碼,將所有模態(視覺、語言、狀態和動作)統一到共享的嵌入空間 [110]。這使得模型不僅能夠理解“需要做什么”(語義推理),還能以完全可學習和可組合的方式理解“如何做”(控制策略執行)[192, 117, 170]。

? 前綴 token:編碼上下文和指令:前綴 token 是 VLA 模型的上下文主干 [195, 83]。這些token將環境場景(通過圖像或視頻)及其附帶的自然語言指令編碼成緊湊的嵌入,從而為模型的內部表征做好準備 [16]。

例如,如圖所示,在“將綠色積木堆放在紅色托盤上”等任務中,雜亂桌面的圖像通過 ViT 或 ConvNeXt 等視覺編碼器進行處理,而指令則由大語言模型(例如 T5 或 LLaMA)嵌入。然后,這些被轉換為一系列前綴 token,用于建立模型對目標和環境布局的初步理解。這種共享表征實現跨模態落地,使系統能夠解析跨模態的空間參考(例如,“在左邊”、“在藍色杯子旁邊”)和目標語義(“綠色積木”)。

請添加圖片描述

? 狀態 token:嵌入機器人的配置:除了感知外部刺激之外,VLA 還必須感知其內部的物理狀態 [186, 111]。這通過使用狀態 token 來實現,狀態 token 編碼關于智體配置的實時信息——關節位置、力-扭矩讀數、夾持器狀態、末端執行器姿態,甚至附近目標的位置 [97]。這些 token 對于確保態勢覺察和安全至關重要,尤其是在操作或運動過程中 [163, 81]。

如圖展示 VLA 模型如何利用狀態 token 在操作和導航環境中實現動態的、基于上下文-覺察的決策。在圖 a 中,機械臂在一個易碎物體附近部分伸展。在這種情況下,狀態 token 通過編碼實時本體感受信息(例如關節角度、夾持器姿勢和末端執行器接近度)發揮著關鍵作用。這些 token 不斷與基于視覺和語言的前綴 token 融合,使 Transformer 能夠推理物理約束。因此,該模型可以推斷出即將發生碰撞并相應地調整電機命令 - 例如,重新規劃手臂軌跡或調節力輸出。在移動機器人平臺中,如圖 b 所示,狀態 token 封裝了里程表、激光雷達掃描和慣性傳感器數據等空間特征。這些對于地形-覺察運動和避障至關重要。Transformer 模型將這種狀態表示與環境和教學內容相結合,以生成能夠動態適應不斷變化的環境的導航動作。無論是在雜亂的環境中抓取物體,還是在不平坦的地形上自主導航,狀態 token 都為態勢-覺察提供了一種結構化的機制,使自回歸解碼器能夠生成精確的、基于情境的動作序列,這些序列既能反映機器人的內部配置,也能反映外部傳感數據。

請添加圖片描述

? 動作 token:自回歸控制生成:VLA token 流水線的最后一層涉及動作 token [93, 94],這些 tokens 由模型自回歸生成,用于表示運動控制的下一步 [186]。每個 token 對應一個低級控制信號,例如關節角度更新、扭矩值、車輪速度或高級運動原語 [64]。在推理過程中,模型以前綴和狀態 token 為條件,一步一步地解碼這些 token,從而有效地將 VLA 模型轉變為語言驅動的策略生成器 [54, 161]。這種方案可以與現實世界的驅動系統無縫集成,支持可變長度的動作序列 [10, 77],并支持通過強化或模仿學習框架進行模型微調 [214]。值得注意的是,RT-2 [224] 和 PaLM-E [47] 等模型體現這種設計,將感知、指令和具體化融合到統一的 token 流中。

例如,如圖所示的采摘蘋果任務中,模型可以接收包含果園圖像和文本指令的前綴 token。狀態 token 描述了機器人當前的手臂姿勢以及夾持器是打開還是閉合。然后逐步預測動作 token,引導機械臂靠近蘋果,調整夾持器方向,并以適當的力度執行抓取。這種方法的妙處在于,它使得傳統上用于文本生成的 Transformer 能夠以類似于生成句子的方式生成物理動作序列——只不過在這里,句子本身就是動作。

請添加圖片描述

為了在機器人技術中實現VLA范式的可操作性,在圖中展示了一個結構化流程,演示了如何將多模態信息(特別是視覺、語言和本體感受狀態)編碼、融合并轉換為可執行的動作序列。這種端到端循環使機器人能夠理解諸如“摘取綠葉附近成熟的蘋果”之類的復雜任務,并執行精確的、上下文相關的操作。該系統從多模態輸入采集開始,收集三種不同的數據流:視覺觀測(例如RGB-D幀)、自然語言命令和實時機器人狀態信息(例如關節角度或速度)。使用預訓練模塊 [41, 212] 將它們獨立地 token 化為離散的嵌入。如圖所示,圖像通過視覺 Transformer (ViT) 主干處理以生成視覺 token,指令由 BERT 或 T5 等語言模型解析以生成語言 token,狀態輸入通過輕量級 MLP 編碼器轉換為緊湊的狀態 token。然后使用跨模態注意機制融合這些 token,其中模型聯合推理目標語義、空間布局和物理約束 [61]。這種融合的表示構成決策的上下文基礎 [74, 116]。在圖中,這個表示為多模態融合步驟。融合的嵌入被傳遞到自回歸解碼器(通常是 Transformer)中,該解碼器生成一系列動作 tokens。這些 tokens 可能對應于關節位移、夾持器力調節或高級運動原語(例如,“移動到抓取姿勢”、“旋轉手腕”)。隨后,動作 tokens 被轉換為控制命令并傳遞到執行循環,執行循環通過反饋機器人的更新狀態來閉合感知-動作循環,從而為下一步推理提供信息。這種閉環機制使模型能夠實時動態地適應擾動、目標移動或遮擋[206, 120, 194]。

為了提供具體的實現細節,如下算法 1 形式化 VLA token 化過程。給定 RGB-D 幀 I、自然語言指令 T 和關節角度向量 θ,該算法生成一組可按順序執行的動作 tokens。圖像 I 通過 ViT 處理生成 V,即一組 400 個視覺 tokens。并行地,指令 T 由 BERT 模型編碼生成 L,即 12 個語義語言 tokens 的序列。同時,機器人狀態 θ 經過多層感知器生成 64 維狀態嵌入 S。然后,這些 tokens 通過交叉注意模塊融合,生成一個共享的 512 維表示 F,從而捕獲執行落地動作所需的語義、意圖和態勢-覺察。最后,策略解碼器(如 FAST [133])將融合的特征映射到 50 個離散的動作 tokens,然后可以將其解碼為運動命令 τ_1:N。

請添加圖片描述

解碼過程使用基于 Transformer 的架構實現,如“動作預測代碼”的代碼片段所示。一個“Transformer”目標,初始化為 12 層,模型維度為 512,并有 8 個注意頭。融合后的token 被傳遞到解碼器,解碼器根據先前的 token 和上下文,自回歸地預測下一個最可能的動作 token。最終的運動指令序列通過對輸出進行去 token 化獲得。此實現反映了大語言模型中文本生成的工作方式,但這里的“句子”是一條運動軌跡——這是自然語言生成技術在物理動作合成中的一種重新利用。

請添加圖片描述

上圖、算法 1 和偽代碼,共同說明了 VLA 如何在連貫且可解釋的 token 空間中統一感知、指令和具身。這種模塊化特性使該框架能夠跨任務和機器人形態進行泛化,從而促進其在蘋果采摘、家務和移動導航等實際應用中的快速部署。重要的是,token 化步驟的清晰性和可分離性使該架構具有可擴展性,從而支持進一步研究 VLA 系統中的token 學習、分層規劃或符號落地。

訓練 VLA 模型需要一種混合學習范式,該范式整合來自網絡的語義知識和來自機器人數據集的任務落地信息 [30]。VLA 的多模態架構必須接觸支持語言理解、視覺識別和運動控制的多種形式的數據。這通常通過兩個主要數據源實現。

首先,如圖所示,大規模互聯網語料庫構成模型語義先驗的主干。這些數據集包括圖像-字幕對(例如 COCO、LAION-400M)、指令跟蹤數據集(例如 HowTo100M、WebVid)以及視覺問答語料庫(例如 VQA、GQA)。此類數據集支持對視覺和語言編碼器進行預訓練,幫助模型獲得目標、動作和概念的通用表示 [2]。此階段通常使用對比或掩碼建模目標,例如 CLIP 式對比學習或語言建模損失,以在共享的嵌入空間內對齊視覺和語言模態 [146, 199]。重要的是,此階段為 VLA 提供了基礎性的“世界理解”,從而促進了組合泛化、目標落地和零樣本遷移 [28, 15]。然而,僅有語義理解不足以執行物理任務 [36, 178, 107]。因此,第二階段側重于將模型植根于具身體驗 [178]。機器人軌跡數據集(從現實世界的機器人或高保真模擬器收集)用于教導模型如何將語言和感知轉化為動作 [54]。其中包括 RoboNet [37]、BridgeData [50] 和 RT-X [175] 等數據集,它們在自然語言指令下提供視頻-動作對、關節軌跡和環境交互 [123]。演示數據可能來自動覺教學、遙操作或腳本策略 [89, 12]。此階段通常采用監督學習(例如行為克隆)[55]、強化學習 (RL) 或模仿學習來訓練自回歸策略解碼器,使其基于融合的視覺-語言-狀態嵌入預測動作 token [65]。最近的研究越來越多地采用多階段或多任務訓練策略。例如,模型通常使用掩碼語言模型在視覺-語言數據集上進行預訓練,然后使用 token 級自回歸損失在機器人演示數據上進行微調 [94, 221, 195]。其他方法則采用課程學習,先完成簡單任務(例如,物體推送)再完成復雜任務(例如,多步驟操作)[217]。一些方法進一步利用域自適應(例如 Open-VLA [94] 或模擬-到-現實遷移)來彌合合成分布與現實世界分布之間的差距 [96]。通過將語義先驗與任務執行數據統一起來,這些學習范式使 VLA 模型能夠跨任務、跨領域和跨具體實現進行泛化,從而構成了可擴展、指令跟隨型智體的主干,這些智體能夠在現實世界中穩健地運行。

請添加圖片描述

通過共同微調,這些數據集得以對齊 [179, 52]。該模型學習將視覺和語言輸入映射到適當的動作序列 [136]。這種訓練范式不僅有助于模型理解目標的 affordance(例如,蘋果可以被抓取)和動作結果(例如,舉起需要力和軌跡),還能促進模型泛化到新場景 [100]。如果一個在廚房操作任務上訓練的模型已經學習了物體定位、抓取和遵循語言指令的一般原理,那么它或許能夠推斷出如何在戶外果園里摘蘋果。
近期的一些架構,例如谷歌 DeepMind 的 RT-2(機器人 Transformer 2)[224],已經實際演示了這一原理。RT-2 將動作生成視為文本生成的一種形式,其中每個動作 token 對應于機器人控制空間中的一個離散命令。由于該模型是在網絡規模的多模態數據和數千個機器人演示上進行訓練的,因此它可以靈活地解釋新的指令并對新目標和任務進行零樣本泛化——這在傳統控制系統甚至早期的多模態模型中基本上是不可能的。

VLA 的另一個優勢在于它們能夠執行自適應控制,利用傳感器的實時反饋動態調整行為 [153]。這在果園、住宅或醫院等動態非結構化環境中尤為重要,因為意外變化(例如,風吹動蘋果、光照變化、人類存在)都可能改變任務參數。在執行過程中,狀態 token 會實時更新,反映傳感器輸入和關節反饋 [195]。然后,模型可以相應地修改其計劃好的動作。例如,在采摘蘋果的場景中,如果目標蘋果略微移動或另一個蘋果進入視野,模型就會動態地重新解釋場景并調整抓取軌跡。這種能力模仿類似人類的適應性,是 VLA 系統相對于基于流水線的機器人的核心優勢。

。。。。。。待續。。。。。。

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

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

相關文章

Java筆記4

第一章 static關鍵字 2.1 概述 以前我們定義過如下類: public class Student {// 成員變量public String name;public char sex; // 男 女public int age;// 無參數構造方法public Student() {}// 有參數構造方法public Student(String a) {} }我們已經知道面向…

記一次redis未授權被種挖礦

#挖礦程序 /etc/httpgd /etc/nnt.sh #大小問 #定時任務名為root /var/spool/cron/root 內容:*/50 * * * * sh /etc/nnt.sh >/dev/null 2>&1 定時任務只有所有者可以寫,且chmod修改權限失敗。 #先查看定時任務的拓展屬性,不可變(i…

Excel分組計算求和的兩種實現方案

文章目錄 背景樣例數據方案一、函數求和實現步驟缺點 方案二、數據透視表實現步驟優點 背景 在Excel文檔中,經常會進行數據的求和計算,可使用不同的方式實現,記錄下來,方便備查。 樣例數據 已有商品銷量信息,包含銷…

如何應對網站被爬蟲和采集?綜合防護策略與實用方案

在互聯網時代,網站內容被惡意爬蟲或采集工具竊取已成為常見問題。這不僅侵犯原創權益,還可能影響網站性能和SEO排名。以下是結合技術、策略與法律的綜合解決方案,幫助網站構建有效防護體系。 一、技術防護:阻斷爬蟲的“技術防線”…

網卡網孔速率的協商是如何進行的?

網卡與交換機等網絡設備之間的速率協商主要通過**自動協商(Auto-Negotiation)**機制實現,其核心是物理層(PHY)芯片之間的信息交互。以下是協商過程的詳細解析: 一、自動協商的核心流程 1. 發送配置幀&am…

FastExcel 本地開發和Linux上上傳Resource文件的差異性

不能直接通過路徑來獲取 這個是一個下載導出文件的操作 GetMapping(value "/export/all") public void exportAll(HttpServletResponse response, LaylineListReq req) throws IOException {// 從類路徑下獲取 Excel 文件資源ClassPathResource classPathResource…

【RAG】Milvus、Pinecone、PgVector向量數據庫索引參數優化

Milvus 、PgVector 索引參數優化 IVF類索引關鍵參數(基于聚類算法) nlist (倒排列表數量): 決定將向量空間劃分為多少個聚類中心值越大搜索越精確但耗時越長推薦值: 通常設置為數據量的4√n到n/1000之間例如: 1百萬數據量可設nlist1000到4000 nprobe (搜…

5月12日信息差

一、國際政治與安全:俄烏沖突與中美博弈 1. 烏克蘭戰場信息分化 俄方戰報: 俄羅斯國防部宣稱在頓巴斯地區摧毀烏軍12輛坦克及3套美制“海馬斯”火箭系統,稱烏軍反攻受阻。 信息特點:強調裝備摧毀數量,淡化前線實際控制變化。 烏方通報: 烏克蘭總參謀部表示已奪回巴赫穆特…

Python如何使用進行風險管理和投資組合優化

文章目錄 前言python3.13 環境配置風險管理投資組合優化 前言 在 Python 中,可以使用多個庫來進行風險管理和投資組合優化,以下是一些常見的方法和庫。 python3.13 環境配置 python3.13安裝教程:https://blog.csdn.net/2501_91538706/artic…

C++ 狀態模式詳解

狀態模式(State Pattern)是一種行為設計模式,它允許一個對象在內部狀態改變時改變其行為,使對象看起來像是改變了其類。 核心概念 設計原則 狀態模式遵循以下設計原則: 單一職責原則:將狀態相關行為分離…

Html5新特性_js 給元素自定義屬性_json 詳解_淺克隆與深克隆

文章目錄 1. html5新特性2.用 js 給元素自定義屬性3.json3.1 json與普通對象的區別3.2 json對象與 js對象的轉化 4.淺克隆和深克隆 1. html5新特性 html5中引入了新的特性(新的標簽),下面的新標簽是新的結構標簽,不過不太常用 h…

std::move 和 std::forward

關聯點 都是執行轉換(cast)的函數(函數模板),不產生任何可執行代碼。且都可以把實參轉換成右值。 std::move無條件將實參(const除外 )轉換成右值引用,std::forward 條件返回右值引用 _EXPORT_STD template…

Uniapp編寫微信小程序,使用canvas進行繪圖

一、canvas文檔: https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial 二、數據繪制(單位是像素): 1、繪制文本: 文字的長度超過設置的最大寬度,文字會縮在一起 ① 填充文本&#xf…

FLASH閃存(擦除、編譯)

FLASH閃存 文章目錄 FLASH閃存1.存儲器映像位置2.FLASH簡介3.閃存模塊組織3.2閃存的共性: 4.FLASH基本結構4.1FLASH解鎖4.2使用指針訪問寄存器 5.選項字節5.1選項字節編程5.2選項字節擦除 6.相關函數介紹7.讀取內部FLASH(實操)7.1接線圖7.2工…

PostgreSQL 序列(Sequence) 與 Oracle 序列對比

PostgreSQL 序列(Sequence) 與 Oracle 序列對比 PostgreSQL 和 Oracle 都提供了序列(Sequence)功能,但在實現細節和使用方式上存在一些重要差異。以下是兩者的詳細對比: 一 基本語法對比 1.1 創建序列 PostgreSQL: CREATE [ { TEMPORARY | TEMP } |…

12.2.2 allocator類

allocator類將分配內存空間、調用構造函數、調用析構函數、釋放內存空間這4部分操作分開&#xff0c;全部交給程序員來執行&#xff0c;不像new和delete #include <iostream> #include <string>int main() {const int n 10;std::allocator<std::string> al…

Android 中 Handler (創建時)內存泄漏問題及解決方案

一、Handler 內存泄漏核心原理 真題 1&#xff1a;分析 Handler 內存泄漏場景 題目描述&#xff1a; 在 Activity 中使用非靜態內部類 Handler 發送延遲消息&#xff0c;旋轉屏幕后 Activity 無法釋放&#xff0c;分析原因并給出解決方案。 內存泄漏鏈路分析&#xff1a; 引…

SSTI記錄

SSTI(Server-Side Template Injection&#xff0c;服務器段模板注入) 當前使用的一些框架&#xff0c;如python的flask、php的tp、java的spring&#xff0c;都采用成熟的MVC模式&#xff0c;用戶的輸入會先進入到Controller控制器&#xff0c;然后根據請求的類型和請求的指令發…

探索邊緣計算:賦能物聯網的未來

摘要 隨著物聯網&#xff08;IoT&#xff09;技術的飛速發展&#xff0c;越來越多的設備接入網絡&#xff0c;產生了海量的數據。傳統的云計算模式在處理這些數據時面臨著延遲高、帶寬不足等問題&#xff0c;而邊緣計算的出現為解決這些問題提供了新的思路。本文將深入探討邊緣…

tabs切換#

1、html <el-tabs v-model"tabValue" tab-change"handleTabClick"><el-tab-pane label"集群" name"1"></el-tab-pane><el-tab-pane label"節點" name"2"></el-tab-pane></el-ta…