視覺(jué)語(yǔ)言模型(VLM)通過(guò)將文本和圖像投射到同一個(gè)嵌入空間,將基礎(chǔ)大語(yǔ)言模型(LLM)強(qiáng)大的語(yǔ)言理解能力與視覺(jué) transformer(ViT)的視覺(jué)能力相結(jié)合。VLM 可以處理非結(jié)構(gòu)化的多模態(tài)數(shù)據(jù)、對(duì)其進(jìn)行推理并以結(jié)構(gòu)化的格式返回輸出結(jié)果。由于經(jīng)過(guò)大量預(yù)訓(xùn)練,只需要為這些模型提供新的提示或進(jìn)行參數(shù)高效微調(diào),它們就能輕松適應(yīng)不同的視覺(jué)相關(guān)的任務(wù)。
這些模型還可以與實(shí)時(shí)數(shù)據(jù)源和工具集成,從而在不知道答案時(shí)請(qǐng)求獲得更多信息或在知道答案時(shí)采取行動(dòng)。LLM 和 VLM 可以作為智能體對(duì)數(shù)據(jù)進(jìn)行推理,幫助機(jī)器人執(zhí)行可能難以定義的有意義的任務(wù)。
在此前一篇的文章利用 NVIDIA Jetson 實(shí)現(xiàn)生成式 AI中,我們展示了可以在NVIDIA Jetson Orin設(shè)備上運(yùn)行 LLM 和 VLM,從而在邊緣設(shè)備上實(shí)現(xiàn)零樣本物體檢測(cè)、視頻字幕、文本生成等多種新功能。
但如何將這些先進(jìn)技術(shù)應(yīng)用于機(jī)器人的感知和自主運(yùn)行?將這些模型部署到現(xiàn)場(chǎng)時(shí)又會(huì)面臨哪些挑戰(zhàn)?
本文將討論 ReMEmbR。該項(xiàng)目結(jié)合了 LLM、VLM 和檢索增強(qiáng)生成(RAG),使機(jī)器人能夠在數(shù)小時(shí)至數(shù)天的長(zhǎng)時(shí)程部署期間,對(duì)所看到的事物進(jìn)行推理并采取行動(dòng)。
ReMEmbR 在記憶構(gòu)建階段使用 VLM 和矢量數(shù)據(jù)庫(kù)來(lái)高效構(gòu)建長(zhǎng)時(shí)程語(yǔ)義記憶,之后在查詢階段使用 LLM 智能體對(duì)該記憶進(jìn)行推理。它完全開(kāi)源,并且可在設(shè)備端運(yùn)行。
ReMEmbR 解決了在機(jī)器人應(yīng)用中使用 LLM 和 VLM 時(shí)所面臨的諸多挑戰(zhàn):
如何處理大型上下文。
如何對(duì)空間記憶進(jìn)行推理。
如何構(gòu)建一個(gè)基于提示的智能體來(lái)查詢更多數(shù)據(jù),直到用戶的問(wèn)題得到解答。
我們還進(jìn)一步構(gòu)建了一個(gè)在真實(shí)機(jī)器人上使用 ReMEmbR 的示例。我們?cè)谶@項(xiàng)工作中使用了 Nova Carter 和NVIDIA Isaac ROS,并分享了我們所使用的代碼和步驟。如需了解更多信息,請(qǐng)參見(jiàn)以下資源:
適用于長(zhǎng)時(shí)程時(shí)空記憶、
推理與行動(dòng)的 ReMEmbR
人們?cè)絹?lái)越期待機(jī)器人能夠長(zhǎng)時(shí)間感知環(huán)境并與之互動(dòng)。機(jī)器人每次部署的時(shí)間長(zhǎng)達(dá)數(shù)小時(shí)乃至數(shù)天,它們會(huì)偶然感知到不同的物體、事件和位置。
為了讓機(jī)器人在長(zhǎng)時(shí)間部署的場(chǎng)景中能夠理解和回答那些需要復(fù)雜多步驟推理的問(wèn)題,我們開(kāi)發(fā)了 ReMEmbR 這一用于具身機(jī)器人的檢索增強(qiáng)記憶。
ReMEmbR 為機(jī)器人構(gòu)建了可擴(kuò)展的長(zhǎng)時(shí)程記憶和推理系統(tǒng),提高了機(jī)器人的感知問(wèn)題回答和語(yǔ)義行動(dòng)能力。ReMEmbR 包含記憶構(gòu)建和查詢兩個(gè)階段。
在記憶構(gòu)建階段,我們借助 VLM,使用矢量數(shù)據(jù)庫(kù)構(gòu)建了結(jié)構(gòu)化記憶。在查詢階段,我們建立了一個(gè) LLM 智能體,它可以循環(huán)調(diào)用不同的檢索函數(shù),最終回答用戶提出的問(wèn)題。

圖 1. 完整的 ReMEmbR 系統(tǒng)
構(gòu)建更加智能的記憶
ReMEmbR 的記憶構(gòu)建階段就是讓機(jī)器人的記憶工作。當(dāng)機(jī)器人已被部署了數(shù)小時(shí)或數(shù)天時(shí),就需要一種高效的方式存儲(chǔ)這些信息。視頻雖然易于存儲(chǔ),但卻難以查詢和理解。
在記憶構(gòu)建過(guò)程中,我們會(huì)截取視頻的短片段,使用NVIDIA VILA字幕生成 VLM 為其添加字幕,然后將它們嵌入到 MilvusDB 矢量數(shù)據(jù)庫(kù)。我們還在該矢量數(shù)據(jù)庫(kù)中存儲(chǔ)時(shí)間戳和坐標(biāo)信息。
該設(shè)置使我們能夠高效地存儲(chǔ)和查詢機(jī)器人記憶中的各種信息。通過(guò)使用 VILA 捕捉視頻片段,并將其嵌入到 MilvusDB 矢量數(shù)據(jù)庫(kù),該系統(tǒng)可以記住 VILA 能夠捕捉到的任何內(nèi)容,包括從四處走動(dòng)的人等動(dòng)態(tài)事件和特定的小物體,到更加普遍的內(nèi)容類別。
使用矢量數(shù)據(jù)庫(kù)可以輕松添加供 ReMEmbR 考慮的新信息。
ReMEmbR 智能體
鑒于數(shù)據(jù)庫(kù)中存儲(chǔ)的記憶如此之長(zhǎng),標(biāo)準(zhǔn) LLM 很難對(duì)長(zhǎng)上下文進(jìn)行快速推理。
ReMEmbR 智能體的 LLM 后端可以是NVIDIA NIM微服務(wù)、本地設(shè)備上的 LLM 或其他 LLM API。當(dāng)用戶提出問(wèn)題時(shí),LLM 生成對(duì)數(shù)據(jù)庫(kù)的查詢并反復(fù)檢索相關(guān)信息。LLM 可以根據(jù)用戶提出的問(wèn)題來(lái)查詢文本信息、時(shí)間信息或位置信息。這個(gè)過(guò)程不斷重復(fù),直到問(wèn)題得到解答。
我們?yōu)?LLM 智能體使用了這些不同的工具,使機(jī)器人不僅能夠回答如何前往特定地點(diǎn)的問(wèn)題,還能夠進(jìn)行空間和時(shí)間推理。圖 2 展示了這一推理階段的情況。

圖 2. ReMEmbR 查詢和推理流程示例
在真實(shí)機(jī)器人上部署 ReMEmbR
為了演示如何將 ReMEmbR 集成到真實(shí)機(jī)器人中,我們使用 ReMEmbR 與NVIDIA Isaac ROS和 Nova Carter 構(gòu)建了一個(gè)演示。Isaac ROS 是一個(gè)基于開(kāi)源 ROS 2 軟件框架構(gòu)建而成的加速計(jì)算軟件包和 AI 模型集,它將 NVIDIA 加速技術(shù)帶給了全球各地的 ROS 開(kāi)發(fā)者。
在演示中,機(jī)器人回答問(wèn)題并引導(dǎo)人們參觀辦公室環(huán)境。為了讓大家了解如何構(gòu)建該應(yīng)用,以下是我們所采取的步驟:
構(gòu)建占用柵格地圖
運(yùn)行記憶構(gòu)建器
運(yùn)行 ReMEmbR 智能體
構(gòu)建占用柵格地圖
第一步是創(chuàng)建環(huán)境地圖。為了建立矢量數(shù)據(jù)庫(kù),ReMEmbR 需要訪問(wèn)單目攝像頭圖像和全局位置(姿勢(shì))信息。

圖 3. 使用 Nova Carter 繪制占用柵格地圖
根據(jù)環(huán)境或平臺(tái)的不同,獲取全局姿勢(shì)信息可能會(huì)具有一定的難度。幸運(yùn)的是,在使用 Nova Carter 時(shí),這項(xiàng)工作就會(huì)變得簡(jiǎn)單。由 Nova Orin 參考架構(gòu)驅(qū)動(dòng)的 Nova Carter 是一個(gè)完整的機(jī)器人開(kāi)發(fā)平臺(tái),能夠加速下一代自主移動(dòng)機(jī)器人(AMR)的開(kāi)發(fā)和部署。該平臺(tái)在配備 3D 激光雷達(dá)后,可以生成精準(zhǔn)且全局一致的度量地圖。

圖 4. 使用 Nova Carter 構(gòu)建的
占用柵格地圖的 FoxGlove 可視化圖
按照 Isaac ROS 文檔,我們通過(guò)遙控機(jī)器人,快速繪制出占用柵格地圖。該地圖之后在建立 ReMEmbR 數(shù)據(jù)庫(kù)時(shí)被用于定位,并在最終部署機(jī)器人時(shí)被用于路徑規(guī)劃和導(dǎo)航。
運(yùn)行記憶構(gòu)建器
在創(chuàng)建環(huán)境地圖后,第二步是填充 ReMEmbR 使用的矢量數(shù)據(jù)庫(kù)。為此,我們?cè)谶b控機(jī)器人的同時(shí),運(yùn)行 AMCL 進(jìn)行全局定位。有關(guān)如何使用 Nova Carter 實(shí)現(xiàn)這一操作的更多信息,請(qǐng)參見(jiàn)教程:使用 Isaac Perceptor 和 Nav2 進(jìn)行自主導(dǎo)航:
https://nvidia-isaac-ros.github.io/reference_workflows/isaac_perceptor/tutorials_on_carter/demo_navigation.html

圖 5. 運(yùn)行 ReMEmBr 記憶構(gòu)建器
在后臺(tái)運(yùn)行定位后,我們又啟動(dòng)了兩個(gè)專門用于記憶構(gòu)建階段的 ROS 節(jié)點(diǎn)。
第 1 個(gè) ROS 節(jié)點(diǎn)運(yùn)行 VILA 模型,為機(jī)器人攝像頭圖像生成字幕。該節(jié)點(diǎn)在設(shè)備上運(yùn)行,因此即便網(wǎng)絡(luò)時(shí)斷時(shí)續(xù),我們也能建立一個(gè)可靠的數(shù)據(jù)庫(kù)。
由于使用了 NanoLLM 進(jìn)行量化和推理,在 Jetson 上運(yùn)行該節(jié)點(diǎn)變得更加容易。Jetson AI Lab中就有這個(gè)庫(kù)和許多其他庫(kù)。最近甚至還發(fā)布了一個(gè) ROS 軟件包(ros2_nanollm),用于將 NanoLLM 模型與 ROS 應(yīng)用輕松集成。
第二個(gè) ROS 節(jié)點(diǎn)獲取 VILA 生成的標(biāo)題以及 AMCL 節(jié)點(diǎn)估計(jì)的全局姿態(tài)。它為字幕建立文本嵌入,并將姿勢(shì)、文本、嵌入和時(shí)間戳存儲(chǔ)到矢量數(shù)據(jù)庫(kù)中。
運(yùn)行 ReMEmbR 智能體

圖 6. 運(yùn)行 ReMEmbR 智能體
以回答用戶查詢并導(dǎo)航至目標(biāo)姿勢(shì)
在填充了矢量數(shù)據(jù)庫(kù)后,就滿足了 ReMEmbR 智能體回答用戶查詢和生成有意義動(dòng)作所需的一切條件。
第三步是運(yùn)行現(xiàn)場(chǎng)演示。為了使機(jī)器人的記憶保持靜態(tài),我們禁用了圖像字幕生成和記憶構(gòu)建節(jié)點(diǎn),并啟用了 ReMEmbR 智能體節(jié)點(diǎn)。如前所述,ReMEmbR 智能體負(fù)責(zé)接收用戶查詢、查詢矢量數(shù)據(jù)庫(kù),并確定機(jī)器人應(yīng)采取的適當(dāng)行動(dòng)。在本例中,該行動(dòng)是與用戶查詢相對(duì)應(yīng)的目的地目標(biāo)姿勢(shì)。
然后,我們通過(guò)手動(dòng)輸入用戶查詢,對(duì)系統(tǒng)進(jìn)行了端到端測(cè)試:
“帶我去最近的電梯”
“帶我去一個(gè)可以吃零食的地方”
ReMEmbR 智能體確定最佳目標(biāo)姿勢(shì)并將其發(fā)布到/goal_pose主題中。然后,路徑規(guī)劃器會(huì)生成一條全局路徑,將機(jī)器人導(dǎo)航至該目標(biāo)。
添加語(yǔ)音識(shí)別
在實(shí)際應(yīng)用中,用戶很可能無(wú)法使用終端來(lái)輸入查詢,因此需要一種直觀的方式與機(jī)器人進(jìn)行交互。為此,我們進(jìn)一步開(kāi)發(fā)了該應(yīng)用,集成了語(yǔ)音識(shí)別功能來(lái)為該智能體生成查詢。
在 Jetson Orin 平臺(tái)上集成語(yǔ)音識(shí)別功能十分簡(jiǎn)單。為此,我們編寫了一個(gè) ROS 節(jié)點(diǎn),該節(jié)點(diǎn)封裝了最近發(fā)布的 WhisperTRT 項(xiàng)目。WhisperTRT 利用NVIDIA TensorRT優(yōu)化了 OpenAI 的 whisper 模型,從而在Jetson AGX Orin和NVIDIA Jetson Orin Nano上實(shí)現(xiàn)了低延遲推理。
WhisperTRT ROS 節(jié)點(diǎn)使用 PyAudio 直接訪問(wèn)麥克風(fēng),并在語(yǔ)音主題上發(fā)布識(shí)別出的語(yǔ)音。

圖 7. 通過(guò)將語(yǔ)音識(shí)別與 WhisperTRT 集成,實(shí)現(xiàn)自然的用戶交互全部整合
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
31079瀏覽量
222217 -
NVIDIA
+關(guān)注
關(guān)注
14文章
5594瀏覽量
109723 -
LLM
+關(guān)注
關(guān)注
1文章
346瀏覽量
1329 -
生成式AI
+關(guān)注
關(guān)注
0文章
538瀏覽量
1085
原文標(biāo)題:借助 ReMEmbR 利用生成式 AI 賦予機(jī)器人推理與行動(dòng)能力
文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
使用ReMEmbR實(shí)現(xiàn)機(jī)器人推理與行動(dòng)能力
評(píng)論