一文詳盡大型語言模型的四種量化技術
大型語言模型(比如ChatGPT背后的技術)確實非常"龐大"——這不僅指它們的能力,更直接體現在它們的體積上。一個中等規模的模型就可能占用幾十GB的內存,相當于幾百部高清電影的大小。對于普通開發者、個人研究者或初創公司來說,這樣的資源需求無疑是一道難以跨越的門檻。
為什么我們需要量化技術?
想象一下,你要搬運一座小山般的貨物。直接搬運整座山顯然不現實,但如果我們能把這些貨物精打細算地分裝到更小的箱子里,運輸就會變得可行。量化技術做的就是類似的工作——它通過降低數值精度來縮減模型體積,同時盡可能保留模型的核心能力。
這種技術帶來的好處顯而易見:
- 內存占用更小:讓你的普通電腦也能運行大模型
- 計算速度更快:響應更迅速,用戶體驗更好
- 能耗更低:更環保,也節省成本
- 部署門檻降低:讓更多開發者能接觸到大模型技術
量化技術全景圖
圖片
不同的使用場景需要不同的量化策略,就像不同的旅行需要不同的行李箱:
- 訓練后量化(PTQ) - "即用型壓縮"
- 特點:簡單快捷,像把現成的衣服壓縮打包
- 優勢:幾分鐘就能完成,不需要重新訓練
- 適用場景:當你需要快速部署模型時
- 量化感知訓練(QAT) - "量身定制的精簡"
- 特點:在訓練過程中就考慮量化需求
- 優勢:保持更高準確度
- 適用場景:當模型精度至關重要時
- 4位量化微調 - "極限壓縮"
- 特點:將參數壓縮到極致(每個參數僅用4位表示)
- 優勢:內存占用極小
- 適用場景:在手機等內存有限的設備上運行
- 混合精度 - "智能分配"
- 特點:不同部分使用不同精度
- 優勢:平衡速度和精度
- 適用場景:需要兼顧多方面需求時
量化是如何工作的?
本質上,量化就是將模型中的高精度數字(通常是32位浮點數)轉換為低精度表示(如8位或4位整數)。這就像把精細的手繪地圖簡化為簡明的示意圖——雖然丟失了一些細節,但關鍵信息都得以保留。
一個形象的比喻是:量化就像把高清照片轉換為更小的文件格式。我們通過各種巧妙的算法,確保在縮小文件大小的同時,照片中的關鍵內容仍然清晰可辨。
隨著技術的進步,量化已經能讓大模型在體積縮小4倍甚至更多的情況下,性能損失控制在可接受范圍內。這使得在普通筆記本電腦甚至手機上運行強大的語言模型成為可能,大大降低了AI技術的使用門檻。。
先談成本:量化如何幫你省錢
在部署大型語言模型(LLM)時,持續的使用費用(主要是推理成本)往往是用戶最關心的實際問題。讓我們以130億參數的LLaMA 2模型為例,看看量化能帶來多大的經濟效益:
存儲空間對比
- 全精度版本(FP16):約26GB
- 4位量化版本:僅約7GB
這個數字意味著什么?量化后的模型大小只有原來的1/4!就像把一輛大卡車換成了一輛小轎車,不僅停車位更好找,油耗也大幅降低。
運營成本節省
在實際運營中,這種體積的縮減會直接反映在成本上:
- 硬件需求降低:不再需要頂級GPU,中端顯卡就能勝任
- 能耗減少:電費賬單顯著下降
- 吞吐量提升:同樣的硬件可以服務更多用戶
具體來說,如果FP16版本的LLaMA 2-13B每天運營成本是1,000美元,那么4位量化版本的成本可以降到250-400美元/天,相當于節省了60-75%的費用!這種級別的成本削減,對于創業公司或個人開發者來說,可能就是項目可行與否的關鍵因素。
技術基礎:從比特說起
在深入量化技術之前,我們需要了解一些基礎知識:
計算機的最小單位:比特(bit)
- 1個比特就是1個二進制位,只能是0或1
- 8個比特組成1個字節(Byte)
- 1個字節可以表示256種不同的狀態(2?=256)
舉個生活中的例子:ASCII編碼中的大寫字母"A",在計算機中就是用01000001這8個比特(1個字節)存儲的。
存儲單位進階
我們常見的存儲單位都是基于字節的:
- 1 KB(千字節)= 1,024 字節
- 1 MB(兆字節)= 1,024 KB
- 1 GB(千兆字節)= 1,024 MB
- 1 TB(太字節)= 1,024 GB
浮點數的精度
大型語言模型處理的主要是浮點數,常見的精度有:
- FP64:雙精度浮點(64位/8字節)
- FP32:單精度浮點(32位/4字節)← 最常用
- FP16:半精度浮點(16位/2字節)
想象一下,FP32就像一個能顯示6位小數的高級計算器,而FP16則像只能顯示3位小數的普通計算器。雖然精度降低了,但在很多情況下已經足夠使用,而且計算速度更快、占用空間更小。
理解這些基礎概念后,我們就能更好地把握量化技術的核心思想:如何在保證模型性能的前提下,用更少的比特數來表示這些數字。就像用簡筆畫代替精細素描,既要抓住主要特征,又要保持可識別性。
圖(2):FP32 和 FP16
我們深入研究一下“指數”和“尾數”是什么。你知道所有數字都是先用科學計數法表示,然后再轉換為二進制嗎?圖(3)是科學計數法,其中m稱為尾數,e是指數。
圖(3):科學計數法
采用科學計數法,圖(2)分為三部分。對于 FP32:
- 第一位為數字的符號。
0
表示正數1
,負數。 - 接下來的 8 位代表指數。
- 接下來的23位代表尾數。
我們展示一下π (pi ≈ 3.141592653589793)以 FP64、FP32和FP16形式存儲時的樣子。
import struct
import math
import numpy as np
# 獲取圓周率的值
pi = math.pi
# 將浮點數打包成二進制
packed64 = struct.pack('>d', pi) # 'd' = double-precision float (fp64)
packed32 = struct.pack('>f', pi) # single-precision float (fp32)
# 轉換為 0 和 1 的二進制字符串
binary64 = ''.join(f'{byte:08b}' for byte in packed64)
binary32 = ''.join(f'{byte:08b}' for byte in packed32)
binary16 = np.binary_repr(np.float16(pi).view(np.int16), width=16)
print(f"Value of π: {pi}")
pi_fp64 = np.float64(np.pi)
pi_fp32 = np.float32(np.pi)
pi_fp16 = np.float16(np.pi)
print(f"FP64: {pi_fp64:.20f}")
print(f"FP32: {pi_fp32:.20f}")
print(f"FP16: {pi_fp16:.20f}")
print(f"Binary (fp64) representation: {binary64}")
print(f"Binary (fp32) representation: {binary32}")
print(f"Binary (fp16) representation: {binary16}")
我們可以得到以下結果。這么多的bits,你是不是被驚艷到了呢?
Value of π: 3.141592653589793
FP64: 3.14159265358979311600
FP32: 3.14159274101257324219
FP16: 3.14062500000000000000
Binary (fp64) representation: 0100000000001001001000011111101101010100010001000010110100011000
Binary (fp32) representation: 01000000010010010000111111011011
Binary (fp16) representation: 0100001001001000
輸出告訴我們:
- FP64的精度約為15 到 16 位十進制數字。
- FP32 的精度約為7 位小數。這是 ML 的默認值。
- FP16 的精度為3 至 4 位小數。
LLM 的大小會一點一點地增長。例如,具有 130 億個參數的 LLaMA 2 在完全 FP16 精度下占用約 26 GB。因此,關鍵思想是:如果您可以減少所需的位數,則可以減少 LLM 的大小。
然后我們考慮整數(INT)表示。圖(4)顯示FP32需要32位來表示值30.2。而INT8將30.2四舍五入為30,可以用8位表示。INT4將30.2的上限設為7,因為INT4只能表示-8到7。但INT4僅需4位。如果我們可以將參數從FP16轉換為INT8或INT4,我們可以大大減少LLM的大小。
圖(4):FP和INT表示
所有量化技術都是從 FP32 或 FP16 轉換為 INT8 或 INT4 的變體。
從廣泛使用的量化——PTQ開始。
技術 1:訓練后量化(PTQ):大模型的"瘦身術"
訓練后量化(Post-Training Quantization, PTQ)是目前應用最廣泛的量化技術,就像給已經訓練好的模型做"瘦身手術"。它的最大優勢是簡單高效——不需要重新訓練模型,幾分鐘內就能完成量化,即使是擁有數千億參數的巨型模型也能輕松應對。
PTQ工作原理詳解
我們用一個具體的例子,一步步拆解PTQ的量化過程:
假設一個LLM在FP表示中的權重矩陣W如圖(5)所示:
圖(5):FP 表示中的假設權重矩陣
第一步:按列量化
PTQ會對每一列獨立進行量化處理。我們以第一列[1.5, -1.2, 2.0]為例:
- 確定范圍:找出最小值(-1.2)和最大值(2.0)
- 計算縮放因子:
- INT4的范圍是-8到7(共16個可能值)
- 縮放因子 = (最大值 - 最小值) / (量化范圍) = (2.0 - (-1.2)) / (7 - (-8)) ≈ 0.21
- 量化轉換:
- 1.5 / 0.21 ≈ 7.14 → 截斷為7
- -1.2 / 0.21 ≈ -5.71 → 舍入為-6
- 2.0 / 0.21 ≈ 9.52 → 但INT4最大值是7,所以截斷為7
最終得到量化后的第一列:[7, -6, 7]
圖(6):訓練后量化過程
我們將第 2 列從 FP 量化為 INT4。
- 步驟 1:第 2 列的值為 [-0.9, 0.4, -2.4]
- 步驟 2:最小值為 ?2.4,最大值為 0.4
- 步驟 3:獲取縮放因子:(0.4 ? (?2.4)) / (7 ? (?8)) = 2.8 / 15 ≈ 0.18
- 步驟 4:將第 1 列中的值除以比例因子 0.21。
- 步驟 5:結果為 [-5, 2, -13]。但是等一下!4 位范圍僅為 ?8 到 7,因此我們將 -13限制為 -8。結果為 [-5, 2, -8]。
我們將第 3 列從 FP 量化為 INT4。
- 步驟 1:第 3 列的值為 [2.1, 0.0, 1.8]
- 步驟 2:最小值為 0.0,最大值為 2.1
- 步驟 3:獲取縮放因子:(2.1 ? 0.0) / (7 ? (?8)) = 2.1 / 15 = 0.14
- 步驟 4:將第 1 列中的值除以比例因子 0.21。
- 步驟 5:結果為 [15, 0, 13]。但是等一下!4 位范圍只有 -8 到 7,因此我們將 15截斷為 7,將 13 截斷為 7。結果為 [7, 0, 7]。
量化后的LLM僅存儲量化的整數和比例,如圖(7)所示。
圖(7):存儲在量化的LLM中
現在討論如何使用(推理)這個量化的 LLM。在推理過程中,模型需要全精度形式的權重才能進行正確的矩陣乘法和激活。因此,在將量化權重加載到內存后,需要將它們反量化回浮點表示以進行計算。
運行時去量化
圖(8):去量化過程
如果將恢復后的矩陣與原始矩陣進行比較(如圖 (9) 所示),您會發現恢復后的矩陣很接近,但并不完全一致。錯誤來自舍入和截斷(超過 4 位限制時)。
圖(9):量化誤差
誤差分析與優化
PTQ的主要誤差來源:
- 舍入誤差:浮點到整數的轉換
- 截斷誤差:超出表示范圍的值被截斷
為了減小誤差,研究者開發了更先進的PTQ技術,其中最著名的是GPTQ:
- 不是單獨量化每一列,而是將連續的列組成塊一起量化
- 量化完一列后,會更新剩余矩陣來補償當前列的量化誤差
- 顯著降低了整體誤差,被廣泛應用于LLaMA等主流模型
PTQ的優勢與局限
? 優勢:
- 速度快,幾分鐘完成量化
- 內存占用大幅降低(FP32→INT4可減少75%)
- 無需重新訓練,保留原始模型知識
?? 局限:
- 精度損失相對較大
- 對異常值敏感(極端大或小的權重值)
- 可能需要校準數據來優化量化參數
PTQ就像給模型做"快速減肥",雖然可能會損失一點"體力"(精度),但換來了更靈活的身手(部署便利性)。對于大多數應用場景來說,這種權衡是非常值得的。
技術 2:量化感知訓練(QAT):讓模型學會"適應精簡"
當我們需要將模型壓縮到極低精度(如INT4)時,普通的訓練后量化(PTQ)可能會導致性能大幅下降。這時就需要**量化感知訓練(Quantization-Aware Training, QAT)**——這種方法就像在模特正式登臺前,先讓ta穿著精簡版服裝進行排練,從而更好地適應最終舞臺效果。
QAT核心原理
QAT的精妙之處在于它在訓練過程中就引入了"模擬量化"環節:
- 前向傳播時,權重和激活會被臨時量化為低精度(如INT4)
- 立即反量化回高精度(FP32/FP16)繼續計算
- 反向傳播時,使用高精度梯度更新權重
這種"假量化"操作讓模型在整個訓練過程中都能感知到量化帶來的影響,從而自主調整權重分布,最小化最終的量化誤差。
圖:QAT中的假量化操作(量化→反量化)
PyTorch實現示例
以下是使用PyTorch實現QAT的典型代碼流程:
import torch
import torch.quantization
# 1. 定義原始模型
model = torch.nn.Sequential(
torch.nn.Linear(10, 20),
torch.nn.ReLU(),
torch.nn.Linear(20, 10),
torch.nn.ReLU(),
torch.nn.Linear(10, 5)
)
# 2. 準備QAT配置
model.qconfig = torch.quantization.get_default_qat_qconfig('fbgemm')
# 3. 插入假量化節點
qat_model = torch.quantization.prepare_qat(model.train())
# 4. 正常訓練流程
optimizer = torch.optim.Adam(qat_model.parameters())
for epoch in range(10):
for data, target in train_loader:
optimizer.zero_grad()
output = qat_model(data)
loss = torch.nn.MSELoss()(output, target)
loss.backward()
optimizer.step()
# 5. 轉換為最終量化模型
quantized_model = torch.quantization.convert(qat_model.eval())
QAT技術優勢
? 更高精度:相比PTQ,QAT在低比特量化時能保持更好性能? 異常值魯棒:模型自動學習適應量化范圍的權重分布? 移動端友好:特別適合手機、IoT等資源受限設備
QAT的適用場景
- 對精度要求苛刻的應用(如醫療診斷)
- 需要極低比特量化(如INT4/INT2)的情況
- 模型架構復雜,PTQ導致顯著性能下降時
前沿進展
最新研究如LLM-QAT(Chen et al., 2024)將QAT成功應用于大語言模型,通過:
- 分層敏感度分析,動態調整各層量化策略
- 引入可學習縮放因子(Learnable Scaling Factors)
- 混合精度QAT,關鍵層保持較高精度
研究顯示,在LLaMA-7B上應用QAT后,INT4量化模型的準確度可比PTQ提升15-20%
QAT就像給模型上的"量化預備課",雖然訓練時間稍長,但能讓模型在最終部署時表現更加出色。當PTQ無法滿足精度要求時,QAT是最佳的升級選擇。
技術 3:4位量化微調:極限壓縮與智能恢復的藝術
當模型需要部署在極度資源受限的環境時,4位量化(INT4)就像給模型做"極限瘦身手術"——將每個參數壓縮到僅用4位表示(僅有16種可能的取值)。這種激進壓縮雖然節省了75%的內存,但也面臨嚴峻的精度挑戰。這時候,量化后微調就成為了關鍵的"康復訓練"過程。
4位量化的雙重挑戰
- 表示范圍極端受限:-8到7的整數范圍難以精確表達神經網絡豐富的權重分布
- 累積誤差顯著:連續的矩陣運算會使量化誤差不斷放大
圖:4位量化與微調的協同工作流程
QLoRA:4位量化的救星
當前最先進的解決方案是QLoRA(Quantized Low-Rank Adaptation),它巧妙結合了:
- 4位基礎量化:使用
bitsandbytes
庫實現高效壓縮 - 低秩適配器:僅微調少量關鍵參數來恢復性能
- 雙重量化:對量化參數本身再進行壓縮
from transformers import AutoModelForCausalLM
from peft import LoraConfig, get_peft_model
import torch
import bitsandbytes as bnb
# 加載預訓練模型并應用4位量化
model = AutoModelForCausalLM.from_pretrained(
"big-model",
load_in_4bit=True,
quantization_cnotallow=bnb.Config(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16, # 使用FP16加速計算
bnb_4bit_use_double_quant=True # 啟用雙重量化
)
)
# 配置LoRA微調策略
lora_config = LoraConfig(
r=8, # 低秩矩陣的秩
lora_alpha=32, # 縮放因子
target_modules=["q_proj", "v_proj"], # 僅微調注意力層的部分參數
lora_dropout=0.1 # 防止過擬合
)
# 應用QLoRA微調
model = get_peft_model(model, lora_config)
關鍵技術解析
- **雙重量化(Double Quantization)**:
- 對4位量化使用的縮放因子(scale factors)再進行8位量化
- 額外節省約0.5bit/參數的內存
- **分塊量化(Block-wise Quantization)**:
- 將矩陣分成64個參數的小塊獨立量化
- 顯著減少異常值的影響
- Paged優化器:
- 類似虛擬內存的分頁機制
- 防止GPU內存溢出錯誤
實際效益對比
指標 | FP16原始模型 | 4位PTQ | 4位QLoRA |
內存占用 | 26GB | 7GB | 7.2GB |
推理速度 | 1x | 3.2x | 3.1x |
任務準確率 | 100% | 72% | 95% |
研究顯示(Li et al., 2023),在LLaMA-13B上應用QLoRA后,4位量化的性能損失可從28%降至不足5%
適用場景建議
? 推薦場景:
- 需要在消費級GPU(如RTX 3090)上運行大模型
- 邊緣設備部署(如嵌入式系統)
- 多模型并行的服務場景
?? 注意事項:
- 微調數據需與目標領域相關
- 建議batch size不宜過大
- 需要監控梯度更新幅度
這種"先壓縮后修復"的策略,就像先將油畫拍成數碼照片,再通過專業修圖恢復細節。雖然無法100%還原原作,但在大多數應用場景下已經足夠出色,同時獲得了前所未有的部署便利性。
技術 4:混合精度量化:AI模型的"智能節能模式"**
混合精度量化就像給模型裝上"智能調節器",讓不同部件自動選擇合適的精度檔位——關鍵部分保持高清畫質,次要部分則切換為節能模式。這種動態調整策略在保持模型性能的同時,實現了最優的資源利用。
混合精度的核心思想
- 分層精度分配:
- 輸入/輸出層:FP16(保持接口精度)
- 注意力機制:INT8(平衡計算效率)
- 前饋網絡:INT4(最大化壓縮率)
- 動態調整機制:
- 通過敏感度分析自動識別關鍵層
- 根據硬件特性優化精度組合
- 支持訓練中和部署后兩種應用場景
圖:神經網絡各層采用不同量化精度(FP16/INT8/INT4)
技術實現三部曲
1. 敏感度分析(確定各層重要性)
from torch.quantization import get_sensitivity_map
# 在驗證集上測試各層對量化的敏感度
sensitivity_map = get_sensitivity_map(
model,
val_loader,
num_batches=10
)
2. 精度分配策略
# 自定義量化配置(示例)
qconfig_dict = {
"object_type": [
(nn.Linear, {"dtype": torch.int8}), # 默認配置
(AttentionLayer, {"dtype": torch.float16}), # 注意力層保持高精度
(nn.LayerNorm, {"dtype": torch.float32}) # 歸一化層最高精度
],
"module_name": [
("output", {"dtype": torch.float16}) # 輸出層特殊處理
]
}
3. 混合精度轉換
from torch.ao.quantization import quantize_fx
# 應用混合精度量化
quantized_model = quantize_fx.prepare_fx(
model,
qconfig_dict,
example_inputs
)
硬件協同優化
現代加速器對混合精度有專門優化:
- NVIDIA Tensor Core:自動加速FP16/INT8混合計算
- Google TPU:支持bfloat16與INT4混合執行
- 移動端芯片:如高通Hexagon支持分層精度分配
實際應用效果對比
方案 | 內存占用 | 推理延遲 | 準確率 |
全FP16 | 100% | 100% | 100% |
全INT8 | 50% | 65% | 98.2% |
混合精度 | 60% | 70% | 99.7% |
研究顯示(Jacob et al., 2018),在ResNet-50上應用混合精度,既能保持99%的原始準確率,又能獲得1.8倍加速
部署建議
? 推薦場景:
- 異構計算平臺(CPU+GPU/TPU)
- 實時性要求高的應用(如自動駕駛)
- 多模型聯合服務場景
?? 注意事項:
- 需要目標硬件的量化支持驗證
- 建議使用自動化調優工具(如NNCF)
- 注意各精度間的類型轉換開銷
混合精度量化就像交響樂團的音量調節——小提琴保持清晰高音,大鼓發出低沉共鳴,各司其職又和諧統一。這種智能的資源分配方式,正在成為工業界部署AI模型的新標準。
寫在最后:量化的藝術與科學
在大模型時代,量化技術已經成為AI工程師的必備技能,就像攝影師必須掌握光線調節一樣重要。通過這篇文章,我們共同探索了四種核心量化方法,每種方法都像不同的"鏡頭濾鏡",為模型部署提供獨特的優勢視角:
量化技術全景圖
技術 | 適用場景 | 優勢 | 代價 |
訓練后量化(PTQ) | 快速原型開發 臨時部署 | 即時生效 零訓練成本 | 精度損失較大 |
量化感知訓練(QAT) | 高精度需求 醫療/金融場景 | 保持95%+原模型精度 | 需要重新訓練 |
4位量化微調 | 邊緣設備 移動端應用 | 75%內存節省 QLoRA恢復性能 | 微調數據依賴 |
混合精度 | 異構計算平臺 實時系統 | 智能資源分配 硬件友好 | 配置復雜度高 |
實用選擇指南
- 緊急上線? → PTQ是你的"急救包"
- 追求完美? → QAT是精度控的"定制西裝"
- 內存告急? → 4位量化+LoRA像"壓縮餅干"
- 硬件多樣? → 混合精度扮演"智能管家"
正如NVIDIA首席科學家Bill Dally所言:"未來三年,模型壓縮技術將比硬件進步帶來更大的效率提升。"
量化技術仍在飛速演進,三個前沿方向值得關注:
- 1-bit量化:微軟BitNet等研究已實現二值化LLM
- 動態量化:運行時自動調整精度級別
- 神經架構搜索(NAS)+量化:協同優化模型結構與量化策略
記住,沒有放之四海皆準的量化方案。就像選擇合適的交通工具——短途用自行車,跨洋用飛機,關鍵是根據你的目的地(應用場景)、行李規模(模型大小)和時間預算(開發周期)做出明智選擇。愿這些量化技術成為你AI工程工具箱中的得力助手!
參考
- (QPTQ) Frantar, E.、Passos, A. 和 Alistarh, D. (2022)。GPTQ :生成式預訓練 Transformer 的精確訓練后量化。arXiv 預印本 arXiv:2210.17323。https ://arxiv.org/abs/2210.17323
- (PTQ) 姚哲偉、Reza Yazdani Aminabadi、張敏嘉、吳曉霞、李從龍和何宇雄。(2022)。ZeroQuant:針對大型 Transformer 的高效且經濟實惠的訓練后量化。https://arxiv.org/abs/2206.01861
- (PTQ) Jinjie Zhang、Yixuan Zhou 和 Rayan Saab。(2023 年)。具有可證明保證的神經網絡訓練后量化。https ://arxiv.org/abs/2201.11113
- (PTQ) Guangxuan Xiao、Ji Lin、Mickael Seznec、Hao Wu、Julien Demouth 和 Song Han。(2024 年)。SmoothQuant:適用于大型語言模型的準確高效的訓練后量化。https ://arxiv.org/abs/2211.10438
- (混合) Benoit Jacob、Skirmantas Kligys、Bo Chen、Menglong Zhu、Matthew Tang、Andrew Howard、Hartwig Adam 和 Dmitry Kalenichenko。(2017 年)。用于高效整數算術推理的神經網絡量化和訓練。https ://arxiv.org/abs/1712.05877
- (混合) Song Han、Huizi Mao 和 William J. Dally。(2016 年)。深度壓縮:使用剪枝、訓練量化和霍夫曼編碼壓縮深度神經網絡。https ://arxiv.org/abs/1510.00149
- (QAT) 陳孟照、邵文琪、徐鵬、王家豪、高鵬、張凱鵬和羅平。(2024)。EfficientQAT:大型語言模型的高效量化感知訓練。https://arxiv.org/abs/2407.11062
- (QAT) Saleh Ashkboos、Bram Verhoef、Torsten Hoefler、Evangelos Eleftheriou 和 Martino Dazzi。(2024 年)。EfQAT:一種高效的量化感知訓練框架。https ://arxiv.org/abs/2411.11038
- (QAT) Xie Huang、Zechun Liu、Shih-Yang Liu 和 Kwang-Ting Cheng。(2024)。通過自適應核心集選擇進行高效且強大的量化感知訓練。https://arxiv.org/abs/2306.07215
- (4BitQ) Jeonghoon Kim、Jung Hyun Lee、Sungdong Kim、Joonsuk Park、Kang Min Yoo、Se Jung Kwon 和 Dongsoo Lee。(2023)。通過 4 位以下整數量化實現壓縮大型語言模型的內存高效微調。https ://arxiv.org/abs/2305.14152
- (4BitQ) 李一曉、于一凡、陳亮、何鵬程、Nikos Karampatziakis、陳偉竹和趙拓。(2023)。LoftQ:大型語言模型的 LoRA 微調感知量化。https://arxiv.org/abs/2310.08659