讀後筆記:Z80-μLM 如何把小型語言模型塞進 1976 年的 8-bit 電腦?

本篇文章更新時間: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 是一個值得深入研究的項目。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon