跳到主要內容

【2026 最新】Heretic LoRA 匯出怎麼接回 GGUF?基底相容、轉換載入與撤回教學

最後更新: ·
Heretic LoRA 匯出 教學首圖

你已下載一份 GGUF,本機模型跑得動;現在想用 Heretic 調整寫作風格,卻卡在「存成 LoRA 後,要放哪裡?」這篇 Heretic LoRA 匯出教學,帶你把基底版本、格式轉換、載入與回復接成一條可檢查的路。

寫給第一次碰 adapter、但已能啟動本機模型的讀者。先用白話弄懂四個零件,再照步驟準備交付;還沒準備好模型環境,也能先核對檔案與版本。本篇的成功標準是接對並能撤回,風格是否更好則另行驗收。

以下按 2026 年 11 月 4 日查閱的 Heretic v2.0.0 發布紀錄與 llama.cpp 指定提交說明。本文未執行模型修改、adapter 轉換或推論;指令是依官方程式與文件整理的操作範本,不填入效能或品質成績。

先說結論:可交付補丁=同一基底+格式轉換+載入驗收+可撤回

把模型想成一本原稿,LoRA 是針對這一本寫的修訂紙;GGUF 是方便閱讀器載入的裝訂格式。修訂紙能輸出,不代表任何一本同名書、任何閱讀器都接得上。保留原始 GGUF,將 adapter 另外載入,是這份指南的起點。

  • 先確認 GGUF 的上游模型 ID、精確 revision 與量化來源,再談重用。
  • Heretic 的 PEFT adapter 和 llama.cpp 的 GGUF adapter 是兩種交付格式,需經轉換。
  • 先在單一測試程序驗收;停用效果與釋放記憶體分開檢查。

一、Heretic LoRA 匯出前,先認識四個零件

① HF 基底權重:「原稿」。Hugging Face 模型倉儲通常還有 config、tokenizer 和聊天模板。權重負責運算,斷詞器決定文字怎麼切成 token,模板決定對話怎麼包裝。相同參數量或相近檔名,都不足以認定是同一份基底。

② GGUF:「裝訂格式」。llama.cpp 模型文件說明其模型使用 GGUF。量化是降低數值儲存精度的另一個選擇;副檔名一樣,仍要核對架構、來源與量化方式。想補觀念,可先讀 GGUF 與量化教學。

③ PEFT LoRA:「修訂紙」。LoRA(低秩調適)用額外的小矩陣表達部分權重變動;PEFT 是管理這類 adapter 的套件。依 PEFT checkpoint 文件,adapter 權重和設定分開保存,設定含基底資訊。它並不等於整份原模型。

④ 推論引擎:「閱讀器」。這篇用 llama.cpp 的 llama-server 示範接線。你原本使用的桌面程式可能內嵌另一版引擎,請核對該版本自己的 adapter 格式與載入入口;不能因為底層也叫 llama.cpp,就替整個介面預填通過。可搭配 推論引擎原理閱讀。

Heretic LoRA 匯出路徑:PEFT adapter 轉 GGUF adapter,再與同源基底載入
AlphaLab 流程示意:上方保存同源基底,下方轉換補丁;兩者在推論引擎會合,原始檔各自留存。

二、第一關:你手上的 GGUF,究竟來自哪一本原稿?

先在模型發布頁找 base model、revision、轉換工具和量化紀錄。記下本機 GGUF 的 SHA-256,這是內容指紋,能幫你識別檔案是否改變;指紋本身不會證明上游模型是誰。上游資訊缺漏,就向發布者查清,或另選來源可追溯的 GGUF,暫不接 adapter。

shasum -a 256 models/base.gguf
./llama.cpp/build/bin/llama-server --version

以上路徑要換成自己的檔案;第二行針對已建置的 llama.cpp。把結果、HF 模型 ID、完整 commit、量化型別、tokenizer/模板版本,寫進自己的交付單。再記 Heretic 版本、設定檔指紋、trial 編號、adapter 指紋與轉換器提交。這張單像零件保固卡,下一次搬電腦時才找得回配對。

練習可選 Qwen 官方的 Qwen3-0.6B這類小模型,但必須連同同一 revision 的 GGUF 使用。這是縮小交付練習的範例,不是本文驗證過的風格修改組合;自己的引擎若在架構或 tensor 對應處報錯,就停在那一關。

三、Heretic LoRA 匯出:用良性風格目標,另存 adapter

①「先看設備」:修改階段與聊天階段分開估

已有 GGUF 跑得動,只能說明目前推論配置可用。Heretic 另需 官方安裝頁列出的 Python 3.10 以上與 PyTorch 2.6 以上;PyTorch 安裝要配合硬體。記憶體還會受模型、精度、批次和修改器影響。先確認空間與資源,再在獨立虛擬環境安裝 python -m pip install heretic-llm==2.0.0,用 python -m pip show heretic-llm核對。

②「選對食譜」:固定 noslop,避免誤跑預設工作

本篇只處理「少用華麗套語」這個良性風格目標。Heretic 預設工作是拒答抑制,因此先建立新的工作目錄,將 v2.0.0 的 noslop 設定存成 config.toml,核對其中的 Responses with slop 與 modifier.ARA。英文詞表改善與繁中自然度的差別,留給 Heretic 去 AI 味與繁中盲評教學深入處理。

使用過 1.x 的人,先對照 官方遷移指南:舊設定與 2.x 不相容,部分欄位移入 scorer/modifier 區段,預設修改器也改成 ARA。這次從已固定的 2.0 noslop 檔出發,比混貼舊設定容易核對。

③「原稿釘版本」:先寫 model_commit,再啟動

在 config.toml 最上方、任何方括號區段之前,加入下面根層欄位。範例 commit 是查閱時 Qwen3-0.6B 的模型提交;若換模型,這兩行一起改,並核對自己的 GGUF 來源。

model = "Qwen/Qwen3-0.6B"
model_commit = "c1899de289a04d12100db370d81485cdf75e47ca"

在這個工作目錄執行 heretic。保留設定、依賴清單與啟動日誌,確認載入指定模型、revision 與 noslop 資料。另檢查 HERETIC_MODEL、HERETIC_MODEL_COMMIT 及適用的其他 HERETIC_ 環境變數;實際生效設定要和交付單一致。

④「只帶修訂紙」:選候選後,匯出到新目錄

完成候選選擇後,依 v2.0.0 的儲存與匯出流程選 Save the model to a local folder,填新的 adapter-noslop 目錄,再選 Export the LoRA only (can be merged later)。檢查輸出包含 adapter_config.json 與 adapter 權重;通常是 adapter_model.safetensors,檔案分片情況須另核對轉換器的讀取方式。

讀回設定中的 base_model_name_or_path、revision、target_modules、r、lora_alpha;欄位可能依方法或版本有所不同。若 revision 為空,用交付單和原始快照補足追溯依據,不把空值當成任意版本皆可。全程另存,不覆寫基底。

四、轉換關:PEFT adapter 變成 GGUF adapter

這一步用的是 convert_lora_to_gguf.py,和轉整份模型的腳本分清楚。本文核對 llama.cpp 提交 7071ba378afa96dcd69c41e1ec2b4912364dbee4;以下在已取得該原始碼、且 Python 轉換依賴已備妥的工作目錄執行。hf-base 放同一 revision 的基底設定,adapter-noslop 放上一步輸出,delivery 是新建交付目錄。

mkdir -p delivery
python llama.cpp/convert_lora_to_gguf.py adapter-noslop \
  --base hf-base \
  --outfile delivery/noslop-adapter.gguf \
  --outtype f16

官方轉換器將 --base 定義為基底 HF 設定目錄;這個 adapter 轉換步驟只需要設定,不要求完整基底權重。Heretic 產生修改時所需的模型資源,是前一個階段,兩者不要混算。輸出仍是 adapter,之後還要搭配基底 GGUF。

轉換成功先看三件事:程序正常結束、輸出檔存在且非空、日誌沒有 tensor/架構錯誤。改副檔名不算轉換;輸出存在也還不等於推論通過。程式對未支援架構及不符合預期的 tensor 名稱有拒絕路徑;若遇上錯誤,保留原輸出與日誌,查該提交的支援範圍,不靠刪掉報錯 tensor 硬湊。

若目標引擎的官方文件給出其他匯入路徑,先在另一份複本做小範圍驗收。以 Ollama 的模型匯入頁為例,其 GGUF 模型匯入用 FROM 指向模型;別把「匯入模型」直接當作本篇 adapter 接線已通過。此處選定 llama-server,能把載入參數與狀態讀回放在同一條驗收線。

五、載入關:先在單一本機程序做 A → B → A

先開終端機,在已建置的 llama.cpp 下啟動服務。只綁本機 127.0.0.1,使用測試埠;base.gguf 必須是交付單確認過的檔案。模型資源不足或 adapter 載入失敗,就先停止,不把測試接到日常工作。

./llama.cpp/build/bin/llama-server \
  -m models/base.gguf \
  --lora delivery/noslop-adapter.gguf \
  --lora-init-without-apply \
  --host 127.0.0.1 --port 8081 -c 2048

llama-server 官方文件說明 --lora-init-without-apply 會先載入 adapter、讓它的 scale 為 0。等 curl -fsS http://127.0.0.1:8081/health 成功,再用下面指令讀回清單,記下實際 ID,不能只猜永遠是 0。

curl -fsS http://127.0.0.1:8081/lora-adapters

A 輪先維持停用;B 輪將讀回的 ID 設為 1 倍。以下假設清單確認 ID 為 0;有多個 adapter 時,請按完整清單調整。這個端點設定全域 scale,而個別請求中的 lora 欄位可以覆蓋它,所以測試請求要省略該欄,並停止其他客戶端送入工作。

curl -fsS http://127.0.0.1:8081/lora-adapters \
  -H "Content-Type: application/json" \
  -d '[{"id":0,"scale":1.0}]'
curl -fsS http://127.0.0.1:8081/lora-adapters

A、B、再回 A,各用相同題目、聊天模板、system prompt、生成上限與取樣設定。可使用自己已核對模板的聊天客戶端;保存完整請求與回覆,包含 thinking 模式。切換後開新對話,避免把上一輪模型已寫過的答案接進下一輪。

六、撤回關:停用效果,和卸載記憶體各做一次

先把 adapter 的 scale 設回 0,再讀回狀態。下面是這個單 adapter 練習的一次停用動作:

curl -fsS http://127.0.0.1:8081/lora-adapters \
  -H "Content-Type: application/json" \
  -d '[{"id":0,"scale":0.0}]'
curl -fsS http://127.0.0.1:8081/lora-adapters

這是在撤回套用效果,adapter 仍可能留在程序記憶體。若要驗收「完全不載入補丁」的狀態,在啟動服務的終端機按 Ctrl+C,確認程序退出,再用相同基底、相同其他參數重啟,移除兩個 LoRA 參數:

./llama.cpp/build/bin/llama-server \
  -m models/base.gguf \
  --host 127.0.0.1 --port 8081 -c 2048

再次核對基底 SHA-256、啟動日誌及 adapter 清單,確認載入的是原檔。三輪答案可比行為是否回到基準;逐字相同還會受推論環境及取樣影響。記憶體另外記錄無 adapter、載入但停用、啟用三種狀態,區分 RAM/VRAM 和測量時點;不要把 scale 歸零當作已量到資源釋放。

Heretic LoRA 交付驗收:版本、載入狀態、輸出品質與撤回分開記錄
AlphaLab 驗收卡;列的是需要保存的證據,並非已完成的模型測量結果。

七、品質關:接得上之後,才決定留不留

先準備一題不參與選候選的繁中通知:活動由週六下午三點延到下週六下午三點,報名資格保留,也可申請退款。要求寫得簡潔,不新增聯絡人或期限。A/B/A 三輪都保存答案,先核對四項事實,再匿名比較措辭;另加一題可直接算對錯的加總題與一題欄位固定的 JSON。

這是建議驗收方法,不是已觀測結果。若 B 更自然但漏掉退款選項,就依事前訂好的硬條件判失敗;若三輪都過,才擴大題目與文類。本機 LLM 繁中盲測方法能補齊匿名評分,本機模型記憶體指南則幫你整理成本欄位。

llama.cpp 專案另有 LoRA 轉換與推論測試腳本,會比較基底、動態 adapter 與合併模型等路徑。它證明專案有這類測試材料,並不是你的 Heretic/Qwen 組合已通過測試的收據。完成自己的日誌與題目後,交付單才標為已驗收。

常見問題:八個先講答案的判斷

LoRA 匯出是 Heretic 2.0 才新增的嗎?

不是。Heretic v1.4.0 官方程式已有獨立 adapter 儲存路徑;2.0.0 保留這項能力,本篇重點是新版設定與交付驗收。

同一家族、同參數量就能套嗎?

不足以這樣判定。請對上精確基底、revision、架構和目標 tensor;大小相近只是外觀。

PEFT adapter 改名 .gguf 就能用了嗎?

要走格式轉換。保留 adapter 設定與權重,使用目標引擎文件指定的轉換器,再驗載入。

只有 GGUF,做 adapter 轉換還要下載整份 HF 權重嗎?

本文核對的轉換器 –base 只要求基底設定。若還要由 Heretic 產生修改,則另按它的模型載入需求準備。

scale 設成 0,記憶體就會回收嗎?

它代表停用效果。要比較無 adapter 的程序狀態,退出服務,再移除 LoRA 參數重啟並量測。

轉換成功,就代表繁中變好了嗎?

還要驗答案。格式、載入、風格偏好和事實保留,各有自己的通過條件。

遇上不相容,應先合併進基底嗎?

先停在報錯關卡。查架構與 tensor 對應,合併與重新量化另成一條需要驗收的路;保留原檔讓你有退路。

今天環境還沒準備好,可以完成什麼?

先做版本交付單、查明 GGUF 來源、保存基底指紋及驗收題。等依賴與硬體備妥,再依順序補上轉換和推論證據。

給新手的三個重點

  • 原稿要認得出:HF revision、GGUF 來源、tokenizer 和模板一起記。
  • 修訂紙要接得上:PEFT 匯出、GGUF adapter 轉換、引擎載入逐關驗。
  • 回頭路要走過:scale 歸零,再以無 adapter 的新程序核對原檔與行為。

接著閱讀

左右滑動查看更多推薦

下一步:先替你手上的 GGUF 寫一張交付單

今天先查出它來自哪個模型提交,算一次 SHA-256,再寫下要用的引擎版本。記住:可交付補丁=同一基底+格式轉換+載入驗收+可撤回。每一關都留下一件可讀回的證據,再決定是否把修改版接到日常工作。想繼續練習部署與驗收,可逛 AlphaLab AI 專區,或從 課程頁安排下一項實作。

ALPHALAB 社群

有問題?來 Telegram 聊

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

加入 Telegram 討論

📩 訂閱 AlphaLab 電子報

週日 Weekly 週報+週二、週四 Alpha Signal,每週最多三封。

我們不會 spam,隨時可退訂。已訂閱?管理訂閱偏好(會寄登入連結到你的信箱)

主題篩選與退訂說明

寄送日期以台灣時間為準。主題偏好會篩選每期精選,並非每篇新文章的即時通知;當期符合主題的文章不足時會略過寄送。

未勾選任何主題會收到所有主題的精選,並不會停止寄信。

取消勾選 Alpha Signal 可停止週二、週四短報,仍保留週日週報。若要停止所有電子報,請使用信件底部的「取消訂閱」。