大模型量化简介

本文记录下学习大模型量化过程中的过程，本文不涉及高深的各种量化策略以及量化效果对比，只是记录对量化过程的探索。量化的含义本质上很简单，即将模型的存储数据从浮点数转换为整数，从而降低显存使用，那这个过程中必然有数值的转换、模型保存、加载。但是在研究量化的过程中所用时间超过了之前的LoRA，因为实际过程中有很多坑，光看网上文章是不会理解的，具体来说，起码有下面几个： transformers自身支持的量化方案，也就是 load_in_8bit 参数需要依赖 bitsandbytes，这个库在Windows上支持很不友好，也依赖GPU。 直接使用quanto库进行量化有问题，需要optimum-quanto 量化效果不显著，是因为量化通常来说只量化Linear以及Norm层，很多层都不量化，比如用GPT2测试，就会有很多层不会量化…