World Model 世界模型最近同時出現在影片生成、機器人、AI Agent,甚至大型語言模型的討論裡。麻煩是:三個人說「世界模型」,可能正在談三種不同能力。有人只要求它猜下一幕,有人要它生出一個可探索的世界,有人則要它回答「如果機器人向左推,杯子接下來會怎樣?」
這篇專為完全沒有技術背景的讀者寫。你不需要懂神經網路,也不用下載模型;只要有 Python 3,就能用三個零依賴小實驗,把預測器、生成器與行動模擬器的差別親手跑出來。讀完後,你不只知道名詞,還會用一組跨產品都能套用的問題檢查新的「world model」宣稱。
先記住這條判斷式:觀察 oₜ → 狀態 sₜ;(狀態 sₜ+行動 aₜ) → 下一狀態 sₜ₊₁;重複推演=rollout。白話說,世界模型像一本能更新的內部筆記:先記住眼前世界的重要狀態,再試演不同動作會把世界帶去哪裡。
World Model 世界模型先說結論:別看名字,先測功能
⚡ 三句話版:
一、預測回答「接下來常發生什麼」;生成抽出一個或多個看起來合理的未來;行動模擬回答「從同一狀態採取不同動作,未來會怎麼分岔」。
二、這三者是功能,不是互斥的產品身分;同一套模型可以同時具備多項能力。
三、逼真的影片只能證明輸出看起來像世界的一部分;要支援規劃,還要檢查狀態、action conditioning、反事實分岔與長程 rollout。
「世界模型」在不同研究脈絡指向的功能不完全相同。2018 年 David Ha 與 Jürgen Schmidhuber 的經典 World Models 工作,把視覺壓縮、記憶/動態預測與控制器拆開;其中動態模型學的是 P(zₜ₊₁|aₜ, zₜ, hₜ),也就是把當前壓縮狀態、行動與歷史記憶一起放進下一步預測。
World Labs 在 2026 年 6 月的功能分類提案更直接稱這個詞已被過度延伸,並依主要輸出討論 renderer(畫面/observation)、simulator(可計算的結構或 state)與 planner(action)。這是該團隊的分析框架,不是全領域的唯一字典,但提醒我們一件重要的事:不要問一個系統「是不是」世界模型;先問它接收什麼、產生什麼,以及能否讓行動改變未來。
World Model 世界模型的 5 個零件
① Observation「眼睛現在看到的切片」
Observation(觀察)是感測器在某一刻收到的資料,例如一張相機畫面、機器人的關節角度,或遊戲畫面。它不一定等於完整真相:杯子被紙箱擋住時,相機看不到杯子,不代表杯子從世界消失。
② State「能接續推理的內部筆記」
State(狀態)是系統用來延續推演的摘要。它可能是人看得懂的座標、速度與物件清單,也可能是神經網路裡的 latent representation(潛在表示)。好狀態不必逐像素抄寫世界,但要保留任務需要的資訊。只看球現在位於中央,無法知道下一刻往左或往右;把上一幀或速度記進 state,未來才不會因資訊不足而混在一起。
③ Dynamics「世界怎麼變的規則」
Dynamics(動態)描述狀態如何從 sₜ 走到 sₜ₊₁。確定性世界可以回傳一個結果;有隨機性的世界則回傳一個分布。天氣、摩擦、其他人的行為都可能讓同一動作有多種結果,所以「一次猜對」和「把不確定性校準好」是兩件事。
④ Action「我對世界做了什麼」
Action(行動)是介入:向左走、轉動方向盤、夾住杯子,或按下一個遊戲按鍵。若下一步只根據過去畫面生成,模型回答的是「通常會發生什麼」;把 aₜ 放進 dynamics,才可以比較「向左」與「向右」造成的不同後果。Meta 在 V-JEPA 2 的官方說明也刻意分開 action-free 預訓練與後續 action-conditioned 訓練:看懂變化,和讓特定動作進入預測,不是同一個介面。
⑤ Rollout「把下一步接成一條未來」
Rollout(展開推演)就是把預測出的下一狀態,再餵回模型繼續預測。一步像在地圖上走一格;rollout 則是先在腦中走完多條路。規劃器可以替候選路線打分,再選出更接近目標的一條。這也說明世界模型和 planner 的界線:前者提供「如果做了會怎樣」,後者再根據目標回答「那我該做哪一個」。

World Model 世界模型小實驗:用 1 支 Python 檔跑出三種差別
下面不是神經網路訓練,而是一個故意縮小的格子世界。它把介面差異單獨拉出來,讓你看到「資訊缺口」究竟發生在哪裡。把程式存成 world_model_lab.py,執行 python3 world_model_lab.py;只用 Python 標準庫,不需要 pip install。
from collections import Counter
from random import Random
WIDTH = 5
def frame(position):
cells = ["."] * WIDTH
cells[position] = "A"
return "".join(cells)
def step(position, action):
delta = {"L": -1, "R": 1}[action]
return max(0, min(WIDTH - 1, position + delta))
print("實驗 1|只看當下的預測器")
current = 2
observed_next = [3, 3, 3, 1, 1]
prediction = Counter(observed_next).most_common(1)[0][0]
print("相同觀察:", frame(current))
print("資料中的下一格:", [frame(x) for x in observed_next])
print("多數票預測:", frame(prediction))
print("看不見的資訊:移動方向/先前畫面\n")
print("實驗 2|會抽樣的生成器")
rng = Random(7)
generated = rng.choices([1, 3], weights=[2, 3], k=8)
print("八個合理樣本:", [frame(x) for x in generated])
print("介面收到 action 嗎?", False)
print("因此它展示可能性,卻沒有收到『指定向左』這個條件\n")
print("實驗 3|行動條件模擬器")
print("同一狀態 + L:", frame(step(current, "L")))
print("同一狀態 + R:", frame(step(current, "R")))
def rollout(start, actions):
states = [start]
for action in actions:
states.append(step(states[-1], action))
return states
goal = 4
candidates = ["LL", "LR", "RL", "RR"]
scored = [(abs(goal - rollout(current, a)[-1]), a) for a in candidates]
best = min(scored)[1]
for actions in candidates:
print(actions, "->", [frame(x) for x in rollout(current, actions)])
print("離目標最近:", best)
實驗 1:預測器為什麼需要 state?
痛點:畫面都是 ..A..,下一格卻可能在左邊或右邊。做法:只用當前位置,讓多數票預測器選資料中最常見的下一格。你會看到:它輸出 ...A.,但這只是資料裡「向右」較常見;若真實個體原本正向左移,它就猜錯。
這不是模型太小,而是輸入資訊不夠。解法是把先前畫面、速度或能代表歷史的 latent state 加進去。換句話說,representation 只有在保留了推演所需資訊時,才對 dynamics 有用;一個漂亮的 embedding 圖本身不會替你證明它能預測未來。
實驗 2:生成器能給可能性,但有沒有聽你的 action?
痛點:只給一個答案,容易把「未來其實有多種可能」藏起來。做法:讓生成器依資料比例抽樣,固定 seed 後產生八個可重複檢查的結果。你會看到:左、右兩種合理樣本都會出現;多樣性比單一多數票更完整。
但請看函式介面:抽樣時沒有傳入 action。所以這個特定生成器能回答「可能長什麼樣」,卻沒有足夠輸入回答「我指定向左會怎樣」。這是檢查影片生成宣稱的第一個反例:會抽出合理未來,不等於能做受行動控制的反事實推演。
實驗 3:action-conditioned rollout 怎麼變成規劃材料?
痛點:Agent 要比較路線,不能只看一個最常見未來。做法:step(position, action) 同時接收狀態與動作,再把 LL/LR/RL/RR 各自 rollout 兩步。你會看到:同一個 ..A.. 配上 L 與 R 立即分岔;目標在最右邊時,RR 的終點距離為零。
這個 step 是人手寫的規則,不是從資料學到的模型,也沒有像素、隨機性或摩擦。它證明的範圍很窄:一個可供規劃的最小介面,需要 state、action、transition 與可反覆呼叫的 rollout。把規則換成學習到的神經網路,就是許多 model-based reinforcement learning 系統的方向。Dreamer 的同行評審論文便讓世界模型預測候選 action 的結果,再由 actor 與 critic 學習選擇。
把影片生成、VLA 與內部 representation 放進同一張地圖
影片生成模型:先問它是 renderer,還是可干預的 simulator
文字或圖片生成影片,最直接的輸出是給人看的 observation。若產品還能在每一步接收鍵盤、滑鼠或機器人 action,並讓隱藏狀態跨遮擋與回訪延續,它就多了互動模擬的功能。Google DeepMind 對 Genie 3 的描述很清楚:Agent 提供導航動作,系統依動作模擬未來;Agent 的目標則在系統外部。這正好把 simulator 與 planner 分開。
AlphaLab 先前分析FLUX 3 是否因共用多模態骨幹就成為世界模型,以及World Labs Atlas 的鏡頭控制與物理模擬差距,都是同一套檢查:輸出很漂亮是能力之一,但還要追問狀態是否穩定、行動是否可控、結構是否能被計算與驗證。
VLA:它通常輸出 action,未必等於負責模擬後果的模組
VLA 是 Vision-Language-Action:把影像與語言指令轉成機器人動作。以 Google DeepMind 的 RT-2 為例,輸出就是離散化的控制 action。這讓 VLA 更接近 policy/planner 的位置;至於完整系統是否另有 action-conditioned dynamics,要看架構與訓練目標,不能只從「VLA」三個字推定。
想看兩者如何接在一起,可以延伸讀GigaBrain-0.7 如何用 future subgoal 引導機器人 VLA。判讀重點不是「機器人有沒有動」,而是系統哪一層負責想像後果、哪一層選 action、最後用什麼真機結果驗收。
內部 representation:它是 state 的候選,不是完整功能清單
模型內部當然可以形成對物件、空間與時間有用的 representation。但要把它當成可操作的世界模型證據,至少要接著問:能否從這個 state 預測下一 state?能否把 action 當條件?能否 rollout 多步並支援下游任務?Meta 的 V-JEPA 2 把 encoder 與 predictor 分成兩個元件,也顯示「把畫面編成 embedding」和「在 embedding 空間預測」是不同功能。
逼真影片為什麼不自動等於懂物理?用 4 個反例測
- 反事實測試:固定起始狀態,只改 action。若結果沒有依干預合理分岔,漂亮畫面仍不足以支援控制。
- 遮擋測試:物件走到牆後再出現。檢查身分、數量、位置關係是否延續,而不是只看單幀材質。
- 守恆與接觸測試:追蹤碰撞、重力、質量與物體穿透。WorldModelBench 的原始評測刻意把 instruction following、common sense 與 physical adherence 分開,正因三者不能互相代替。
- 長程 rollout 測試:比較第 1 步、第 10 步與更遠處的狀態誤差。每一步的小偏差都可能成為下一步輸入,最後把 Agent 帶進模型自己製造的捷徑。
這裡的結論不是「影片模型都不懂物理」,而是一支精選 demo 無法單獨證明物理可靠性。VideoPhy 2 的原始研究用動作導向資料,把語意符合與物理常識分開做人類評估;結果顯示它測試的模型在 hard subset 仍有明顯落差。這是特定資料集與當時模型的觀察,不是對所有後來版本的永久排名。
同樣地,做 3D 世界或 Agent benchmark 時,也要分清「能生成場景」和「能讓 Agent 在一致規則裡被評估」。AlphaLab 的VibeWorlding benchmark 解讀示範了另一個常見陷阱:生成器、被測 Agent 與評分器若繞成一圈,漂亮總分仍需要外部證據校準。
看到新的 World Model 宣稱,照這 5 問判讀
- 輸入是什麼?只有文字 prompt、單張圖、歷史畫面,還是明確包含 action?
- 輸出是什麼?給人看的 pixels、可供程式計算的 state,還是直接輸出 action?
- 記得什麼?物件暫時被遮住後,身分與空間關係能否在 state 裡延續?
- 能否做反事實?同一起點換一個 action,未來是否出現方向正確、可重複檢查的分岔?
- 如何驗收?除了精選影片,是否有長程一致性、物理、控制成功率或下游 Agent 表現;模型自報與獨立評測是否分開?
你可以把這五問接到AI Agent Harness的 eval 層:每次更換模型,就固定初始 state、action 序列與驗收條件,保存 rollout。若要把它做成可重複的程式流程,再看從零建立 AI Agent Harness,把本篇的小格子世界換成自己的任務。
常見誤區:5 個看起來很像、其實差一層的說法
- 「能生成」=「能模擬」:先檢查輸出是否只追求觀感,或還能維持可計算、可干預的狀態。
- 「有 latent」=「有 dynamics」:latent 是筆記格式;dynamics 才是翻到下一頁的方法。
- 「單步準」=「長程可靠」:rollout 會把自己的輸出再當輸入,誤差可能逐步累積。
- 「會預測後果」=「會選最佳動作」:模擬器產生候選未來;planner 還需要目標、評分與搜尋。
- 「demo 很像真的」=「可用來訓練機器人」:訓練環境還要讓 action、幾何、接觸與成功條件保持可信。
World Model 世界模型 FAQ
1. 世界模型一定要生成影片嗎?
不一定。它可以直接在座標、物件圖或 latent state 裡預測,不必把每一步解碼成人眼可看的 pixels。Dreamer 類方法便主要在抽象表示裡想像未來。
2. 影片生成模型就是世界模型嗎?
要看你採用的功能定義。它可能已具備 observation prediction/renderer 能力;若要把它當成行動模擬器,還要另外驗證 action conditioning、狀態延續、反事實一致性與 rollout。
3. 只會預測下一幀,算世界模型嗎?
在寬鬆用法裡可以算預測核心,但不能因此推定它能規劃。規劃還需要把 action 放進轉移、展開多步候選,並依目標選擇。
4. VLA 就是世界模型嗎?
不一定。VLA 的名稱告訴你它把 vision、language 連到 action;它可能是 policy/planner,也可能與額外的 predictive model 組成完整系統。要看架構,不看縮寫猜答案。
5. 大型語言模型內部有世界模型嗎?
只看流暢回答,不能下結論。比較可驗證的問題是:模型能否在未見干預下追蹤狀態、預測不同 action 的結果,並在反事實與長程測試保持一致。研究者對「內部表示到什麼程度算世界模型」仍採用不同操作定義。
6. Observation 和 state 有什麼差別?
Observation 是這一刻收到的切片;state 是為了接續推演而保留的摘要。單張照片可能看不到速度與被遮住的物件,state 可以透過歷史把這些資訊帶到下一步。
7. Rollout 越長越好嗎?
不是。更長會看得更遠,也會把每一步誤差帶到下一步。實務上要畫出「誤差隨 horizon 怎麼變」,並在真實 observation 到來時重新校正,而不是只展示最順的一條長影片。
8. 新手最先該測哪一件事?
先做同一起點、兩個 action 的 A/B。如果兩條未來沒有按干預合理分岔,就先別談複雜規劃;若能分岔,再逐步加入遮擋、隨機性與更長 rollout。
給新手的 5 個重點
- 把世界模型當成可更新、可向前推演的內部筆記,不要先被產品名字綁住。
- Observation 是看到的切片;state 是為下一步保留的任務相關資訊。
- Prediction 與 generation 可以重疊;action conditioning 才讓「如果我這樣做」進入問題。
- Simulator 預測後果,planner 選動作;兩者可以合作,但功能不同。
- 評估時固定起點、改 action、看分岔,再檢查遮擋、物理與長程 rollout。
接著閱讀
左右滑動查看更多推薦
結語:先跑兩條分岔,再相信一個「世界」
回到最前面的式子:oₜ → sₜ;(sₜ, aₜ) → sₜ₊₁;重複=rollout。預測器讓你猜下一步,生成器讓你看到多種可能,行動模擬器則把「你的選擇」放進未來;planner 再利用這些未來做決定。
現在就複製本文程式,先把 goal 從 4 改成 0,確認最佳 action sequence 是否從 RR 變成 LL;接著把牆、隨機滑動或被遮住的物件加進 state。當你能說清楚每一項新增資訊屬於 observation、state、dynamics 還是 action,你就真的掌握了 World Model 世界模型。想把這套思考擴成自己的 AI 工作流,可接著走訪 AlphaLab 的完整課程。






