[EAI-023] FAST,機器人動作專用的Tokenizer,提高VLA模型的能力和訓練效率

Paper Card

論文標題:FAST: Efficient Action Tokenization for Vision-Language-Action Models
論文作者:Karl Pertsch, Kyle Stachowicz, Brian Ichter, Danny Driess, Suraj Nair, Quan Vuong, Oier Mees, Chelsea Finn, Sergey Levine
論文鏈接:https://arxiv.org/abs/2501.09747
論文出處:/
論文被引:/
項目主頁:https://www.pi.website/research/fast

Abstract

基于Transformer的視覺-語言-動作(VLA)策略等自回歸序列模型,可以非常有效地捕捉復雜且可泛化的機器人行為。 但是,此類模型對連續動作信號的進行 tokenization(離散標記化),這決定了模型預測的離散token (標記)如何映射到連續的機器人動作(action)。 當前基于簡單逐維度、逐時間步長分箱方案的機器人動作離散標記化方法,在從高頻機器人數據中學習靈巧技能時,通常表現不佳。 為了解決這一挑戰,本文提出了一種基于離散余弦變換的基于壓縮的機器人動作離散標記化方案——Frequency-space Action Sequence Tokenization (FAST),能夠為高度靈巧和高頻的任務訓練自回歸VLA,而標準離散化方法在此類任務中完全失效。 基于FAST,發布了一個通用的機器人動作離散標記化器 FAST+,它在100萬個真實的機器人動作軌跡上訓練。 它可以用作各種機器人動作序列(具有不同的動作空間和控制頻率)的黑盒分詞器(tokenizer)。 當與 VLA 模型 pi0 結合使用時,可以擴展到在1萬小時的機器人數據上進行訓練,并與擴散VLA模型的性能相當,但訓練時間減少了5倍。

Summary

研究背景

性能好的tokenizer對序列模型的性能至關重要。當前機器人策略通常使用基于每個維度、每個時間步長分箱方案的簡單 tokenization 方法,這類方法在學習具有高頻控制的靈巧技能時的表現不好(本文中涉及的測試全部失敗)。當預測未來動作序列時,簡單的tokenizer難以捕獲各個時間步之間的相關性,高度相關的action token降低了自回歸VLA模型對 next token prediction 建模的有效性。

方法介紹

在這里插入圖片描述

從第一性原理出發,開發新的 action tokenizer。關鍵想法:受到llama中使用的 BPE 編碼方法的啟發,在模型訓練之前壓縮機器人動作信號,減少連續token之間的相關性。考慮到機器人動作是連續信號,因此采用離散余弦變換編碼,由此產生的 tokenization 方法稱為 Frequency-space Action Sequence Tokenization (FAST)。在 DROID 數據集上高效訓練 VLA 模型,在未見的真實環境通過自然語言提示進行零樣本評測。
在這里插入圖片描述

構建了 FAST+ 通用的機器人動作 tokenizer,在100萬條真機數據上訓練。可以對各種機器人動作序列進行分詞,報錯單臂機器人、雙臂機器人和移動機器人。當pi0模型結合FAST進行訓練時,比原來的結合擴散思想的模型訓練時間縮短了 5 倍,但性能相當。

相關工作

基于VLM構建的VLA模型是構建通用機器人策略的有效方法。他在大規模的互聯網圖文對上訓練,并使用機器人數據微調,用于機器人控制。VLA的優勢是:1)數十億參數的VLM骨干為策略提供了適應大型機器人數據集所需要的表達能力;2)重用VLM的權重可以提高VLA模型遵從多樣化指令的能力和泛化能力,例如泛化到未見物體和未見場景背景。

當前VLA模型的控制頻率基本都很低,自回歸的VLA模型更甚,難以適應高頻的靈巧操作任務。原因是 tokenizer 使用簡單的每個維度、每個時間步長分箱方案。為此,本文提出了一種基于時間序列壓縮技術的機器人動作分詞器 FAST。

前置知識

問題描述:目標是訓練策略 π ( a 1 : H ∣ o ) π(a_{1:H}|o) π(a1:H?o),將觀測結果 o o o 映射到未來機器人動作序列 a 1 : H a_{1:H} a1:H?。假設策略輸出動作塊(Action Chunk),即序列長度為 H H H 動作,這使得更容易產生時間上一致的動作并減少復合誤差。 動作分詞(Action Tokenization)的目標是定義一個映射 T a : a 1 : H → [ T 1 , … , T n ] \mathcal{T}_{a}:a_{1:H} → [T_1,…,T_n] Ta?:a1:H?[T1?,,Tn?],從維度為 ∣ A ∣ |\mathcal{A}| A 的連續動作 a 1 : H a_{1:H} a1:H? 序列映射到來自大小為 ∣ V ∣ |\mathcal{V}| V 的詞匯表中的 n n n 個離散token序列 T ∈ ∣ V ∣ T∈|\mathcal{V}| TV。動作序列之間的token數量 n 可能不同,就像相同長度的句子可能被離散化為可變數量的文本token一樣。

基于分箱的動作token化:動作token化最常用的方法是簡單的分箱離散化。 對于給定的動作 a,這種方法獨立地離散化每個維度,將訓練數據集中值的范圍劃分為 N N N 個均勻的箱,最常用的是 N = 256 N=256 N=256。對于D維的動作序列 a 1 : H a_{1:H} a1:H?,此token化方案將應用于每個時間步,從而產生最終的token序列 T a ( a 1 : H ) = [ T 1 , 1 , … , T 1 , D , … , T H , 1 , … , T H , D ] \mathcal{T}a(a1:H)=[T_{1,1},…,T_{1,D},…,T_{H,1},…,T_{H,D}] Ta(a1:H)=[T1,1?,,T1,D?,,TH,1?,,TH,D?]。對于高頻機器人數據,這種token化方案并非最優:很容易為每個動作片段生成數百個 token,使得難以訓練并且推理速度慢。

Tokenization 對 VLA 模型訓練的影響

在這里插入圖片描述

創建了一個簡單的合成時間序列數據集,其目標是預測一個插值四個隨機生成點的三次曲線,如圖3所示。這個問題反映了高頻動作片段上訓練的策略面臨的挑戰,即策略必須預測一系列連續的動作。訓練一個小型自回歸Transformer進行實驗,序列時間步H從25到800,以模擬不同頻率收集的動作數據。Navie方法表示將動作序列中的每一個元素進行256bins分箱操作。

實驗結果表明,分箱方案的模型在低采樣頻率的條件下預測效果較好,但是隨著采樣頻率增加,預測誤差急劇增加。為什么呢?因為自回歸模型的訓練目標是下一個token預測,因此,他們的學習信號在給定 T 1 : i ? 1 T_{1:i-1} T1:i?1? 的情況下與 T i T_i Ti? 的邊際信息內容成正比。分箱方案隨著采樣頻率的增加,邊際信息接近于零:對于平滑信號,隨著時間步長的縮短,每個時間步長的變化成比例地縮小。這極大地減慢了訓練收斂速度,并且難以你和復雜的高頻數據集。例如,OpenVLA在低頻的 BridgeV2 和 RT-1 數據集上運行良好,但是對于高頻的 DROID 數據集表現不佳。這說明為機器人動作設計更好的分詞器的重要性。

通過時間序列壓縮實現高效的動作分詞器

在這里插入圖片描述

為了解決前述提到的高頻動作軌跡中的 冗余會導致每個action token的邊際信息量低進而導致訓練性能差的問題,需要一種能夠將高度冗余的動作信號壓縮減少成少量高信息量token的動作離散化方法。

本文使用基于離散余弦變換(DCT)的壓縮算法構建FAST。DCT是一種頻域變換,它將連續信號表示為各種頻率的余弦元素之和。低頻捕獲信號的整體形狀,而高頻份量反映尖銳的跳變(sharp jumps)。

圖4說明了FAST從原始機器人動作到action token的變換步驟。首先對輸入動作進行歸一化,然后對每個動作維度應用DCT,為了壓縮信號,忽略不重要的系數,得到量化后的稀疏的矩陣。然后將矩陣展平為一個一維整數向量,然后訓練一個BPE分詞器將其無損壓縮成稠密的token。
在這里插入圖片描述

通用機器人動作分詞器

FAST 中唯一需要學習的組件是 BPE 編碼器的詞匯表,這個詞匯表需要針對分詞器應用的每個新數據集進行循例那,雖然只需要幾分鐘,但也增加了使用FAST的難度。因此,使用100萬個1s的動作塊訓練了一個通用的機器人動作分詞器。已經開源并合入到Transformers庫了。
在這里插入圖片描述

訓練所需要的數據集:數據集有多種動作空間:聯合空間、末端執行器世界坐標系和末端執行器相機坐標系,以確保所得分詞器的通用性。Open X-Embodiment、DROID和Bridge?V2則以其原始形式包含在內。 在分詞之前,所有動作都填充到32維,以適應不同維度的動作空間。在這里插入圖片描述

消融實驗

模型基線:pi0、OpenVLA

實驗目標:驗證FAST分詞器+自回歸VLA模型的有效性

評估任務

在這里插入圖片描述

如圖5所示,包含7個評估任務(6個真實機器人任務,1個模擬任務),旨在測試VLA在高度靈巧的任務(例如折疊衣物)和泛化任務(例如在未見環境中進行0樣本桌面操作)上的性能。

  • Libero:在Libero [43]模擬基準套件上進行測試。測量了Libero-Spatial、Libero-Object、Libero-Goal和Libero-10的平均性能。
  • 餐桌清理 [7] (20 Hz):一臺UR5單臂機器人需要清理桌子,將12個物體分類到垃圾桶(用于垃圾)和塑料容器(用于盤子、碗、杯子和餐具)中。此任務需要精確抓取各種物體。
  • 折疊T恤 [7] (50 Hz):一套雙臂ARX機器人需要在一個靜止的桌面上折疊各種襯衫。在任務開始時,襯衫平放在桌子上。 成功完成此任務需要精確的抓取和移動才能折疊襯衫。
  • 雜貨裝袋 [7] (20 Hz):一臺UR5單臂機器人需要將 7 個物體從桌子上裝入雜貨袋中,注意不要弄倒或撕破袋子。 此任務需要拾取各種各樣的物體并小心地將它們放入袋中。
  • 從烤面包機中取出吐司 [7] (50 Hz):一臺雙臂Trossen Viper-X機器人需要從烤面包機中取出兩片面包并將它們放在盤子上。 此任務需要精確地抓取和放置面包片。
  • 衣物折疊 [7] (50 Hz):一臺雙臂ARX機器人需要從籃子里取出襯衫和短褲,將它們平放在桌子上,然后折疊并堆疊起來。 這是我們測試中最靈巧的任務。 它需要精確的抓取,動態的動作來使衣物平整,在衣物纏結時進行重試和糾正,以及將折疊好的衣物精確地放置在現有的衣物堆上。報告了單個服裝物品的成功率。
  • 零樣本DROID桌面操作 [38] (15 Hz):測試了一個在完整DROID數據集上訓練的策略,該策略涵蓋各種桌面操作任務,例如拾取和放置物體、擦拭、打開和關閉抽屜等。在未見的環境中測試該策略,該環境具有新的桌子設置、背景、新穎的物體、視角和桌子高度。這是第一次在完全未見的環境中對DROID策略進行“零樣本”評估,無需協同訓練或微調,只需使用自然語言提示預訓練模型即可。

機器人動作分詞器對比

在這里插入圖片描述

使用1秒的動作片段。FAST分詞器對所有數據集都實現了有效的壓縮,高頻動作上效果更顯著,token為20-53。
在這里插入圖片描述

先前工作中應用的naive分詞方法難以在高頻機器人數據上學習有效的策略。最高頻的任務中尤為明顯:餐桌整理 (20Hz) 和 T 恤折疊 (50Hz)。

在這里插入圖片描述

FAST 分詞技術實現了在 DROID 數據集上成功訓練強大的通用策略,該策略可以通過自然語言提示,在未見過的環境中進行零樣本評估,無需微調。所有先前的工作都沒有顯示零樣本結果,而是完全專注于聯合訓練或微調評估。在三個大學的校園中對各種桌面操作任務進行測試,證明了策略的通用性(圖 7)。 無需額外訓練,該策略能夠熟練地執行簡單的操作任務,例如在各種場景和攝像機視角下拾取和放置物體、打開和關閉櫥柜以及打開水龍頭。即使是不成功的嘗試也表現出合理的行為,例如靠近微波爐和洗碗機門的把手,即使最終未能打開它們。

消融研究

回答兩個問題:

  • FAST分詞方法是否獨立于底層VLA主干?
  • BPE壓縮步驟有多重要?

在這里插入圖片描述

為了回答第一個問題,在高頻T恤折疊數據集上訓練了一個OpenVLA策略,修改了OpenVLA模型代碼以接受多個輸入圖像并預測1秒的動作塊。結果表明,FAST能夠顯著提高OpenVLA的性能,使其能夠有效地訓練高頻機器人操作數據。這表明,分詞方法獨立于底層模型主干,并且可以輕松應用于各種預訓練的自回歸Transformer模型。

在這里插入圖片描述

在桌面整理和T恤折疊任務上消融了BPE編碼步驟。結果表明,沒有BPE編碼的策略獲得了更差的性能(但仍然優于樸素分詞)。 直觀地說,DCT變換仍然將大部分信號信息集中在少數幾個token中,從而改善了學習信號。 然而,如果沒有BPE,就會出現大量重復的值為0的token,這會稀釋學習信號,并顯著減慢推理速度,因為模型需要自回歸地預測數百個動作token,最終導致策略性能下降。

自回歸VLA與擴散VLA對比

在這里插入圖片描述
圖 9 所示,在小型數據集(Libero,折疊T恤;<50小時)上,兩種VLA的性能相當。 但是在像搬運桌子這樣的大型數據集上,基于FAST的VLA收斂速度明顯更快,在訓練步驟比π0的擴散變體少3倍的情況下達到了高性能。使用FAST分詞訓練的自回歸 π0 模型更嚴格地遵循語言指令:在DROID評估中,擴散π0模型經常忽略語言指令,導致分數較低。 未來會繼續研究擴散和自回歸VLA的語言遵循能力。

自回歸VLA的一個當前局限性在于其推理速度:π0使用擴散模型通常可以在NVIDIA 4090 GPU上在100毫秒內預測一秒鐘的動作片段,但π0模型使用FAST分詞需要大約750毫秒的每個片段推理時間,因為它必須執行更多自回歸解碼步驟(通常需要解碼30-60個動作token,而擴散模型π0需要10個擴散步驟)并使用完整的20億參數語言模型主干進行自回歸解碼(而擴散模型π0使用3億參數的“動作專家”)。 未來會繼續研究離散token自回歸Transformer模型的推理提速。

實驗結論

本文介紹了 FAST,一種用于高頻機器人控制數據的動作分詞器。FAST使用離散余弦變換(DCT)和字節對編碼(BPE)來壓縮動作塊,使得其具有更好的壓縮效果。實驗表明,與以前使用的簡單動作離散化方法相比,FAST帶來了顯著的性能提升,并且優于基于矢量量化的更復雜的學習分詞方法。

未來工作:
動作分詞器。FAST是朝著通用機器人動作分詞器邁出的重要一步,但仍有很多問題有待解決。在這項工作對靜態機器人機械臂測試了 FAST。FAST+在其他機器人形態(如移動機器人、靈巧手和人形機器人)上具有良好的壓縮能力。在這些平臺上測試實際策略性能是未來工作的一個令人興奮的方向。探索替代壓縮方案,以及測試基于壓縮的動作編碼與非自回歸解碼方法(如擴散[7])的組合,是未來研究的有趣方向。

VLA 架構。本文初步探索了兩種主要類型的 VLA 架構(自回歸和擴散解碼 VLA)之間的權衡,但最佳 VLA 架構仍未確定。未來工作應仔細研究訓練速度、語言基礎能力和任一方法的表達能力之間的權衡。

推理速度。 雖然π0-FAST 的整體性能與擴散π0匹配,但在推理時間上較慢。未來的工作應該探索加快自回歸 VLA 模型推理速度的方法,以使它們能夠解決高度動態的任務。

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

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

相關文章

PHP Composer:高效依賴管理工具詳解

PHP Composer:高效依賴管理工具詳解 引言 在PHP開發領域,依賴管理是項目構建過程中的重要環節。Composer的出現,極大地簡化了PHP項目的依賴管理,使得開發者可以更加高效地構建和維護PHP應用程序。本文將深入探討PHP Composer的使用方法、功能特點以及它在項目開發中的應用…

CodeGPT使用本地部署DeepSeek Coder

目前NV和github都托管了DeepSeek&#xff0c;生成Key后可以很方便的用CodeGPT接入。CodeGPT有三種方式使用AI&#xff0c;分別時Agents&#xff0c;Local LLMs&#xff08;本地部署AI大模型&#xff09;&#xff0c;LLMs Cloud Model&#xff08;云端大模型&#xff0c;從你自己…

黑盒/白盒運維監控

運維監控分為黑盒和白盒 黑盒&#xff1a;不深入代碼&#xff0c;在系統角度看TPS&#xff0c;延遲等指標 白盒&#xff1a;深入代碼分析&#xff0c;通過日志捕捉&#xff0c;以及主動上報告警等來進行監控 黑盒監控&#xff1a; 1. 頁面功能&#xff1a;域名是否可訪問&…

Rust 中的注釋使用指南

Rust 中的注釋使用指南 注釋是代碼中不可或缺的一部分&#xff0c;它幫助開發者理解代碼的邏輯和意圖。Rust 提供了多種注釋方式&#xff0c;包括行注釋、塊注釋和文檔注釋。本文將詳細介紹這些注釋的使用方法&#xff0c;并通過一個示例展示如何在實際代碼中應用注釋。 1. 行…

可被electron等調用的Qt截圖-錄屏工具【源碼開放】

1. 工具功能簡介&#xff1a; (1)、QT5.15.2截圖工具&#xff08;exe&#xff09;可單獨使用或嵌入IM&#xff08;嵌入方法參照&#xff1a;https://gitee.com/lykiao/yfscreenshot_release&#xff09; (2)、支持通過Windows消息通知截圖成功或取消 (3)、支持圓形、矩形、線條…

ubuntu系統入門流程

學習流程 安裝雙系統&#xff08;win11ubuntu隨便啥版本&#xff0c;博客里面下的時候自己選&#xff09; ->了解一下常見的操作系統類-> 了解ubuntu系統常見文件目錄是做什么的- > 了解一些ubuntu常用指令 ->安裝常用的軟件&#xff08;qq、vx&#xff0c;學習的…

STM32單片機學習記錄(2.2)

一、STM32 13.1 - PWR簡介 1. PWR&#xff08;Power Control&#xff09;電源控制 &#xff08;1&#xff09;PWR負責管理STM32內部的電源供電部分&#xff0c;可以實現可編程電壓監測器和低功耗模式的功能&#xff1b; &#xff08;2&#xff09;可編程電壓監測器&#xff08;…

韓語字符分析

查看unicode文檔&#xff0c;發現韓語字符有11172個&#xff0c;這是192128&#xff0c;其實就是19212868個符號的排列組合。分析如下&#xff1a; 第一部分&#xff1a; ??????????????????? 去掉右邊的那個“卜”&#xff0c;共19個符號。 第二部分&#…

基于SpringBoot的智慧康老療養院管理系統的設計與實現(源碼+SQL腳本+LW+部署講解等)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…

goframe 博客分類文章模型文檔 主要解決關聯

goframe 博客文章模型文檔 模型結構 (BlogArticleInfoRes) BlogArticleInfoRes 結構體代表系統中的一篇博客文章&#xff0c;包含完整的元數據和內容管理功能。 type BlogArticleInfoRes struct {Id uint orm:"id,primary" json:"id" …

MQTT知識

MQTT協議 MQTT 是一種基于發布/訂閱模式的輕量級消息傳輸協議&#xff0c;專門針對低帶寬和不穩定網絡環境的物聯網應用而設計&#xff0c;可以用極少的代碼為聯網設備提供實時可靠的消息服務。MQTT 協議廣泛應用于物聯網、移動互聯網、智能硬件、車聯網、智慧城市、遠程醫療、…

Python(Pandas)數據分析學習

1.Pandas基本構成 引入Pandas import pandas as pd 1.Series 行 對應Excel中的一行數據&#xff0c;一維數據 定義Series # 第一個參數是具體數據 # 第二個參數的對應的索引下標 # 第三個參數的行名稱 data pd.Series([1,2,3,4,5], index[a,b,c,d,e], namedata) print(d…

我用Ai學Android Jetpack Compose之Card

這篇學習一下Card。回答來自 通義千問。 我想學習Card&#xff0c;麻煩你介紹一下 當然可以&#xff01;在 Jetpack Compose 中&#xff0c;Card 是一個非常常用的組件&#xff0c;用于創建帶有陰影和圓角的卡片式布局。它可以幫助你輕松實現美觀且一致的 UI 設計&#xff0c…

圖漾相機——C++語言屬性設置

文章目錄 前言1.SDK API功能介紹1.1 Device組件下的API測試1.1.1 相機工作模式設置&#xff08;TY_TRIGGER_PARAM_EX&#xff09;1.1.2 TY_INT_FRAME_PER_TRIGGER1.1.3 TY_INT_PACKET_DELAY1.1.4 TY_INT_PACKET_SIZE1.1.5 TY_BOOL_GVSP_RESEND1.1.6 TY_BOOL_TRIGGER_OUT_IO1.1.…

STM32 TIM定時器配置

TIM簡介 TIM&#xff08;Timer&#xff09;定時器 定時器可以對輸入的時鐘進行計數&#xff0c;并在計數值達到設定值時觸發中斷 16位計數器、預分頻器、自動重裝寄存器的時基單元&#xff0c;在72MHz計數時鐘下可以實現最大59.65s的定時 不僅具備基本的定時中斷功能&#xff…

pytorch實現基于Word2Vec的詞嵌入

PyTorch 實現 Word2Vec&#xff08;Skip-gram 模型&#xff09; 的完整代碼&#xff0c;使用 中文語料 進行訓練&#xff0c;包括數據預處理、模型定義、訓練和測試。 1. 主要特點 支持中文數據&#xff0c;基于 jieba 進行分詞 使用 Skip-gram 進行訓練&#xff0c;適用于小數…

【數據結構】_鏈表經典算法OJ(力扣/牛客第二彈)

目錄 1. 題目1&#xff1a;返回倒數第k個節點 1.1 題目鏈接及描述 1.2 解題思路 1.3 程序 2. 題目2&#xff1a;鏈表的回文結構 2.1 題目鏈接及描述 2.2 解題思路 2.3 程序 1. 題目1&#xff1a;返回倒數第k個節點 1.1 題目鏈接及描述 題目鏈接&#xff1a; 面試題 …

pytorch基于 Transformer 預訓練模型的方法實現詞嵌入(tiansz/bert-base-chinese)

以下是一個完整的詞嵌入&#xff08;Word Embedding&#xff09;示例代碼&#xff0c;使用 modelscope 下載 tiansz/bert-base-chinese 模型&#xff0c;并通過 transformers 加載模型&#xff0c;獲取中文句子的詞嵌入。 from modelscope.hub.snapshot_download import snaps…

爬蟲基礎之爬取某站視頻

目標網址:為了1/4螺口買小米SU7&#xff0c;開了一個月&#xff0c;它值嗎&#xff1f;_嗶哩嗶哩_bilibili 本案例所使用到的模塊 requests (發送HTTP請求)subprocess(執行系統命令)re (正則表達式操作)json (處理JSON數據) 需求分析: 視頻的名稱 F12 打開開發者工具 or 右擊…

DeepSeek R1本地化部署 Ollama + Chatbox 打造最強 AI 工具

&#x1f308; 個人主頁&#xff1a;Zfox_ &#x1f525; 系列專欄&#xff1a;Linux 目錄 一&#xff1a;&#x1f525; Ollama &#x1f98b; 下載 Ollama&#x1f98b; 選擇模型&#x1f98b; 運行模型&#x1f98b; 使用 && 測試 二&#xff1a;&#x1f525; Chat…