robot-notes — 機器人知識筆記 GitHub ↗
本章與本頁目次

VLM

robot-notes /VLM/LLM 與 VLM 給機器人

LLM 與 VLM 給機器人:從「下一個 token」到「看圖做事」

一句話定位:把近年生成式 AI 的兩種模型——LLM(大型語言模型)與 VLM(視覺語言模型)——從第一性原理講清楚,再說明它們對機器人(尤其送餐這類室內 AMR)到底改變了什麼、哪些已能用、哪些還在研究階段。

前置:會「機率」「向量」的概念即可,其餘從零講。涉及高斯/機率的地方可參考 高斯第一性原理。 延伸閱讀:在 NVIDIA GB10 上架本地 LLM(把這顆「大腦」放進機器人本機)、Physical AI 總覽

本篇只講「模型在做什麼、為什麼這樣設計、對機器人意義何在」,不講怎麼訓練一個 LLM(那是另一回事)。


1. 先問:LLM 在解什麼根本問題

人類的知識、指令、對話,絕大多數是用自然語言承載的。一台機器人若聽不懂「幫我把餐點送到靠窗那桌」,就只能靠工程師事先把每種情況寫死。根本問題是:能不能有一個數學物件,把「語言」變成電腦能運算、能生成的東西?

LLM(Large Language Model,大型語言模型)給的答案出乎意料地簡單:把語言變成「猜下一個字」的機率遊戲。給一段文字,模型輸出「下一個最可能接什麼」。反覆接下去,就生成一整段話。

聽起來太單純,不像能聊天、能寫程式、能推理。但這篇後面會看到:「猜下一個 token」這個目標,逼著模型在過程中學會語法、事實、邏輯關係,於是「能力」是被擠出來的副產品。先把這條主線記住:LLM = 一個非常會猜下一個 token 的機率機器。


2. Token 化:語言怎麼變成數字

電腦不認得「貓」這個字,只認得數字。第一步是把文字切成一塊塊token(詞元),再給每塊一個編號。

名詞:token(詞元) = 模型處理文字的最小單位,可能是一個字、半個英文單字、或一個標點。不是「一個字 = 一個 token」,中文常一字一 token 上下,英文常一個詞被拆成幾塊。(為什麼中英文待遇不同?切法是從訓練語料的統計學出來的:中文字本身就帶不少語意、組合多,單字成 token 較划算;英文字母本身沒語意、靠拼,於是常見字根/字尾被切成共用片段。)

為什麼不直接用「字」或「整個單字」當單位?兩個極端都不好:

切完之後,每個 token 編號會再被轉成一個向量(一串浮點數,叫 embedding,嵌入),代表這個 token 的「語意座標」。意思相近的 token,向量也相近。到這一步,語言就完全變成了「一串向量」,可以丟進神經網路運算。

LLM 推論流程:文字先 token 化成編號、再查 embedding 變向量、進 transformer(自注意力)、輸出每個 token 的機率、取樣出下一個 token,然後把它接回去重跑(autoregressive)


3. Transformer 與自注意力:在解什麼問題

把一串 token 向量丟進去、吐出「下一個 token 機率」的那個神經網路,主流架構叫 Transformer。它的核心零件是 self-attention(自注意力)。要懂它,先看它在解什麼問題。

3.1 問題:一個詞的意思取決於上下文

看這兩句裡的「」:

同一個字,意思由周圍哪些詞決定——「開」把「會」拉向「會議」,「說語言」把「會」拉向「能夠」。模型若想正確處理一個 token,必須能「回頭看」整句話裡跟它有關的其他 token,而且自動判斷哪些相關、哪些無關。這就是自注意力要解的根本問題:讓每個 token 動態地、按相關程度去「參考」序列裡其他 token 的資訊

3.2 機制:query / key / value 的配對

自注意力的做法,用一個比喻最好懂——查字典 / 找資料:

對某個 token,拿它的 query 去和所有 token 的 key 比對(算相似度),相似度高的就給高權重,然後按權重把大家的 value 加權平均,匯總成這個 token 的新表示。

某 token 的新表示 = Σ (其他每個 token 的 value × 對它的注意力權重)
                   注意力權重 ∝ query 與該 token 的 key 有多相似

回到上面「我下午有個會要開」:「會」這個 token 的 query,會和「開」的 key 高度相似 → 給它高權重 → 於是「會」的表示被「開」拉向「會議」語意(而非「能夠」)。整句話的詞,就這樣互相參考、彼此消歧。下面這張圖把這個配對過程畫出來:

自注意力 query/key/value:目標 token「會」發出 query,去和句中每個 token 的 key 比對相似度(「開」最高、「下午」次之),相似度當權重把各 token 的 value 加權平均,匯總成「會」的新表示,於是被「開」拉向會議語意

多疊幾層,模型就能表示越來越複雜的關係(片語 → 句子 → 段落邏輯)。

為什麼叫「self」:query、key、value 都來自同一個序列自己(自己參考自己),所以是 self-attention。 一個關鍵工程性質:序列裡每個 token 的注意力可以平行算(不像舊的 RNN 必須一個字一個字依序處理),這是 Transformer 能在 GPU 上高效訓練、規模衝到「大型」的根本原因。

3.3 為什麼非要這個架構

在 Transformer 之前,處理序列主流是 RNN/LSTM:一個字一個字往後傳遞記憶。問題是(a)無法平行(慢)、(b)隔太遠的詞關係會「遺忘」。自注意力一次把任意兩個 token 直接連起來(不管隔多遠),既解決長距離依賴,又能平行。「Attention is all you need」這篇 2017 論文的標題就是這個意思:把 RNN 那套丟掉,光靠注意力就夠了。

來源:Attention Is All You Need(原始 Transformer 論文,arXiv)


4. Autoregressive 生成:一次一個 token,接回去再來

模型輸出的不是「一個答案」,而是詞表上每個 token 的機率分布(下一個是「的」機率多少、「貓」機率多少……)。生成一段話的流程是:

① 餵進目前的文字 → 模型輸出「下一個 token」的機率分布
② 從分布裡挑一個 token(取機率最高,或按機率隨機取樣)
③ 把這個 token 接到文字尾巴
④ 回到 ①,重跑

這種「把自己剛生成的輸出,接回去當下一步輸入」的方式叫 autoregressive(自回歸)。一句話、一段程式、一篇文章,都是這樣一個 token 一個 token「長」出來的。

名詞:取樣溫度(temperature) 控制第②步多隨機。溫度低 → 幾乎總選機率最高的(穩定、保守);溫度高 → 較常選次高的(多樣、有創意但也較可能出錯)。

這也解釋了一個常見現象:LLM 是「邊講邊想」,沒有事先規劃整段;它每一步只在猜下一個 token。能講出通順長文,是因為每一步都帶著前文的上下文在猜。


5. 參數、權重、推論:這些數字是什麼

常聽到「70B 模型」「參數量」,到底指什麼?

這裡埋一個關鍵伏筆:推論時,模型每生成一個 token,都要把這幾百億個權重讀出來算一遍。權重要先全部載入記憶體,而且每個 token 都要把它們搬一遍——這就是為什麼「在本機跑大模型」的瓶頸是記憶體(容量與頻寬),而不只是算力。這條主線在 GB10 那篇 完整展開。


6. 為什麼「猜下一個 token」能湧現能力

最違反直覺的一點:一個只會猜下一個 token 的模型,為什麼能做算術、翻譯、寫程式、甚至簡單推理?

第一性原理是這樣:要把「猜下一個 token」這件事做到極好,模型被迫去學會背後的規律

換句話說,「猜下一個 token」是一個極其廣的目標:訓練資料裡涵蓋了人類寫下的各種文字,而要在所有這些文字上都猜得準,模型就得在內部建立起對語言、事實、邏輯的某種表示。當模型夠大、資料夠多,這些能力會湧現(emergence)——某些能力在小模型上幾乎沒有,模型規模跨過某個門檻後才突然出現。

誠實提醒:「湧現」是觀察到的現象,不是魔法,學界對它的精確定義與成因仍有爭論(有研究指出部分「湧現」是評測指標選擇造成的錯覺)。本篇取其工程上可觀察的意義:大模型確實展現出小模型沒有的能力。

也要誠實面對它的限制:LLM 的「知識」來自訓練資料的統計規律,它會自信地講錯(俗稱 hallucination,幻覺),因為它的目標從來是「猜得通順」而非「講得正確」。用在機器人上時,這一點攸關安全,後面 §9 再談。

來源:Emergent Abilities of Large Language Models(arXiv)Are Emergent Abilities of LLMs a Mirage?(arXiv,反方觀點)


7. VLM:把影像也變成 token

機器人不只要聽懂語言,還要。VLM(Vision-Language Model,視覺語言模型)解的問題是:讓同一個模型既能讀文字、又能看影像,並把兩者連起來理解(看一張餐桌的照片回答「哪一桌沒人坐」)。

它的核心訣竅,順著前面的主線就懂了:既然 Transformer 吃的是「一串 token 向量」,那就想辦法把影像也變成 token 向量,混進去一起餵

7.1 影像怎麼變 token:切 patch

一張圖是一堆像素,沒辦法直接當 token。做法(來自 ViT,Vision Transformer):

  1. 把影像切成固定大小的小方塊,叫 patch(圖塊),例如每塊 16×16 像素。
  2. 每個 patch 攤平、過一個小網路,變成一個向量——這就是一個「影像 token」。一張圖於是變成一串影像 token,跟文字 token 形式一致。

VLM 把影像變 token:照片切成 patch 小方塊、每塊經視覺編碼器變成向量、再經投影層對齊到文字 token 的語意空間、和文字 token 串在一起餵進同一個 LLM 的 transformer

7.2 三段式結構:視覺編碼器 + 投影 + LLM

主流 VLM 把三個零件接起來:

零件 做什麼
視覺編碼器(vision encoder) 把影像 patch 變成一串視覺特徵向量(常用預訓練好的 ViT / CLIP 視覺端)
投影層(projector / adapter) 把視覺向量「翻譯」到 LLM 文字 token 所在的語意空間——讓影像 token 和文字 token「講同一種話」
LLM(語言模型主體) 接收「影像 token + 文字 token」混合序列,照樣用自注意力處理,autoregressive 生成文字回答

關鍵在投影層:視覺編碼器產出的向量,和 LLM 認得的文字向量,本來是兩個不同的座標系。投影層學會把前者對齊到後者,於是自注意力可以讓文字 token「看」影像 token——問「哪一桌沒人」時,文字 query 會去注意對應區域的影像 token。LLaVA 這類開源 VLM 就是這個結構的代表。

名詞:CLIP(Contrastive Language-Image Pre-training)= 一個用「大量圖配文字」對比學習出來的模型,讓「一張圖」和「描述它的句子」在向量空間靠得很近。很多 VLM 直接拿 CLIP 的視覺端當編碼器,因為它的特徵天生就和語言對齊。

7.3 為什麼能「看圖說話 / 回答」

一旦影像變成了和文字同構的 token,前面講過的整套機制原封不動就能用:自注意力讓問題文字去「注意」影像裡相關的 patch,autoregressive 一個字一個字把答案生出來。VLM 沒有發明新原理,它只是把「影像」也納入了「token + 自注意力 + 下一個 token 預測」這個既有框架——這正是 Transformer 架構通用性的威力。

來源:An Image is Worth 16×16 Words: ViT(arXiv)Learning Transferable Visual Models From Natural Language Supervision: CLIP(arXiv)Visual Instruction Tuning: LLaVA(arXiv)


8. 給機器人的意義:從 VLM 到 VLA

VLM 能看圖、能對話,但機器人最終要。把「視覺 + 語言」再接上「動作」,就是近兩年最受關注的方向:VLA(Vision-Language-Action,視覺-語言-動作模型)。

8.1 VLA 在解什麼問題

傳統機器人的「看 → 想 → 動」是好幾個分開的模組拼起來的(感知、規劃、控制各一套,工程師手寫接口)。VLA 的構想是:用一個大模型,直接把「相機畫面 + 語言指令」對映成「動作」

順著前面的主線,做法依然是「token 化 + 下一個 token 預測」,只是這次連動作也當成 token:

輸入:影像 token + 語言指令 token(「把可樂罐放到盤子上」)
輸出:動作 token(把機械臂/底盤的目標位置、夾爪開合,離散化成 token)
      一樣 autoregressive 一步步生出動作序列

Google 的 RT-2 是代表作:它把網路上學到的視覺-語言知識,直接遷移到機器人動作生成,讓機器人能對「把草莓放進正確的碗」這種它沒被專門教過的指令做出合理反應。後續 OpenVLA(開源)、NVIDIA 的 GR00T(人形機器人基礎模型)、Physical Intelligence 的 π0 等都屬這條路線。

來源:RT-2: Vision-Language-Action Models(Google DeepMind)OpenVLA(arXiv)NVIDIA Isaac GR00T

8.2 三個對機器人真正重要的能力

8.3 和傳統 pipeline 的差別(以及該不該全換)

面向 傳統 pipeline(感知/規劃/控制分模組) VLM/VLA 端到端
新指令/新物件 要改程式、重訓專用模型 常可靠語言泛化,不必改碼
行為可預測性 高(邏輯寫死,可逐條驗證) 較低(大模型內部不透明)
即時性 控制迴圈可達 kHz 級 大模型推論慢,難直接跑高頻控制
失敗可解釋 容易定位是哪個模組 難說清「為什麼這樣動」
安全保證 可做形式化/規則保證 仍是開放研究問題

務實的結論是分層:讓 VLM/VLA 處理「高層理解與決策」(聽懂指令、認出物件、決定去哪、做什麼),把「安全攸關的底層」——避障、急停、運動控制——留給傳統、可驗證、跑得快的模組(就是本 repo 導航下位機控制 講的那一套)。大模型當「大腦皮層」,傳統控制當「脊髓反射」。


9. 哪些能用、哪些還在研究(誠實盤點)

避免把研究 demo 當成產品現況:

能力 現況
用 VLM 做開放詞彙物件偵測、影像問答 已可用:有成熟開源模型,工程上能整合進感知層
用 LLM 解析自然語言指令、轉成任務 大致可用:配合明確的工具/API 框架(function calling,即讓模型輸出結構化指令去呼叫外部工具/API)效果好,但需防幻覺
VLM/LLM 跑在機器人本機(離線、低延遲) 逐漸可行:靠量化 + 邊緣硬體(見 GB10 篇),但大模型仍吃資源
VLA 端到端「看畫面直接輸出動作」做複雜操作 多數仍是研究階段:實驗室成績亮眼,但泛化性、可靠性、安全保證離大規模商用尚有距離
把高層決策完全交給大模型、無傳統安全層兜底 不建議:幻覺與不可預測性使其不能單獨負責安全攸關行為

三個務必記住的限制:

  1. 幻覺:LLM 會自信地講錯/編造。涉及動作與安全時,必須有外部檢查(規則、幾何約束、人類確認)。
  2. 延遲:大模型推論動輒數百毫秒到數秒,不能直接放進需要 kHz 的控制迴圈;它負責「慢思考」,快反應交給下位機。
  3. 資料與泛化:VLA 在訓練分布內表現好,遇到沒見過的場景仍可能失常——sim-to-real 與長尾問題依舊存在(見 sim-to-real)。

10. 一句話收束

LLM 把語言變成「猜下一個 token」,VLM 把影像也變成 token 餵進同一個 Transformer,VLA 再把動作也納進來——三者是同一個「token + 自注意力 + 下一個 token 預測」框架的逐步擴張。對機器人的真正價值在於 grounding(語言對上實體)、開放詞彙感知與自然語言下任務;但大模型的幻覺、延遲與不可預測,決定了它現階段該當「會理解的大腦」,而非取代那層「跑得快、可驗證」的傳統控制。

要把這顆「大腦」真的放進機器人本機跑(離線、隱私、低延遲),硬體與部署的第一性原理見下一篇:在 NVIDIA GB10 上架本地 LLM


來源 / 延伸