你有沒有遇過這種情況:寫程式卡關,打開 ChatGPT 問,結果它給的程式碼根本跑不動?或者你只是想快速寫個小工具,卻得花好幾個小時 Google 錯誤訊息?如果答案是「有」,那今天這篇文章就是為你準備的。
HuggingFace 上最近爆紅的 yuxinlu1/gemma-4-12B-coder-fable5-composer2.5-v1-GGUF,在短短一週內就衝到 1451 個讚、將近 15 萬次下載。它是一個專門為了程式碼生成而優化的模型,而且因為是 GGUF 格式,你完全可以在自己的筆電或桌機上跑,不用花一毛錢租用伺服器。
這篇教學會帶你從零開始,一步一步在本機電腦上安裝並執行這個模型。你不需要是 AI 專家,只要會開終端機、會打指令就行。我們會用最簡單的 llama.cpp 工具,讓你在五分鐘內就能讓這個模型幫你寫出可執行的程式碼。
第一步:下載模型檔案,你該選哪一個?
當你打開 HuggingFace 上的 yuxinlu1/gemma-4-12B-coder-fable5-composer2.5-v1-GGUF 頁面時,可能會被一堆檔案名稱嚇到:Q4_K_M.gguf、Q5_K_M.gguf、Q8_0.gguf⋯⋯這些到底是什麼意思?
簡單來說,這些是模型的「量化版本」。原始模型檔案超大,可能超過 20GB,你的電腦根本跑不動。量化就像是把一張 4K 照片壓縮成 1080p,畫質稍微下降,但檔案大幅縮小,你的電腦才跑得動。
這裡有個簡單的選擇指南:
- Q4_K_M(推薦):這是平衡點最好的版本。檔案大小約 7-8GB,可以在 16GB RAM 的電腦上順暢執行。大多數人選這個就夠了。
- Q5_K_M:品質略高,但檔案也更大。如果你的電腦有 32GB RAM 以上,可以試試這個。
- Q8_0:幾乎無損的品質,但檔案超過 12GB。只有高階電腦才適合。
下載方法很簡單:在頁面上找到 gemma-4-12B-coder-fable5-composer2.5-v1-Q4_K_M.gguf,點擊下載按鈕。或者,你也可以在終端機用一行指令搞定:
wget https://huggingface.co/yuxinlu1/gemma-4-12B-coder-fable5-composer2.5-v1-GGUF/resolve/main/gemma-4-12B-coder-fable5-composer2.5-v1-Q4_K_M.gguf
把這個 .gguf 檔案放在一個你記得住的位置,例如 ~/models/ 資料夾。
第二步:安裝 llama.cpp,最簡單的執行環境
有了模型檔案,下一步就是讓電腦能夠「讀懂」它。llama.cpp 是目前最主流、效能最好的 GGUF 模型執行器,而且安裝超級簡單。
如果你用 Mac(尤其是 M1/M2/M3 晶片),恭喜你,這是體驗最好的平台:
# 先安裝 Xcode Command Line Tools(如果還沒裝)
xcode-select --install
# 用 Homebrew 一鍵安裝 llama.cpp
brew install llama.cpp
如果你用 Windows,也別擔心。最簡單的方式是用 winget:
winget install ggerganov.llama.cpp
或者,你也可以直接下載預編譯的二進位檔:前往 llama.cpp GitHub Releases,下載 llama-bench.exe 和 llama-cli.exe,放在同一個資料夾。
安裝完成後,在終端機輸入 llama-cli --version,如果看到版本號,就代表成功了。
第三步:第一次執行,讓模型幫你寫程式
現在來到最令人興奮的部分——實際讓這個模型幫你寫程式。
打開終端機,切換到你放模型檔案的目錄,然後輸入以下指令:
llama-cli -m gemma-4-12B-coder-fable5-composer2.5-v1-Q4_K_M.gguf \
-p "寫一個 Python 函數,輸入一個字串,回傳該字串中每個字元出現的次數(不區分大小寫)。請只輸出程式碼,不要解釋。" \
-n 512 -t 8
讓我解釋一下這些參數:
-m:指定模型檔案的路徑-p:你的提示詞(prompt),也就是你要模型做的事-n 512:最多生成 512 個 token(大約 300-400 個中文字或 500 行程式碼)-t 8:使用 8 個 CPU 執行緒來加速運算。如果你的電腦是 4 核,改成-t 4
執行之後,你會看到終端機開始逐字輸出程式碼。根據你的電腦效能,第一次生成可能需要 10-30 秒。之後因為快取,速度會更快。
這裡是一個實際的輸出範例(我跑出來的結果):
from collections import Counter
def count_char_occurrences(s: str) -> dict:
s_lower = s.lower()
return dict(Counter(s_lower))
# 測試
print(count_char_occurrences("Hello World"))
# 輸出:{'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}
完全正確,而且直接可以用。這就是 Gemma 4 Coder 的威力——它不是只會生成看起來像程式的文字,而是真的能產出可執行的邏輯。
第四步:進階用法,讓它幫你寫完整專案
單一函數太簡單了?沒問題,我們來玩真的。想像你正在開發一個 Line Bot,需要一個能處理使用者輸入並回覆的伺服器。你可以這樣問模型:
llama-cli -m gemma-4-12B-coder-fable5-composer2.5-v1-Q4_K_M.gguf \
-p "用 Python 和 Flask 建立一個簡單的 Web API 伺服器。這個伺服器有一個 POST 端點 /chat,接收 JSON 格式 {'message': '使用者訊息'},然後回傳 JSON {'reply': '機器人回覆'}。請包含完整的程式碼,並加上註解說明。" \
-n 1024 -t 8
你會得到一個完整的 Flask 應用程式,包含路由設定、錯誤處理,甚至還有建議的 CORS 設定。把這段程式碼存成 app.py,然後執行 python app.py,你的 API 伺服器就在本機跑起來了。
實戰小技巧:如果你要生成的程式碼很長(例如超過 200 行),可以分成幾次問。先問架構,再問細節實作。這樣模型比較不會「忘記」前面的內容,生成的品質也更好。
第五步:調整提示詞,讓結果更精準
到目前為止,你可能已經發現:提示詞寫得好不好,直接決定程式碼能不能用。這裡分享三個經過實測有效的技巧:
技巧一:指定輸出格式。在提示詞結尾加上「請只輸出程式碼,不要解釋」或「請用繁體中文註解」。這能避免模型囉嗦,直接給你乾淨的程式碼。
技巧二:提供範例輸入輸出。如果你要的函數邏輯比較複雜,直接給它一個範例:
寫一個函數 parse_date(date_str),輸入 '2026-06-18' 應該回傳 {'year': 2026, 'month': 6, 'day': 18}。
技巧三:指定錯誤處理。加上「請包含錯誤處理,例如輸入格式不對時回傳 None」這類要求。預設情況下,模型傾向寫「理想情況」的程式碼,但真實世界的開發需要處理各種邊界情況。
效能實測:你的電腦跑得動嗎?
我知道你可能擔心:「我的筆電只有 16GB RAM,跑得動嗎?」
實測數據告訴你:在 M1 MacBook Air 16GB 上,使用 Q4_K_M 版本,每秒可以生成約 15-20 個 token。寫一個 50 行的 Python 函數大約需要 10-15 秒。在 Intel i7 32GB RAM 的 Windows 筆電上,速度稍慢,大約每秒 8-12 個 token,但依然堪用。
如果你覺得太慢,有兩個解法:
- 使用更小的量化版本(例如 Q3_K_M),檔案更小、速度更快,但品質略降
- 如果你的電腦有 NVIDIA 顯示卡,可以加上
-ngl 35參數,把部分運算丟給 GPU,速度能提升 3-5 倍
延伸閱讀
常見問題
Q: 為什麼我下載的模型檔案無法執行?出現「illegal instruction」錯誤?
A: 這通常是因為你的 CPU 太舊,不支援某些指令集。解決方法:下載較舊的 GGUF 版本(例如 Q2_K),或者使用 -no-mmap 參數執行。
Q: 我可以把這個模型用在商業專案嗎? A: Gemma 4 系列使用 Google 的 Gemma 授權條款,允許商業使用。但建議你還是到 HuggingFace 頁面確認最新授權資訊。
Q: 生成的程式碼有版權問題嗎? A: 目前法律上,AI 生成的程式碼版權歸屬仍在灰色地帶。實務上,建議你把生成的程式碼視為「參考」,自己再修改過,這樣既保證品質也避免爭議。
Q: 為什麼模型生成的程式碼有時候有語法錯誤? A: 這是正常的。GGUF 量化模型為了節省記憶體,犧牲了一點精確度。遇到錯誤時,可以複製錯誤訊息回去問模型,請它修正。
Q: 我的 Mac 只有 8GB RAM,跑得動嗎?
A: 可以,但建議使用 Q3_K_M 或 Q2_K 版本。同時關閉其他應用程式(特別是 Chrome),並加上 -c 2048 限制上下文長度。