本篇文章更新時間:2025/12/30
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
內容目錄
在 4MHz 的 Z80 上跑聊天 AI?Z80-μLM 告訴我們「能,而且很有趣」
編輯前言:這是一個讓我看完之後忍不住大笑、又默默佩服的專案——作者竟然真的把一個可聊天的「微型語言模型」塞進 Z80 這種 1970 年代的 8-bit 處理器上,而且還是 2-bit 量化、40KB 的 .com 檔。本文整理自原專案:GitHub - HarryR/z80ai。
核心觀點 (Key Takeaways)
- Z80-μLM 是一個能在 Z80/CP-M 上運行的超迷你語言模型:僅用 40KB,包含模型、推論程式與聊天 UI。
- 使用 trigram hash + 2-bit quantization + 16-bit 整數推論:所有運算完全不需要浮點數。
- 不是智慧聊天機器人,但能呈現性格與基本互動:透過簡短的 1-2 字回應反而呈現一種「迷你 AI 的個性」。
深入解析
這篇專案的核心精神,是作者提出的一個問題:「LLM 可以小到什麼程度,仍然保有一點點 personality?」。結果是:小到能在 1976 年的 4MHz Z80 上運行,而且還能跟你對話。
它不會通過圖靈測試,但它能讓你在綠幕前微笑。
1. 設計哲學:越小越好、越復古越好
Z80-μLM 的架構極度簡化:
- 輸入:128 個 trigram bucket(加上 128 個 context)
- 隱藏層:例如 256 → 192 → 128
- 輸出:每個字元一個神經元
- Activation:ReLU
- 推論:全部以 16-bit 整數執行
更有趣的是 trigram hash,它使得模型不在乎字詞順序,也天然容錯打字錯誤:
- "hello there" 與 "there hello" 產生完全相同的 bucket
- "helo ther" 只會變得「有點相似」
這種方式的確捨棄語意,但也讓 Z80 這麼小的 CPU 有機會玩「語言模型」這種東西。
2. 2-bit 量化:模型真的小到不能再小
每個權重只有 2 bits,也就是 {-2, -1, 0, +1}。
原文甚至展示了 Z80 怎麼從 8-bit packed 權重中拆出 2-bit 值,然後做加減。
這段程式看起來像是考古教材,但卻是現在 LLM 技術的極小化版本。
3. 不靠句子生成,而靠「氣味分類」互動
作者坦白說:
- 它不懂你的語意。
- 它只看「你的句子有哪些 trigram bucket」。
- 然後選出最相關的 1-2 個字元作回應。
但神奇的是,透過訓練,它真的能呈現出「個性」。例如:
- OK
- WHY?
- R U?
- MAYBE
這種簡短但帶情緒的輸出,反而讓模型有種迷你 AI 的 charm。
筆者心得與啟發
看完專案,我最大的感想是:我們現在習慣的 LLM,是不是其實太大、太複雜?
Z80-μLM 雖然「不理解語意」,但它提供了另一種可能:
- 不是每個應用都需要 GPT-4 或巨型 Transformer。
- 某些場景(例如:嵌入式、舊電腦、限制環境)反而更適合「微型模型 + 風格化回答」。
而且我特別喜歡作者的哲學:
這不是一般的聊天機器人,但它很小、很實用,有時候這正是你需要的。
這句話其實也提醒了我:AI 的創新不一定要追求 SOTA,有時候把技術帶到不可能的地方,本身就是很迷人的突破。
如果你對「極限化 LLM」、「嵌入式 AI」、或「復古電腦」有興趣,Z80-μLM 是一個值得深入研究的項目。
