跳到主要內容

【2026 最新】Engram 是什麼?零基礎搞懂 Hash Lookup,為何 SSD 1T 參數不等於 1T 運算(新手白話篇)

最後更新: ·
Engram 是什麼:N-gram Hash Lookup 查表不等於巨模運算

Engram 是什麼?先把最容易誤會的地方說清楚:它不是把一整套 Transformer 權重丟進 SSD,等需要時再把某一層叫出來運算;它更像模型內建的一本「片語速查簿」,用最近幾個 token 算出 Hash、查回一小列學習過的向量,再由當下語境決定要不要採用。

這篇會從一個可以手算的例子開始,帶你看懂 Engram 的查表流程、它和 MoE/KV Cache/RAG 的分工,最後用 RAM、作業系統 page cache 與 NVMe 三種路徑,判斷「SSD 跑 1T 模型」這句話究竟說對了哪一半。看完後,你不必會寫 CUDA,也能讀懂下一篇巨型 N-gram 模型的規格表。

先說結論:SSD 可以放表,不等於 SSD 在跑 1T 級運算

  • Engram 的核心是固定成本的稀疏查表:每個 token 只取固定數量的 N-gram 向量,表做大時,總參數量可以增加,但每個 token 實際讀取的列數不會跟著等比例增加。
  • SSD 解決的是容量,不直接解決延遲:熱資料在 HBM/DRAM、冷資料放 NVMe 是合理的分層方向;若查詢反覆落到尚未進入記憶體的頁面,page fault 與隨機 I/O 仍可能把速度拖慢。
  • 參數數量不能跨類型直接比較:1T 個查表參數,和 1T 個每次都參與矩陣運算的稠密模型權重,代表的運算量、能力上限與硬體瓶頸都不同。

Engram 是什麼?先記住這條公式

Engram = N-gram Hash Lookup(查表)+ Context Gate(把關)。

把一般語言模型想成一位每次都要心算的學生。像「New York City」這種反覆出現的固定組合,若每次都從零推導,會把算力花在高度重複的模式上。Engram 先替常見的二連詞、三連詞準備可學習的向量;模型看到相同尾端片段時,先查速查簿,再把結果注入模型層。本文的 Engram 特指 DeepSeek Engram(N-gram conditional memory);Qwen3.8-Flash-Next 採用的是受同一路線啟發、官方稱為 N-gram Embedding/PLE 的實作,並非原封不動複製整套 Engram。

Engram 是什麼:N-gram Hash Lookup 與 Context Gate 流程圖
Engram 先用最近幾個 token 決定查哪一列,再由完整語境形成的隱藏狀態替結果把關;索引與是否採用,是兩件不同的事。

紙上演算:4 步走完一次 Hash Lookup

以下數字是為了教學自訂的玩具例子,不是 Qwen 或 DeepSeek 的真實 token ID 與 Hash 公式。假設分詞器把「New York City」轉成 [71, 208, 35],現在模型剛讀到 City

步驟 1:取出以目前 token 結尾的 N-gram

Bigram 是 [208, 35],trigram 是 [71, 208, 35]。Engram 處理的是這種短而固定的局部片段,不是把整段對話拿去做全文搜尋。

步驟 2:用 Hash 把片段映射到表格位置

玩具 Hash 假設把 bigram 映射到第 4 格、trigram 映射到第 9 格。真正實作會用多個 Hash head 與質數大小的表,降低單一碰撞造成的破壞;但 Hash 仍可能讓不同片段共用位置,所以查到的向量不是一筆可讀、可逐字驗證的百科資料。

步驟 3:只取回幾列向量

系統不用掃過整張表,而是直接取回第 4、9 格的向量,再串接、投影成模型可用的形狀。這就是 O(1) lookup 的直覺:表從 10 億列長到 1,000 億列,不代表每次要逐列搜尋;每個 token 仍只碰固定數量的位置。

步驟 4:讓完整語境決定要不要用

查表索引只看短 N-gram,但 gate 的判斷會讀取模型當下的隱藏狀態。也就是說,同樣查到「New York City」的向量,在談地理時可能得到較高權重,在無關或噪音語境裡則可能被壓低。最後,經過短因果卷積處理的查表結果以 residual 方式注入模型層。

Engram 的 5 個零件:它真正省下什麼?

  1. Token 正規化與壓縮:DeepSeek 論文先正規化字元、大小寫等可合併形式,讓語意相近但表面不同的 token 不必各占一套組合。
  2. Suffix N-gram:取目前位置結尾的二連詞、三連詞等短片段,捕捉姓名、術語、固定搭配與局部模式。
  3. Multi-head Hash:同一片段經不同 Hash 映射,讓碰撞風險不要集中在單一表格位置。
  4. Embedding table:訓練期間和主模型一起學習的巨大向量表;推論時只按索引拿出少數列,因此主要成本是儲存、搬運與少量投影。
  5. Context gate:用動態隱藏狀態判斷靜態查表結果是否適合當下語境,抑制碰撞或歧義帶來的噪音。

它省下的不是所有推理,而是把一部分「高度重複、可用短片段索引」的記憶工作,從深層神經網路的即時計算搬到查表。DeepSeek 的配置研究也呈現 U 型取捨:把更多參數移到 Engram 起初會改善效率,但超過合適比例後,動態推理能力會受損。換句話說,記憶不能完全取代運算

Engram、MoE、KV Cache、RAG 差在哪?

這四個名詞都可能被籠統地叫作「記憶」或「稀疏化」,但它們其實回答四個不同問題:

  • Engram:「這個短 token 組合對應哪列學習向量?」選的是表格列,主要動作是 lookup。
  • MoE:「這個 token 該交給哪些專家網路運算?」選的是會執行矩陣乘法的權重路徑。
  • KV Cache:「這次對話前面已算過哪些注意力狀態?」保存本次推論的工作記憶,通常會隨上下文長度增加。
  • RAG:「外部文件裡有哪些可取回段落?」先搜尋可更新的文件,再把文字證據放進提示詞。
Engram 是什麼:Engram、MoE、KV Cache、RAG 與記憶體路徑比較圖
先問「系統選的是表格列、專家權重、對話狀態,還是外部文件」,就不容易把四種機制混在一起;下半部則是本機查表時的三種資料路徑。

若你想補足相鄰概念,可以先讀 LLM 推論引擎白話指南,再用 本機 LLM 記憶體指南理解權重、KV Cache 與運行時的容量分工。

Qwen3.8-Flash-Next 案例:125B、6B、51B 要怎麼讀?

截至 2026 年 9 月 3 日,Qwen 官方模型庫把三個核心數字分開寫:125B 主模型參數、每個 token 啟用 6B,以及額外 51B 的 N-gram embeddings官方模型卡還列出 4B MTP,公開成品合計約 180B;因此不能把它簡化成一句「176B 模型只跑 6B」後就停止思考,因為各部分代表不同資源:

  • 125B 主模型:包含稀疏專家等模型權重,仍需要推論引擎管理與執行。
  • 6B active:描述每個 token 實際啟用的主模型參數量,是估算計算量的重要線索,但不等於整套模型只占 6B 的儲存或記憶體。
  • 51B N-gram:額外的查表記憶,可放在 accelerator 以外的主機記憶體;每次只預取固定少量向量。

Qwen 架構論文把單一 N-gram 層放在第 2 層,讓索引能提早確定,並嘗試把主機記憶體預取和前一層計算重疊。這是針對搬運延遲的架構安排,不代表任何 SSD、任何容量、任何單人電腦都會自動得到同樣吞吐。

若你要看整個模型而不只 Engram,可接著讀 Qwen3.8-Flash-Next 架構解析;準備本機量化前,則先看 Qwen3.8-Flash-Next 本機 GGUF 評估GGUF 量化完整指南

拆解「SSD 跑 1T 模型」:三層證據不要混寫

已量測:100B Engram table 放在主機 DRAM

DeepSeek 論文的系統實驗,把 100B Engram table 全部放在 host DRAM,硬體是 NVIDIA H800,批次含 512 個序列,序列長度分布在 100 到 1,024。4B 與 8B backbone 配置的吞吐損失分別約 1.9% 與 2.8%。這支持「只搬運少量已知索引,主機記憶體表可以和 GPU 計算重疊」;它不是消費級 NVMe,也不是 1T 表格的實測。

論文提出:把冷門長尾放進 NVMe 分層

同一篇論文進一步提出 HBM/DRAM/NVMe 階層:高頻片段留在較快記憶體,低頻長尾放到 SSD,並利用索引可提前算出的特性做非同步預取。這是有工程依據的設計方向;在現有主要證據中,前述不到 3% 的數字仍只對應 DRAM 實驗,因此不能原封不動套到家用 SSD。

尚待逐機驗證:1T 表在本機是否達到可接受互動速度

若「1T」是查表參數,純儲存下限約為 FP16 2TB、8-bit 1TB、4-bit 0.5TB,尚未計入索引、對齊、模型其他權重與執行時空間。檔案放得下,只回答容量問題;真正速度還取決於表格量化是否被該引擎支援、查詢局部性、預取命中率、可用 RAM、SSD 隨機讀取、併發量與作業系統 page cache。

因此更精確的句子是:Engram 讓超大查表記憶有機會被分層到較便宜儲存;截至上述材料,它尚不足以證明一般電腦能靠 SSD 取得「1T 稠密模型」等級的運算或能力。

RAM/page cache/NVMe 決策:先看資料走哪條路

使用 memory-mapped 檔案時,「模型檔在 SSD」不等於每次查表都直接讀 SSD。作業系統會把讀過的檔案頁留在 page cache;命中時從 RAM 取資料,未命中時才要由儲存裝置搬入並產生 major page fault。llama.cpp 官方文件也提醒,mmap 雖能按需載入,但記憶體壓力造成的換頁會傷害效能。

  • 工作集能常駐 RAM:多數 lookup 命中 DRAM,延遲較穩定;這最接近論文的 host-memory 路徑。
  • 部分命中 page cache:第一次碰到冷頁較慢,重複查詢可能加速;測試結果會受 warm cache 影響。
  • 頻繁 NVMe miss:大量離散讀取與 major page fault 進入關鍵路徑,磁碟忙碌、token 間延遲抖動或吞吐下滑,容量再大也不代表體驗順暢。

想實際評估某個本機版本,請把「冷啟動第一輪」和「相同提示第二輪」分開記錄,並同時看 tokens/s、首 token 時間、RAM、swap、磁碟讀取量與 major page faults。只貼一個暖機後的 tokens/s,無法回答表格是否真的從 SSD 穩定供應。

新手判讀規格的 5 步驟

  1. 先拆參數:分開寫主模型總參數、active parameters、N-gram table 與其他輔助模組,別只看最大那個數字。
  2. 再問「選」還是「算」:每個 token 是查幾列表格、啟用幾個專家,還是讓所有權重都參與矩陣運算?
  3. 確認實際儲存層:官方結果用 HBM、host DRAM、memory mapping 還是 NVMe?不要把其中一層的數字移植到另一層。
  4. 檢查推論引擎:模型格式、N-gram table、量化、預取與 gate 都必須被版本明確支援。僅有權重檔不保證執行路徑完整。
  5. 用你的目標驗收:單人低併發可以容忍較慢首輪;多人服務在意吞吐和尾端延遲。兩種情境不能共用一句「跑得動」。

若你正在規劃本機環境,Granite 4.2 本機記憶體實例能幫你練習「模型檔大小不等於完整執行時占用」這個同一套判讀方法。

Engram 是什麼最容易答錯?5 個常見坑

  • 把查表參數當成稠密權重:兩者都能計入 parameter count,但每個 token 的資料路徑與 FLOPs 不同。
  • 把 Engram 當成可編輯知識庫:表裡是訓練得到的 latent vector,不是可以搜尋、引用、逐條刪改的文件。
  • 以為它會在對話中自動長大:截至 2026 年 9 月 3 日,兩篇論文與公開實作描述的是推論時查詢訓練所得的 table,並未提供把聊天內容寫回永久 N-gram 權重的機制。
  • 忽略 Hash collision:多個 head 與 contextual gate 能降低影響,但不能把 Hash table 說成零碰撞、逐字精確的資料庫。
  • 只測 warm cache:第二輪變快可能是頁面已進 RAM,不代表冷門 N-gram 每次都能以相同速度從 NVMe 取回。

截至 2026 年 9 月,哪些結論可能再變?

Engram 的數學角色相對穩定,但本機支援仍會快速演進:推論引擎可能加入分離式 N-gram 檔、直接 I/O、量化或更好的預取;新硬體也會改變 RAM 與 NVMe 的成本平衡。判讀新消息時,優先尋找四項可重現資訊:commit/版本、完整硬體、冷暖快取條件,以及主模型與 N-gram table 各自的格式和大小。

想自行閱讀最小實作,可看 DeepSeek 官方 Engram demo;官方明確把它定位為原理展示,正式部署仍需要客製 CUDA kernel 與分散式工程。這正好提醒我們:概念能跑,和生產環境能高效跑,是兩道不同門檻。

Engram FAQ:8 個一句話先回答

1. Engram 就是更大的 token embedding 嗎?

不完全是。普通 token embedding 以單一 token 查表;Engram 以二連詞、三連詞等短片段 Hash 後查表,還有依賴完整語境的 gate 與注入層。

2. 51B N-gram 參數每個 token 都會運算嗎?

不會整張表一起運算。每個位置只依 Hash 索引取固定少量的列;但資料搬運、投影、gate 和快取管理仍有成本。

3. Qwen 的 6B active 等於只需要載入 6B 嗎?

不等於。6B 是每 token 啟用參數量,主模型總權重、N-gram table、KV Cache 與執行時緩衝仍要有相應的儲存或記憶體路徑。

4. 有大 SSD 就能流暢執行 1T Engram 模型嗎?

容量足夠只是第一關。互動速度還取決於 RAM 工作集、page-cache 命中、隨機讀取、預取、量化格式與推論引擎支援,必須以完整環境的冷暖測試回答。

5. Engram 可以取代 RAG 嗎?

用途不同。Engram 是訓練進模型的內部向量記憶;RAG 取回可更新、可顯示來源的外部文件。需要最新私有資料或可追溯證據時,可搭配 RAG 是什麼完整教學理解另一條資料路徑。

6. Engram 可以取代 MoE 嗎?

不能直接互換。MoE 把 token 路由給少數專家做運算;Engram 把短片段路由到少數表格列做 lookup。兩者可以同時存在,Qwen3.8-Flash-Next 正是這種組合。

7. Hash collision 會不會讓模型記錯?

碰撞是設計必須管理的噪音。多個 Hash head、訓練共同適應與 contextual gate 都在降低其影響,但不能把結果理解成資料庫主鍵般的一對一保證。

8. 一般人現在最值得做的測試是什麼?

做冷暖兩輪、同時量 I/O。固定模型、提示詞與輸出長度,重開程序測第一輪,再重複同一提示;一起記錄 tokens/s、首 token、RAM、swap、磁碟讀取和 major page faults。

給新手的 5 個重點

  1. 看到 Engram,先翻譯成「短 N-gram 的 Hash 查表+語境 gate」。
  2. 總參數看容量,active parameters 看主要計算,兩者不要混成能力排名。
  3. host DRAM 的實測結果不能直接代替 NVMe 或家用電腦結果。
  4. SSD 能放冷資料,但 page fault、預取命中與隨機 I/O 決定它會不會卡。
  5. 判斷「跑得動」時,務必補上格式、引擎、硬體、冷暖快取與互動目標。

想建立更完整的 AI 底層知識,可以瀏覽 AlphaLab AI 專區;若想把這套判讀能力延伸成可實作的工作流,也可查看 AlphaLab 課程

接著閱讀

左右滑動查看更多推薦

結語:先問查了什麼,再問算了多少

下次再看到「SSD 裝下 1T 參數」,先不要急著相信或嘲笑。沿著本文的錨點檢查:N-gram Hash Lookup 查的是哪幾列?Context Gate 如何把關?主模型每個 token 又實際算了多少?只要把容量、搬運與計算拆開,Engram 的價值會更清楚,1T 的數字也不再能單獨帶走結論。

ALPHALAB 社群

有問題?來 Telegram 聊

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

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

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

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