What is Quantization(量化)?

    降低模型權重數值精度以縮小記憶體佔用並加速推論的過程。

    Definition

    量化是一種模型壓縮技術,將訓練期間使用的高精度浮點數轉換為較低精度的表示以用於推論。在訓練期間,神經網路通常使用 16 位元(FP16)或 32 位元(FP32)浮點權重以維持學習所需的梯度解析度。然而,一旦模型訓練完成,大部分精度對於生成預測來說是多餘的。量化利用這種冗餘,將權重——有時還有啟用值——對應到更小的資料類型,如 8 位元整數(INT8)甚至 4 位元整數(INT4)。

    量化有兩大類別。訓練後量化(PTQ)取一個完全訓練好的模型並在事後轉換其權重,有時使用小型校準資料集來最小化準確度損失。量化感知訓練(QAT)則在訓練過程中模擬低精度算術,允許模型將其權重適應量化體制。PTQ 更快更簡單;QAT 在極低位元寬度下通常產生更高的準確度。

    現代量化格式如 GGUF 不僅編碼量化權重,還編碼推論期間反量化所需的元資料。GPTQ、AWQ 和 llama.cpp 使用的 k-quant 方法等技術在壓縮比、速度和品質之間提供不同的折衷。一個經過良好量化的 4 位元精度 7B 模型可以放入 4 GB 的 RAM 並在筆記型電腦 CPU 上運行——與相同模型在 FP16 下所需的 14 GB 形成鮮明對比。

    Why It Matters

    沒有量化,運行大型語言模型需要昂貴的 GPU 硬體和大量的 VRAM。一個 FP16 的 70B 參數模型大約需要 140 GB 的記憶體——遠超任何單一消費級 GPU。量化透過使強大的模型可以在商用硬體、邊緣裝置甚至手機上運行來使 AI 民主化。對於組織而言,這直接轉化為更低的基礎設施成本、減少的延遲,以及在資料不能離開本地裝置的隱私敏感環境中部署 AI 的能力。

    How It Works

    量化管線首先分析訓練好的模型每一層中權重值的分佈。然後計算一個映射函數,將每個浮點權重轉換為其最接近的低精度對應值,同時最小化整體重建誤差。對於 INT8 量化,這通常涉及計算每個張量或每個通道的縮放因子和零點。對於激進的 4 位元方案,分組策略(例如以 32 或 128 個權重為一組進行量化)有助於保持準確度。然後量化後的模型以 GGUF 等部署就緒格式序列化,該格式將量化權重與推論時所需的反量化參數一起儲存。

    Example Use Case

    一家醫療新創公司需要在沒有專用 GPU 的醫院工作站上運行微調過的 13B 醫療問答模型。透過使用 llama.cpp 的 GGUF 格式將模型從 FP16 量化為 Q4_K_M,他們將模型大小從 26 GB 減少到 7.4 GB。量化後的模型僅在 CPU 上以每秒 12 個 token 的速度運行,在其醫療基準上的退化不到 1%——無需將患者資料發送到雲端即可實現即時臨床決策支援。

    Key Takeaways

    • 量化降低模型精度(FP16 → INT8 → INT4)以將記憶體需求縮小 2-4 倍或更多。
    • 訓練後量化快速且簡單;量化感知訓練在極低位元寬度下產生更好的結果。
    • GGUF 是分發量化模型用於本地推論的最流行格式。
    • 執行良好的量化在大幅降低硬體需求的同時保持 95-99% 的模型品質。
    • 量化對於在邊緣裝置、筆記型電腦和隱私敏感環境中部署 LLM 至關重要。

    How Ertas Helps

    Ertas 將量化工作流程簡化為其模型匯出管線的一部分。在 Ertas Studio 中微調後,使用者可以一鍵將模型直接匯出為各種量化級別的 GGUF(Q4_K_M、Q5_K_M、Q8_0 等)——無需命令列工具。這使得從微調模型到為使用 Ollama 或 llama.cpp 進行本地推論而優化的可部署產出物的整個工作流程都在 Ertas 的無程式碼介面中完成。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.