YouMind
登入

機器人學習的全新資料層

@NikolausWest
英語2026年5月14日
319K
172
26
5
218

TL;DR

Rerun 0.32 引入了專為機器人技術打造的資料層,具備穩定的 .rrd 格式、PyTorch 整合以及先進的視覺化功能,旨在縮短原始感測器資料與模型訓練之間的差距。

實體 AI 將重塑各行各業的實體世界,但機器人技術仍缺乏現代 AI 所需的高速迭代所需的統一資料層。核心挑戰在於,機器人學習依賴於實體資料:多模態、多速率、與時間、空間和具體實現緊密相關的資料串流。現有基礎設施主要圍繞網路資料建構,難以應對這些特性。

在 @rerundotio,我們正在為實體資料建構統一的資料層,協助團隊訓練並將智慧推向真實世界。

Rerun 有史以來最大規模的釋出

Rerun 一直以視覺化多模態時間序列資料聞名。過去一年半,我們默默建構統一資料層的其他部分,以支援從資料收集到訓練的完整流程。隨著 0.32 Rerun SDK 版本 的釋出,這些功能將以開源形式推出!

這是 Rerun 三年前首次開源以來最大規模的釋出,代表著你能用 Rerun 完成的工作類型大幅擴展。

我們正在穩定檔案格式,並為檔案新增一組更低階的讀寫 API。我們新增了一組用於操作 Rerun 資料區塊的 API,專為處理和標準化真實機器人資料而設計。我們擴展了對 MCAP 和 ROS 2 訊息的支持,以改善開箱即用的體驗。我們新增了一個新的資料集審查 UI,讓審查訓練資料集的速度大幅提升。開源目錄伺服器現在可以索引磁碟上的 .rrd 檔案,讓您或您的 Agent 能夠對機器人錄製檔案的目錄執行通用查詢。基於相同的基礎,我們也釋出了一個 PyTorch 資料載入器,讓您可以直接在 .rrd 檔案上訓練機器人模型,無需匯出為訓練專用格式。

機器人生態系統一直缺乏一個足夠靈活的統一框架來支援機器人學習資料的完整生命週期。隨著 0.32 的推出,這個基礎正在成形。

除了這個巨大的開源版本,我們也宣布推出 Rerun Hub,這是我們的商業資料目錄和儲存引擎。Rerun Hub 目前處於私人預覽階段,它將 Rerun SDK 擴展到由物件儲存支援的資料集。它提供了一個共享的目錄和存取層,用於大規模轉換、查詢、視覺化和串流機器人資料,同時保留相同的資料模型和 API。

如果你的目標是擴展資料規模,超越本地機器的容量,同時保持快速迭代,請使用 Rerun Hub!如果你是一個圍繞機器人學習建構產品的團隊,並且正在考慮你的資料層,請與我們聯繫。

本文的其餘部分分為兩部分。首先,介紹我們認為實體 AI 為了擴展所需的資料架構基礎。其次,介紹 Rerun SDK 0.32 中將該架構付諸實踐的新功能。

機器人學習需要一個專為實體資料設計的資料層

正如 機器人學習的資料層稅 所述,阻礙實體 AI 進步的許多摩擦來自於試圖將實體資料強行塞入為傳統軟體和分析工作負載設計的基礎設施。我們需要一個專為多速率、多模態資料設計的資料層,支援從收集到訓練和部署的機器人智慧迭代所需的一切。

編碼 Agent 意味著使用者需要完全控制運算和應用層

為了服務收集、標準化、後處理、篩選和訓練的整個工作流程,團隊需要各種不同的工具和運算任務。這些工具和任務可以編碼團隊特定的操作方式,或他們用來大規模驅動資料品質的技術,這使得它們成為團隊需要掌握的關鍵差異化領域。

編碼 Agent 使得團隊能夠越來越容易地按照他們想要的方式設計這些工具和運算任務,只要他們擁有程式碼層級的控制權。因此,很少有團隊會接受沒有這種控制權。這就是為什麼 Rerun SDK 完全開源,並被設計為一個你可以用來建構的框架,而不是一個封閉的 SaaS 平台。即使是檢視器也被設計為一個函式庫,所以你永遠不會被困住。Rerun 始終以程式碼為先,我們一直在加倍努力,使其對 Agent 更加易用。這甚至包括即將推出的完全無頭渲染和檢視器導航功能,幫助 Agent 像人類一樣查看實體資料。

大多數團隊已經在建構自訂的一次性應用程式和處理腳本,以適應他們自己的工作流程。如果沒有建立在堅實的基礎之上,最終會得到難以推理且無法良好組合的垂直碎片,這限制了生產力的提升。

資料層必須處理大規模實體資料的難點

Nikolaus West - inline image

從收集到模型的整個資料旅程所需的核心能力包括視覺化、分析查詢、轉換和訓練。所有這些能力都需要處理多速率、多模態的資料,這些資料可能帶有機器人語義,例如 3D 關係或形狀。為了避免錯誤和資料不一致,你希望在任何使用這些資料的地方都一致地處理這類資料的細微差別。例如,時間對齊和 3D 轉換應該在預處理、查詢、視覺化和資料集審查中表現一致。

為了輕鬆迭代資料實驗循環以及驅動它的工具,你希望建立在一個統一的資料層之上,使交接變得簡單,上層的應用程式也變得簡單。這意味著資料層需要足夠靈活,以處理所有核心應用程式和運算能力的需求。例如,視覺化和運算都需要對多模態時間序列進行快速隨機存取,而分析查詢則需要高效的列掃描,大規模後處理運算(CPU)和訓練(GPU)都需要高頻寬的平行資料串流。

實體資料的行為從根本上不同於網路和商業資料,這意味著它受益於不同的儲存和查詢抽象。

實體資料的核心儲存單元是列區塊

實體資料有兩個區別特徵:

第一個是多速率:不同的感測器會以截然不同的頻率記錄資料。GPS 可能為 1-10Hz,相機為 10-30Hz,關節角度為 100-200Hz,IMU 為 1kHz。在後處理中,你可能會為每 10 個相機幀計算語義嵌入,或在每個 episode 的開始和結束處計算場景描述。

第二個是多模態:不同的感測器記錄的資料大小差異巨大。IMU 和 GPS 只需要幾個位元組來編碼幾個數字,而 RGB 相機每個影像幀可能需要數 MB。

如果你將機器人錄製資料儲存在一個表格中,其中一行代表一個時間戳,一列代表一個資料串流,那麼多速率方面通常會使這個表格非常稀疏;對於任何給定的行,大多數列很可能是空的。資料的多模態方面導致了巨大的記憶體不平衡,因為單一行可能包含大小相差數個數量級的單元格。現有的表格資料基礎設施很難處理這種組合。

多速率和多模態資料應該儲存在區塊中,每個區塊包含資料集的子集行和列。例如,將一百萬個 IMU 樣本放在一個區塊中,而將幾個視訊封包放在另一個區塊中,這樣的能力可以解決稀疏性和記憶體不平衡問題。

Nikolaus West - inline image

在區塊內部,列式儲存優化了壓縮和列掃描查詢,而行式儲存則優化了簡單寫入。

在 Rerun,我們相信列區塊代表了機器人學習資料系統的最佳權衡,我們已經將我們的架構標準化,以它們作為核心儲存抽象。

Rerun 的 .rrd 檔案格式是圍繞列區塊建構的

Rerun 的原生檔案格式 .rrd 是列區塊抽象的磁碟表示。在內部,每個列區塊被編碼為一個 Apache Arrow 記錄批次,以及描述資料應如何解釋的語義元資料。Apache Arrow 是資料科學的行業標準,使用 Arrow 意味著我們可以快速零拷貝地進入 DataFusion、Pandas 和 Polars。

Nikolaus West - inline image

每個區塊中的元資料包含關於如何解釋資料的語義資訊(「這是 IMU 感測器,這是 GPS,……」),以便它可以通過處理管線傳遞,並仍然被自動解釋和視覺化。

編碼後的列區塊被包裹在 protobuf 訊息中,並串聯起來形成 .rrd 檔案。檔案末尾的頁尾指向一個索引,允許快速隨機存取單個區塊,而無需掃描整個檔案。

Nikolaus West - inline image

與其他格式的比較

Apache Parquet 是一種列式磁碟格式,通常與 Arrow 一起使用。它將資料組織成行組,但與 .rrd 中的區塊不同,這些組不能重疊:每個行組包含一個密集行範圍內的所有列。這使得它不適合多速率、多模態的機器人資料。你可以附加新行,但不能附加新列(無模式演進)。

MCAP 是一種用於在機器人上記錄機器人日誌的格式。它被設計為快速且靈活地寫入,具有強大的 ROS 相容性。然而,它本質上是一個不透明訊息的容器格式(使用 JSON、protobuf、CBOR 等編碼),並且不針對列式分析查詢進行最佳化。大規模掃描和連接也很慢,因為你需要解碼每個訊息。

Lance 是一種新格式,明確為多模態資料和隨機存取(對訓練極為重要)而建構。與 Parquet 不同,它支援模式演進。然而,Lance 資料集仍然是行對齊片段的垂直堆疊,因此多速率串流會因空值而膨脹。

NCore 是 Nvidia 的一種新格式,專為神經重建而建構。透過每個元件的時間戳原生支援多速率,並透過姿態圖進行空間對齊。然而,模式是封閉的(規範的感測器元件,不是任意的使用者定義資料),它基於 Zarr 而非 Arrow 原生,並且不是為服務通用 SQL / dataframe 查詢引擎而建構的。

你的團隊需要的每個功能,如果檔案格式不提供,就意味著需要維護另一個管線,並為你的團隊學習額外的工具。Rerun 的格式是唯一能夠滿足將機器人錄製資料轉換為智慧所需的所有用例的選項。它允許你將資料保留在原始時間戳,同時仍然能夠從同一個資料來源進行查詢和檢視,並串流到訓練。它有足夠的結構來在其上建構統一的資料系統,但又足夠靈活,可以針對不同的讀寫模式進行最佳化。

列區塊之上的索引、模式和元資料層簡化了大規模使用實體資料

掃描資料集中的所有區塊來分析單一訊號,即使對於小型資料集也難以擴展,因此要有效使用它們,你需要一個元資料和索引層來幫助找到任何查詢所需的正確區塊。這看起來很像經典的資料湖倉模式。在我們的情況下,單個資料集或錄製資料由異構的區塊組成,這些區塊不共享相同的模式。經典的資料處理工具是為處理具有統一模式的表格而建構的。因此,用於實體資料的湖倉式索引和元資料層還需要追蹤這些單獨的模式,以便能夠即時物化任何串流的合併模式,從而使經典資料工具能夠與之協作。例如,如果你將 IMU 升級為一個在其訊息中發布磁場資料的 IMU,那麼這個新增內容與你舊的、不包含此欄位的 IMU 相容,無需為了相容性而重寫歷史資料。

Nikolaus West - inline image

列區塊與高效索引相結合,讓你能夠精確獲取所需的資料,而無需為與之一起儲存的不相關串流付出代價。你不必在使常見操作快速和能夠追蹤長尾錯誤之間做出選擇,因為你已將常見資料匯出到單獨的倉庫。

除了效能優勢之外,這個層允許我們抽象化檔案,並為上層所有實體資料的使用者提供統一的 API。通常機器人資料儲存在一個檔案中,而校準資料儲存在另一個檔案中,抽象化這些實作細節是減少資料摩擦、簡化運算和應用層的重要部分。

大規模處理和訓練需要直接從物件儲存進行選擇性串流

機器人學習資料集已經可以變得非常大,並且隨著團隊遵循規模法則以實現越來越強大的模型,它們將變得更大。為了處理這種規模的資料,你通常需要將任務分發到大量的 CPU 進行後處理,或 GPU 進行訓練。在這些情況下,資料吞吐量能夠隨著運算需求擴展非常重要。

為了最大化效能和最小化出口成本,你希望讓運算靠近資料執行。同時,GPU 運算可能難以獲得,因此許多團隊最終會隨著時間在不同地點租用。所有這些因素意味著你希望能夠將儲存與處理索引和元資料的服務分離。

Nikolaus West - inline image

在 Rerun 中,查詢從 Rerun SDK 開始,然後查詢 Rerun Hub,Rerun Hub 負責知道需要哪些區塊來解析查詢。根據設定,SDK 要么通過 Rerun Hub 中的快取代理請求區塊,要么請求物件儲存上的位元組範圍。這允許簡化的存取 API、選擇性區塊串流以及來自底層物件儲存的最大串流頻寬。

Rerun SDK 0.32 是機器人學習的統一資料工具包

Rerun 0.32 是自 2023 年 2 月首次開源以來最大規模的版本。它將 SDK 的實際用例從記錄、視覺化和簡單查詢擴展到從收集到訓練的完整資料旅程。以下是突出顯示此擴展的新功能導覽。有關更多詳細資訊,請查看版本說明。

穩定的檔案格式,附帶區塊級 Python API

在 Rerun 0.23 中,我們宣布了 Rerun 的 .rrd 檔案格式的版本間向後相容性。實際上,從那時起我們沒有在任何版本之間破壞相容性,現在我們有信心承諾檔案格式的通用向後相容性。我們將繼續發展該格式以推動功能和效能,但舊資料將始終能夠載入。

在 0.32 之前,你只能通過使用來自其他格式的匯入器或更高層級的 log 或 send_columns API 來寫入 .rrd 檔案,而讀取資料的唯一方式是通過 dataframe 或 SQL 查詢。在此版本中,我們現在引入了區塊級別的讀寫 API,讓你精確控制資料的確切形狀。

綜合來看,這兩個變化意味著 .rrd 已經足夠成熟,可以讓廣泛的團隊在其上建構他們的資料層。

用於機器人原生資料處理的區塊處理 API

機器人資料通常很混亂。將來自多個來源的資料標準化為團隊可以分析和訓練的格式很快就會變得複雜。資料管線的這一部分通常由拼湊而成的 Python 腳本組成,這些腳本速度慢且充滿微妙的錯誤。

為了解決這些問題,我們引入了一組新的(實驗性)區塊處理 API。它們為 .rrd、MCAP、Parquet 和 URDF 等格式提供了統一的載入器介面,這些格式會產生 Apache Arrow 區塊串流。然後你可以輕鬆地在這些串流之上定義處理管線。

機器人資料通常以深度巢狀結構的形式出現,資料標準化和處理通常意味著重塑、轉換和轉換其內容。為了滿足這一需求,我們還發布了 Lenses,這是一種受 jq 啟發的宣告式語言,用於選擇和轉換這類資料。

這些 API 是明確為編碼 Agent 設計和測試的,我們發現它們使用 Rerun 區塊處理 API 比使用通用 Python 更容易產生正確且高效的程式碼。未來,這些區塊處理轉換將能夠在檢視器和雲端中通過 Rerun Hub 執行,此外還有當前的 SDK 端執行器。

擴展的內建支援:MCAP、ROS 2 類型和機器人視覺化

我們認為,能夠輕鬆地將所有機器人資料攝取並在 Rerun 中變得有用至關重要。同時,有很多資料可以在無需自訂的情況下完美處理,我們在每個版本中都在持續改善這種體驗。0.32 帶來了改進的效能和更多開箱即用的 MCAP 和常見 ROS 2 類型支援,以及可用視覺化的擴展。請在此處查看具有內建支援的更新訊息列表。

佔用網格,或 3D 中的 2D 地圖,對於移動機器人很重要,並且一直是 Rerun 中一個被強烈要求的功能。因此,0.32 新增了新的 GridMap 原型和視覺化器,並內建支援相應的 ROS 2 訊息。

另一個常見請求是能夠視覺化隨時間變化的狀態。0.32 帶來了新的實驗性狀態時間軸檢視。如果你一直在等待 Rerun 中的這個檢視,我們很樂意聽取你對該檢視還希望看到哪些功能的回饋。

目錄伺服器,支援對磁碟上多個錄製內容進行索引的 SQL 或 dataframe 查詢

Rerun SDK 中的目錄 API 允許你對機器人資料集編寫完全通用的 SQL 或 Dataframe 查詢。當連接到 Rerun Hub 時,這已經支援了大規模資料集一段時間,而開源伺服器僅支援完全適合記憶體的資料集。在 0.32 中,我們擴展了開源目錄伺服器,使其能夠索引本地磁碟上檔案的位元組範圍,因此你現在可以僅使用開源 SDK 輕鬆分析 .rrd 檔案中任何本地機器人錄製目錄。

用於快速審查訓練和評估資料集的新 UI

在 0.32 中,我們推出了(實驗性)資料集審查工具的第一個版本。它讓你可以快速同時瀏覽多個錄製內容,以尋找異常並建立對資料的直覺。它還允許你標記錄製內容,使其成為一個簡單的註釋工具。該檢視使用標準的 Rerun 藍圖進行配置。

許多機器人學習團隊都要求這個功能,我們非常希望得到你的所有回饋,以將其打造成最高效的資料集審查工具。

用於機器人學習的資料載入器,支援簡單的資料集混合和對 .rrd 檔案的隨機搜尋

我們已經開始著手開發我們最受要求的功能之一:Rerun 的 PyTorch 資料載入器!新的 rerun.experimental.dataloader 模組將 Rerun 錄製內容公開為可迭代或地圖風格的 PyTorch 資料集,即時串流編碼的影像、標量和壓縮視訊(h264/h265/av1)。隨機存取、多工作業預取和 DDP 支援開箱即用。它與 OSS 目錄伺服器以及我們的商業產品 Rerun Hub 相容,當你想要直接在由物件儲存支援的大型資料集上進行訓練時。

我們非常興奮地向社群發布這個訓練資料載入器,供大家開始嘗試。我們打算將其打造成想像中最好的機器人學習串流資料載入器,並非常希望得到你的所有回饋和請求。

能夠直接從你用於視覺化、分析和轉換的相同資料層進行訓練,對於團隊真正統一他們的資料層至關重要,這是他們簡化系統和加速實驗循環的方式。

Rerun Hub 處於私人預覽階段,專為擴展而建構

在過去的一年半中,我們一直在與早期的一批優秀新創公司和實驗室一起,默默建構所需的資料層,以加速將機器人學習帶入有價值的真實世界應用。我們目前正在處理 PB 級的機器人訓練資料,並且已經準備好讓更多團隊加入我們的商業產品 Rerun Hub,該產品現已進入私人預覽階段。

Rerun Hub 是一個目錄和儲存引擎,連接到開源 Rerun SDK,使從收集到訓練和部署的機器人學習資料處理變得容易。它作為一個統一的管理和存取層,驅動所有核心資料能力,包括攝取、視覺化、分析查詢、轉換和訓練。資料可以儲存在任何與 S3 相容的物件儲存中,Rerun Hub 有效地調解從物件儲存到你的訓練或大規模平行後處理任務中 Rerun SDK 的直接選擇性串流。集中式樞紐也透過使構建可共享的資料連結變得容易(無論是通過程式碼還是在檢視器中互動式進行),簡化了協作和自動化審查。

Nikolaus West - inline image

如果你正在建構智慧機器人,並且有興趣升級你的資料層以便更快迭代,請與我們聯繫。對於已經達到一定規模、擁有複雜現有系統的團隊,Rerun 很容易逐步採用,我們也可以提供前線部署工程師來幫助你升級,而無需將核心人員從其他優先事項中調離。

一鍵儲存

使用 YouMind AI 深度閱讀爆款文章

保存原文、追問細節、總結觀點,並在一個 AI 工作空間裡把爆款文章沉澱成可複用筆記。

了解 YouMind
寫給創作者

把你的 Markdown 變成乾淨的 𝕏 文章

圖片上傳、表格、程式碼區塊,往 𝕏 上手動重排太痛苦。YouMind 把整篇 Markdown 一鍵轉成乾淨、可直接發佈的 𝕏 文章草稿。

試試 Markdown 轉 𝕏

更多可拆解樣本

近期爆款文章

探索更多爆款文章