模型入門課 · 第一課
上面五條是同一個漸層,差別只在可以用幾階顏色去畫它。
前三條你幾乎分不出來,第四條開始看得到色帶,最後一條只剩四塊。這件事叫「量化」, 它是你之後能在自己筆電上跑模型的原因——也是這一課要講清楚的第一件事。
序章
這一課後面會請你在自己的電腦上真的跑一個模型。先花兩分鐘確認機器符合條件, 比讀到一半才發現跑不了好。
Apple M5)與記憶體大小(例如 24 GB)。
晶片名稱以 Apple M 開頭就對了。如果看到 Intel,這一課的動手部分在你的機器上跑不了。26.6)與可用空間(例如 776Gi 可用)。
第一個模型約 1.7 GB,留 5 GB 以上比較安心。我們用 uv 來裝東西。它是一個獨立的小程式,不會動到系統原本的設定——
這點很重要,因為 macOS 內建的 Python 會擋住一般的安裝方式,直接照官方文件做反而會失敗。
installed 之類的訊息。
裝完關掉終端機再重開一次,否則接下來的指令會說找不到 uv。uv --version,看到版本號(例如 uv 0.11.28)就成功了。第一節
整條路是六課。你現在在第一站。每一課結束時,你手上都會多一個真的能用的東西—— 不是筆記,是東西。
目前只有第一課完成。順序與內容都還可以調整——如果第一課的深淺或節奏不對, 後面的會照著調。
第二節
這是最需要先扭轉的直覺。多數人第一次想像「AI 模型」時,腦中的圖是一個超大的答案庫: 你問問題,它去裡面找最接近的那筆,然後唸出來。
模型裡面沒有答案。它裡面只有一堆數字——那些數字記錄的是「模式」, 不是「內容」。
資料庫像一個帶著書的圖書館員:你問他,他去書架上找那一頁,翻給你看。 找不到就說沒有。
模型像一個讀過很多書、但身上沒帶任何一本書的人:他答得出來, 是因為讀的過程改變了他;他也可能答錯、記混、或者對他沒讀過的東西一本正經地掰。
這個差別有實際後果:你不能「把一份文件加進模型裡」然後期待它去查。 那不是模型的運作方式。要讓模型用上新資料,你要嘛在問的時候把資料一起給它, 要嘛用資料去改變它內部的數字——那正是下一節四層改造法在講的事。
你會看到模型叫「3B」「7B」「70B」,B 是十億(billion),指的是模型裡面有幾個數字。 3B 就是三十億個數字。
這些數字統稱「權重」。訓練就是反覆微調這些數字的過程;模型的「知識」就藏在這些數字的組合裡, 沒有任何一個數字對應到任何一句話。
參數越多,通常越聰明,但也越大、越慢、越吃記憶體。這一課你會跑的是一個 3B 的模型—— 在筆電上算小的,但已經足夠讓你看清楚整件事怎麼運作。
第三節
這是這一課的核心。「訓練一個模型」這句話,其實橫跨四件成本差距達百萬倍的事。 分不清楚它們,你會把一件下午就能做完的事,講成一個做不到的計畫。
| 層 | 改什麼 | 要多久 | 要多少錢 | 一般筆電做得到? | 能改變什麼 | 改不了什麼 |
|---|---|---|---|---|---|---|
| ① 換說法 | 你給它的指令 | 幾秒 | 免費 | 可以 | 語氣、格式、這一次的行為 | 它本來就不知道的事 |
| ② 加一小層 (LoRA) |
外掛一小組新數字,原本的權重不動 | 幾十分鐘到幾小時 | 用自己的電腦=免費 | 可以 | 穩定的語氣、格式、聽你的規則 | 基礎的推理與知識上限 |
| ③ 完整微調 | 模型裡全部的數字 | 幾天 | 租 GPU,數百至數千美元 | 不行 | 更深層的行為改變 | 基礎能力的天花板 |
| ④ 從零訓練 | 從無到有造一個新模型 | 數月 | 數百萬美元起 | 不行 | 一切 | — |
先問自己一句:「我想改的東西,第一層做得到嗎?」大多數時候答案是可以—— 換個說法、把規則寫清楚,就解決了。
只有當你需要它每次都照某種方式做、而且用講的講不動時,才需要第二層。 第二層是絕大多數個人專案的終點,也是這門課第三課要做的事。
第三、四層不是「比較認真」的版本,是完全不同量級的工程。 知道它們存在、知道自己不在那裡,比會做它們更重要。
第四節
序章你記下的那個記憶體數字,現在用得到了。在 Apple Silicon 上, CPU 跟 GPU 共用同一份記憶體,模型要整個放進去才跑得動——所以那個數字就是你的上限。
模型佔多少記憶體,主要看兩件事:參數量(幾個 B)與量化到幾位元。 下面這張表以 4-bit 為準——那是目前個人電腦上最常用的規格。
| 模型大小 | 檔案約多大 | 跑起來約要多少記憶體 | 16 GB 的機器 | 來源 |
|---|---|---|---|---|
| 3B | 1.7 GB | 約 2 GB | 輕鬆 | 實測 |
| 7–8B | 約 4–5 GB | 約 5–6 GB | 可以 | 估算 |
| 13B | 約 7–8 GB | 約 9 GB | 會有點緊 | 估算 |
| 70B | 約 38–40 GB | 約 42 GB | 不行 | 估算 |
「實測」那一列是在一台 M5 / 24 GB 的 Mac 上跑出來的實際數字: 模型檔 1.7 GB、執行時峰值記憶體 1.978 GB。其餘為依參數量推估,實際值會因模型而異。
粗略的心算法:4-bit 模型跑起來大約要「參數量的 0.6 倍 GB」再加一點餘裕。 3B 就約 2 GB,8B 就約 5 GB。你的機器記憶體還要留給系統跟其他程式, 抓一半以下比較安全。
模型裡的每個數字,原本用 32 位元記錄——那能表示大約 43 億個不同的值,精細到不必要。
量化就是改用比較少的位元去記同一個數字。位元數決定能表示幾階:
32 位元 → 約 43 億階 · 16 位元 → 約 6.5 萬階
8 位元 → 256 階 · 4 位元 → 16 階 · 2 位元 → 4 階
注意 4-bit 是 16 階,不是 4 階——位元數是次方,不是階數本身。這是最常見的誤會之一。
回頭看最上面那五條色帶:那正是同一個漸層分別用這幾種階數畫出來的。 前三條你分不出差別,因為 256 階在那個寬度上每一階不到一個像素; 4-bit 的 16 階開始看得出色帶;2-bit 的 4 階就只剩色塊了。
模型的情況也類似:8-bit 幾乎感覺不出品質差異,4-bit 有輕微損失但一般夠用, 2-bit 通常就明顯劣化了。這是業界的一般經驗,不同模型與量化方法的實際結果會有出入。
第五節
接下來三個指令,你會在自己的電腦上裝好一套工具、下載一個模型、然後跟它講話。 整個過程結束後,那個模型就住在你的硬碟裡了——不需要帳號、不需要付費, 斷網也還在。
我們用的是 MLX,Apple 自己做的機器學習框架,專門為 Apple Silicon 最佳化。 選它還有一個好處:這套工具一路用到最後,第三課要做微調時不用換。
Installed 18 executables: 開頭的清單。實測裝到的版本是
mlx-lm 0.31.3 與 mlx 0.32.0。===== 中間夾著模型的回答,接著是速度統計。
實測的生成速度是每秒 67 個字元單位,峰值記憶體 1.978 GB。Llama-3.2-3B-Instruct-4bit,
名字最後那個 4bit 就是第四節講的量化——最上面色帶裡的第四條。
三十億個數字,每個只用 16 階去記,壓成 1.7 GB,跑在你的筆電上。
第六節
左邊是很多人(包括一小時前的你,可能)相信的說法,右邊是實際情況。
第七節
第二課:資料——模型的品質從哪來。 第三課要讓模型學會你的規則,而它學得好不好,幾乎完全取決於你餵它什麼。 第二課會講什麼樣的資料有用、什麼樣的資料會直接毀掉一個模型, 結束時你手上會有一份自己的訓練資料。
附錄
前面幾節的概念——模型不是資料庫、四層改造法、量化——都是跨平台通用的,照讀就好。 只有第五節的動手部分不行:那用的是 MLX,Apple 自家的框架,只跑在 Apple Silicon 上。
你可以改用 LM Studio:一個有圖形介面的程式,不用打指令, 可以下載並執行同樣這類量化模型。它在 Mac 上的底層用的正是 MLX,所以概念完全一樣。
3B 和 Q4),下載它。系統需求(官方文件):x64 處理器需支援 AVX2 指令集,或 Snapdragon X Elite 的 ARM 機型; 建議 16 GB 以上記憶體、獨立顯示卡 4 GB 以上顯示記憶體。沒有獨顯也能跑,只是會慢很多。