跳到主要內容

【2026 最新】Next Concept Prediction 是什麼?零基礎搞懂 NCP-ArchPreview,和 NTP 差在哪(新手白話篇)

最後更新: ·
Next Concept Prediction 新手教學封面,以四個 token 點、codebook 網格與向前箭頭呈現潛在概念預測

Next Concept Prediction 最近出現在研究社群的熱門頁面:2026 年 9 月 11 日,NCP-ArchPreview 技術報告成為 Hugging Face #1 Paper of the day。這只代表該平台當日排名,不是採用率。但先別被名字帶偏——這裡的 NCP 不是「神經細胞自動機」,而是 Next Concept Prediction(下一個概念預測)

這篇專為第一次接觸潛在空間模型的讀者寫。我們會從逐字接龍開始,拆開 8.94B checkpoint 的三段架構,跑一個不需要 GPU 的迷你量化範例,再教你檢查公開模型;最後把「1.95 倍」究竟代表什麼說清楚。

Table of Contents

先說結論:Next Concept Prediction 多加了一條「概念便條」

NCP-ArchPreview =逐 token 接龍(NTP)+每 4 個 token 預測下一組連續的「潛在便條」(NCP)

「便條」只是方便記憶的比喻。NCP target 是四個 token 狀態平均後的連續向量,預測結果則由 codebook 向量加權組成;另一條 VQ 支線才會做離散 codeword 指派。它們都不保證能翻成人類看得懂的主題詞。

因此,NCP 沒有丟掉傳統的 next-token prediction,也不是先在腦中寫好一整段摘要才輸出文字。它仍然自回歸地生成下一個 token,只是在中間多訓練一個較粗粒度的預測目標,讓模型同時學「下一個字詞」與「下一小段的潛在表示」。如果你還不熟 token,可以先讀 LLM 為什麼只是下一個 token 預測器

先把名字說對:NCP 不是細胞自動機

arXiv 2609.10715 的正式標題直接把 NCP 展開為 Next Concept Prediction。論文描述的是固定深度的 causal Transformer:16 層 Token Encoder、8 層 Concept Module、16 層 Token Decoder;資料沿時間方向保持因果遮罩。

真正的 cellular automaton(細胞自動機)通常把同一套局部規則,反覆套到格子上的每個 cell,讓全域圖樣逐步長出來。反觀 NCP-ArchPreview 論文第 2 節與公開程式列出的完整主路徑,是三段 causal Transformer、四-token 分組與 codebook 約束的潛在預測;它也使用 16/8/16 組不同層,而不是重複使用同一 Transformer block 的 recurrent-depth 方法。想分辨後者,可對照 Looped Transformer 與 recurrent depth 教學

為什麼要預測「下一個概念」?

想像你在聽一句話:「下雨了,所以我帶了……」。只猜下一個 token,模型可能依次處理「一」「把」「傘」;較粗的便條則可以先表示「接下來和雨具有關」。這不代表模型真的擁有人的概念,而是多了一個跨數個 token 的訓練訊號。

研究動機是:純 NTP 每一步都受到細粒度文字形式約束,而語意常跨越多個 token。NCP 嘗試讓模型在兩種尺度一起學習。不過,較漂亮的訓練 loss 並不自動等於每個能力都更好;理解 scaling law 與評測怎麼讀,正是避免被單一數字牽著走的第一步。

Next Concept Prediction 的 5 個零件

① Token Encoder:先把文字讀成隱藏狀態

輸入仍先經 tokenizer 變成 token。16 層 Encoder 把每個位置轉成 4,096 維隱藏狀態。你可把它想成逐字做筆記:每個位置都記下「到目前為止,我讀到了什麼」。

② Mean pooling:每 4 個 token 合成一張草稿

模型把連續 4 個 token 的狀態取平均,壓成一個 chunk 表示。四個一組是這個 checkpoint 的設定,不是所有「概念模型」都必須遵守的自然定律。

③ VQ 支線:替連續空間建立離散參考點

4,096 維向量被切成 32 段,每段 128 維;每段再到各自擁有 128 個 codeword 的 codebook 中找最近代表。這條 product quantization(乘積量化)支線用 VQ loss 把 codeword 拉向連續表示。它不是把一段話硬翻成「天氣」或「金融」標籤;而且 NCP loss 的 target 仍是下一個連續 mean-pooled 向量,不是這 32 個硬索引。

④ Concept Module:預測下一組潛在表示

8 層 Concept Module 根據前面的 chunk,預測下一個 chunk 在各 codebook 的分數,組成連續潛在向量,再以 MSE 對齊下一個 mean-pooled continuous target。論文公式把分數經 softmax 後做加權組合;但截至 2026 年 9 月 13 日,公開 checkpoint 設定raw_logits,其 standalone inference 程式直接用 logits 與 codebook 做運算。這是公開 artifact 層面的差異;現有資料尚未說明它是匯出表示、訓練/推論差異,還是算法變更。

⑤ Token Decoder:把粗粒度線索送回逐 token 生成

預測出的概念向量會對齊回 token 位置,與 Encoder 資訊一起交給 16 層 Decoder,最後仍由詞彙表上的機率分布選出下一個 token。換句話說:概念路徑提供額外線索,token 路徑負責真正輸出文字。

NCP-ArchPreview 把四個 token 狀態 mean-pool 成連續 concept,由 VQ 支線學 codebook 參考點並讓 Concept Module 預測 codebook 組合的架構圖
四個 token 狀態先 mean-pool 成連續 concept;VQ 支線學 codebook 參考點;Concept Module 讀取過去的連續 chunk 表示,預測 codebook 組合,再協助 Decoder 生成下一個 token。下方數字都只代表報告中的指定比較口徑。

走一次例子:從「下雨」到下一組潛在表示

假設 tokenizer 把一句話切成「今天/下雨/所以/我」與「帶了/一把/雨傘/出門」兩組。這只是方便理解的假想切法,不是該 tokenizer 的實際輸出。

  1. Encoder 為第一組四個 token 產生四個隱藏向量。
  2. 模型把四個向量平均成連續 concept;VQ 支線另把它分成 32 段,各自找最近 codeword。
  3. Concept Module 讀取因果位置上可見的過去連續 chunk 表示(不是離散索引),預測下一組的 codeword 分數。
  4. 分數組合成下一個連續潛在向量,往右移後交給 Decoder,避免偷看到答案。
  5. Decoder 仍一次產生一個 token,例如先產生「帶」,再繼續生成。

關鍵在第 4 步的 causal shift:若模型能把正在預測的那組答案直接送給 Decoder,訓練分數會很好看,實際生成卻是在作弊。

20 行內看懂「平均+量化」:不需 GPU 的玩具程式

下面只示範 NCP 中最容易觀察的兩步:把四個 token 狀態平均,再選最近的 codeword。它不是 8.94B 模型,也不含 Transformer、32 組乘積量化、NCP loss 或文字生成。

token_states = [(0.9, 0.1), (0.7, 0.3),
                (0.8, 0.2), (0.6, 0.4)]
codebook = {"A": (0.75, 0.25),
            "B": (0.20, 0.80),
            "C": (0.50, 0.50)}

pooled = tuple(
    round(sum(state[i] for state in token_states) / len(token_states), 2)
    for i in range(2)
)

def squared_distance(a, b):
    return sum((x - y) ** 2 for x, y in zip(a, b))

winner = min(codebook, key=lambda name:
             squared_distance(pooled, codebook[name]))
print("pooled =", pooled)
print("nearest codeword =", winner, codebook[winner])

將上一段程式另存為 toy_vq.py 後執行 python3 toy_vq.py,你會得到 pooled = (0.75, 0.25)nearest codeword = A (0.75, 0.25)。真正模型的 VQ 支線會對 32 個子向量各找最近 codeword;Concept Module 不做硬選,而是預測各 codebook 的權重/分數,組成下一個連續潛在向量。

怎麼檢查 8.94B Stage-1 checkpoint?

先做「不下載權重」的 inspection。以下命令把 metadata inspection 固定在 revision d642…;只讀 JSON 與索引:

MODEL='ArchSpace-Collection/NCP_ArchPreview_dolma3_8.9B_Stage1'
REV='d642693c0efaca7329e544076397105238bda3bf'

curl -fsSL "https://huggingface.co/api/models/$MODEL/revision/$REV?blobs=true" |
  jq '{sha, safetensors,
       weight_shards:[.siblings[] |
         select(.rfilename | test("^model-[0-9]+-of-[0-9]+\\.safetensors$")) |
         {file:.rfilename, bytes:.size}]}'

curl -fsSL "https://huggingface.co/$MODEL/resolve/$REV/config.json" |
  jq '{architectures, hidden_size, num_hidden_layers,
       conceptlm_encoder_layers, conceptlm_special_layers,
       conceptlm_decoder_layers, conceptlm_chunk_size,
       conceptlm_v22_vq_num_codebooks,
       conceptlm_v22_vq_codebook_size,
       max_position_embeddings, torch_dtype}'

curl -fsSL "https://huggingface.co/$MODEL/resolve/$REV/model.safetensors.index.json" |
  jq '{metadata, tensor_keys:(.weight_map|length),
       shards:(.weight_map|to_entries|map(.value)|unique)}'

Hugging Face API 報告 8,938,363,792 個 BF16 參數;pinned index 列出 842 個 tensor key、5 個權重分片與 17,876,727,586 bytes 的 tensor data(約 16.65 GiB)。這只是權重大小,實際載入還要留給 KV cache、activation 與 runtime,因此不能把「檔案放得下」當成「一定跑得動」。想先估自己的硬體預算,可搭配 本機 LLM 硬體與成本教學

官方 model card提供 Transformers 的單張 CUDA GPU、BF16、trust_remote_code=True 載入範例。這個參數會執行 repository 內的自訂 Python;實務上應像上面一樣固定 revision,先讀過 modeling_ncp_olmo3.py 再執行。

公開 runtime 證據的邊界很窄:evaluation repository 記錄公開 HF exports 的載入與非空續寫 smoke test,不是 benchmark 分數或 native backend parity 證明。Checkpoint config 將 standalone HF backend 標為 parity_candidateconversion_manifest.json 另標示 parity_validated=false。官方 evaluation repository 也明確表示不主張它與原生 Megatron runtime 已達嚴格數值同等。

「1.95 倍更快」該怎麼讀?拆成 4 個問題

1. Training-token convergence:成立,但只談 token 預算

報告稱,在同一套 Dolma-3 訓練資料上,NCP 用 OLMo-3-7B 51.3% 的訓練 token,就到達後者最終 pretraining loss;換算是 1.95× 的 token-to-loss convergence。它不是 1.95× wall-clock、吞吐、電費或硬體成本。

2. Analytical compute:85% 有指定分母

論文把 NCP 算成 34 個標準 block 的分析運算量,拿來比較的是參數對齊的 40-block vanilla 模型,所以得到 34 ÷ 40 = 85%。實際 OLMo-3-7B baseline 是 32 個 block;用同一套簡化口徑看,NCP 的 34 並沒有比 32 少。這組受控消融只跑到前 200B tokens,也不能代替完整 5.73T 訓練的同規格硬體計時。

3. Quality:Stage 1 平均上升,不代表每一格都贏

作者報告的 Stage-1「Overall AVG」由 46.59 升至 49.04,增加 2.45 個百分點;GSM8K 增加 5.99 點。這個 Overall AVG 是 26 個異質 benchmark 結果的未加權平均。到了 Stage 2,平均差距縮到 +0.59;其中 HumanEval 低 3.69 點,code-domain average 低 0.65 點。完整規模比較還同時改了參數量與 optimizer,不能把全部差距只歸因於 NCP 目標。比較合理的結論是「有值得追蹤的訊號」,不是「所有能力都更強」。

4. Wall-clock 與硬體成本:這份證據還沒有回答

不同 optimizer、kernel、記憶體流量、跨卡通訊與利用率,都會改變實際時間和價格。官方 model card 也明確把 1.95× 限定為 token-to-reference-loss,並說它不代表 wall-clock 或 inference throughput。因此,看到「1.95×」時先問分母:它回答的是 token 收斂,不是你的帳單。

NCP、NTP、diffusion、cellular automata 差在哪?

  • NTP:逐位置學下一個 token;標準自回歸 LLM 的基本目標。
  • NCP-ArchPreview:NTP 照常保留,另外預測每 4-token chunk 的 codebook 加權潛在表示,輸出仍逐 token 生成。
  • Diffusion language model:D3PM 等方法從被破壞或遮罩的序列反覆去噪,生成軌跡和 NCP 不同。可參考 DiffusionGemma 的 token canvas 實驗speculative diffusion 教學
  • Cellular automata:Neural Cellular Automata在 cell 格子上反覆套用共享局部規則;這不是 arXiv 2609.10715 所描述的架構。

最容易記錯的一點是:NCP-ArchPreview 的主模型仍是多尺度自回歸語言模型;NCP 目標本身不是 diffusion 式平行生成機制。這也解釋了為什麼它仍可以接到 speculative decoding 研究;若你想理解 drafter 與 target 的分工,可接著讀 vLLM speculative decoding A/B 教學

名稱相近但獨立的 Training Language Models via Neural Cellular Automata,是把 NCA 軌跡做成合成 pre-pretraining data;它和本文的 Next Concept Prediction 不是同一個專案,不能混用架構與結論。

目前最值得注意的 6 個限制

  1. 它是 base model:沒有經過聊天對齊,不應用聊天模型的口吻期待它。
  2. 「概念」未必可解釋:官方卡明確說單一 concept code 不保證具有人類可讀語意。
  3. 公開訓練資產仍不完整:截至 2026 年 9 月 13 日,model card 的 Training code 欄仍標示 coming soon;公開的 inference/evaluation 程式不等於完整 NTP+NCP+VQ 從零訓練流程。
  4. paper 與公開 standalone inference 實作的合併口徑待對齊:論文公式以 softmax 權重組合 codebook;pinned HF config 設為 raw_logits,standalone inference code 直接以 logits 加權 codebook。由於 config/conversion manifest 分別標示 parity_candidateparity_validated=false,這不能反推出私人訓練 graph 的實際行為。
  5. context 證據邊界是 8,192:不要從 tokenizer 的巨大 sentinel 值誤讀成超長上下文能力。
  6. 目前證據以作者自報為主:論文附錄 A.2 說 few-shot 選例與生成使用 global random seed 42;主表呈現作者的 point estimates,因此應視為作者報告結果,而不是獨立重現。

另外,報告中的 NCPFlash「+4.17%」指 mean accepted length,不是端到端速度。同一研究團隊後續的 pinned validation,在 vLLM 0.13.0、一組 H200、Stage-2 target+DFlash segmented_kv_approx 的連續佇列設定中,排除 load/warmup 後報告 286.14 對 409.16 tok/s(1.43×);但載入由 26.05 秒增至 40.87 秒,近似路徑的 GSM8K 與 HumanEval 分別低 0.91、4.27 點。這不是獨立重現,也不應外推成所有環境的固定加速。

你現在該做什麼?三種讀者的決策

  • AI 初學者:先記住「NTP+每四個 token 一張潛在便條」,不用急著下載 17 GB 權重。
  • 模型研究者:先用 pinned revision 對照 paper、config 與 model code,再把 softmax/raw logits、baseline optimizer、200B 消融邊界列進實驗紀錄。
  • 想部署的人:先把它視為研究 checkpoint。量測你自己的首 token 延遲、tokens/s、VRAM、輸出品質與失敗率,再決定是否值得進入服務。

如果你的真正目標是建立可重複的模型評估流程,先從 可觀察的 LLM 實驗方法開始,會比直接追逐一個總平均更有用。

FAQ:Next Concept Prediction 常見問題

1. NCP 是 Neural Cellular Automata Programs 嗎?

不是。arXiv 2609.10715 與官方 model card 都把 NCP 展開為 Next Concept Prediction;細胞自動機是另一類方法。

2. NCP-ArchPreview 有取代 next-token prediction 嗎?

沒有。在這個已公開架構中,NTP、NCP 與 VQ 共同訓練,最後仍由 token decoder 自回歸輸出。

3. 一個 concept 就是一句話的主題嗎?

不一定。NCP target 是 mean-pooled 連續潛在表示;VQ 支線另有離散 codeword,預測端則組合 codebook 向量。單一 code 沒有被保證對應人類可讀標籤。

4. 1.95× 代表訓練時間減半嗎?

不能這樣解讀。1.95× 是到達指定 loss 所需 token 數的比值,沒有直接給出 wall-clock、GPU-hours 或費用倍數。

5. 8.94B checkpoint 可以在 16 GB 顯卡跑嗎?

不要只看參數檔就下結論。BF16 權重已約 16.65 GiB,執行時還有其他記憶體需求;官方 quick start 只寫需要「足夠記憶體」的 CUDA GPU,沒有給數字,所以本篇不猜最低 VRAM。

6. 這是聊天模型嗎?

不是。官方卡將目前 checkpoint 定位為 base completion model,而不是 instruction/chat 對齊模型。

7. 現在能從零重跑完整訓練嗎?

本篇不提供這個 walkthrough。截至查核日,官方卡仍將完整 training code 標為 coming soon;checkpoint、推論程式與評測工具已公開,但範圍不同。

8. 現在適合把 NCP 放進正式產品嗎?

先做自己的驗收再決定。它目前最有價值的用途是研究多尺度目標、量化潛在表示與 serving 相容性;正式上線仍要看你的延遲、成本、品質與維運門檻。

給新手的 5 個重點

  1. NCP 在這篇研究中只代表 Next Concept Prediction
  2. 它是 NTP 加上一條每 4-token chunk 的連續潛在表示預測路徑。
  3. NCP target 是 mean-pooled 連續向量;VQ 支線才做離散指派,預測端以 codeword 組合向量。
  4. 1.95× 是 training-token convergence;85% 是相對 40-block 參數對齊 baseline 的分析運算口徑。
  5. 較穩妥的動手方式,是先鎖定 revision 檢查 config、索引與程式碼,再依硬體條件決定是否載入。

接著閱讀

左右滑動查看更多推薦

結語:先驗證名詞,再驗證數字

回到最初那句話:NCP-ArchPreview = NTP +每四個 token 預測下一組連續的潛在便條。這個設計讓「下一個概念」成為可訓練、可檢查的數值目標;但它沒有把 Transformer 變成細胞自動機,也沒有讓 1.95× 自動變成更便宜的帳單。

你現在最值得做的下一步,是依序跑本文三段 inspection 命令,確認 revision、架構與權重規模,再讀一次 paper 的比較分母。想把這套「先拆主張、再設驗收」的方法延伸到更多 AI 工具,可逛 AlphaLab AI 專區,或到 課程頁建立一套可重複的實作流程。

ALPHALAB 社群

有問題?來 Telegram 聊

和 Terry、編輯、其他網友一起討論這篇文章。提問、分享觀點,回覆更即時。

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

每週最多三封:一封 Weekly 週報與最多兩封關鍵 Alpha Signal。

我們不會 spam,隨時可退訂。