返回首頁

GitHub Repo

Transformers 提出 EntroPack 整合,讓權重壓縮可設定非整數位元率

10 月 21 日提出的 Transformers 拉取請求,規劃透過標準模型載入介面支援 EntroPack 權重壓縮。提案可設定每參數平均 3.5 位元等儲存目標,但尚未合併,實際推論效益仍取決於解碼成本與工作負載。

Sarang · Public domain · Image source
zh-Hant

Hugging Face Transformers 於 10 月 21 日出現 EntroPack 整合提案,計畫讓使用者透過 EntroPackConfig 與 from_pretrained() 壓縮線性層權重。提案涵蓋從原始檢查點即時壓縮、載入預先量化權重,以及儲存後重新載入;截至查核時仍為開啟中的拉取請求,不能視為正式版本已支援。整合提案

技術重點是將儲存位元率與運算數值精度分開。EntroPack 結合逐列正規化的 E8 格點量化、條件機率模型與熵編碼,不需活化值校準資料或微調,即可設定非整數的平均儲存位元率。壓縮後的座標分成可獨立解碼的區塊,再由 GPU 融合執行符號解碼與權重重建;因此,設定 3.5 bpp 並不代表 GPU 直接使用原生「3.5 位元」矩陣乘法。方法論文

對部署工程師而言,這提供比固定四位元、八位元格式更細的容量調整空間,但目標值仍須與實際儲存量區分。專案以 actual_bpp 回報包含中繼資料的結果;其公布的 H20 測試將 Z-Image-Turbo 擴散 Transformer 線性層設為 4 bpp,實際為 4.02 bpp,每個去噪步驟耗時較 BF16 增加約 7.7%。這是作者的特定模型測試,不能直接推算語言模型逐字生成速度。專案說明與測試

成本主要來自執行時重建權重。論文指出,解碼延遲隨權重數量增加,較適合擴散去噪與 Transformer 預填等計算密集情境;因此,壓縮比例不能單獨代表服務吞吐量改善。論文 接下來值得觀察的是整合審查、正式版本歸屬,以及不同批次與輸入長度下的端到端測試。準備試用的團隊也應記錄品質、峰值顯示記憶體與延遲,並核對來源安裝版本:專案明示 PyPI 套件可能落後原始碼更新。安裝說明

來源

  1. Add EntroPack quantization support — Transformers PR #49822
  2. EntroPack: Fast and Accurate Entropy-Coded Weight Compression at Arbitrary Bitrates
  3. EntroPack 官方儲存庫與效能說明