还在缓慢更新"/>
【LLM】大模型微调,压缩,量化,部署(还在缓慢更新
前段时间很忙一直没时间follow最近的大模型工作,最近几天闲一点了…这个可能会出现整理不全或者是结果没跑完的情况,我尽量快一点(如果最近没啥事的话),有啥想法可以在评论区d一下我。
LLM排行榜 :
可能有一些解读有些的不清楚的地方,这一篇也可以当做是评论帖(轻点骂
一. 微调
1.1 Adapter Tuning
Parameter-Efficient Transfer Learning for NLP
【代码参考】
【论文】Adapter Tuning
【论文解读】
1.2 Prefix Tuning
【官方代码】
【论文】.acl-long.353.pdf
【代码解读】
1.3Prompt Tuning
【官方代码】
【论文】.emnlp-main.243.pdf
【代码解读】
1.4 P-Tuning
P-Tuning一共是两篇工作
1.4.1 GPT Understands, Too
【官方代码】
【论文】.10385v1.pdf
【代码解读】
1.4.2 P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks
【官方代码】
【论文】.07602v3.pdf
【代码解读】来自知乎 :
1.5 LoRA
【论文解析】
1.6 AdaLoRA
1.7 BitFit
1.8 MAM Adapter
1.9 UniPELT
【知乎解析】
二. 量化
2.1 量化基础知识
2.1.1 常见数值表示方式
- Float32 (FP32) :标准的 IEEE 32 位浮点表示,指数 8 位,尾数 23 位,符号 1
位,可以表示大范围的浮点数。大部分硬件都支持 FP32 运算指令。 - Float16 (FP16) :指数 5 位,尾数 10 位,符号 1 位。 FP16 数字的数值范围远低于 FP32,存在上溢 (当用于表示非常大的数时) 和下溢 (当用于表示非常小的数时) 的风险,通过缩放损失 (loss scaling) 来缓解这个问题。
- Bfloat16 (BF16):指数 8 位 (与 FP32相同),尾数 7 位,符号 1 位。这意味着 BF16 可以保留与 FP32 相同的动态范围。但是相对于 FP16,损失了 3位精度。因此,在使用 BF16 精度时,大数值绝对没有问题,但是精度会比 FP16 差。
- TensorFloat-32(TF32) :使用19 位表示,结合了 BF16 的范围和 FP16的精度,是计算数据类型而不是存储数据类型。目前使用范围较小。
【参考】
-
Quant
-
INT8
【代码仓库】
【代码测试】使用int8训练bert -
QLoRA
【论文解读】
【测试】 -
GPTQ
【代码仓库】官方代码 和 Llama上使用GPTQ
6.
更多推荐
【LLM】大模型微调,压缩,量化,部署(还在缓慢更新
发布评论