大型语言模型 (LLM),尤其是像 Mixtral 8x7b(467 亿个参数)这样的大型模型,对内存的要求非常高。当你尝试降低推理成本、提高推理速度或在边缘设备上进行推理时,这种内存需求就会变得明显。解决此问题的一个潜在方法是量化。在本文中,我们将使用易于理解的类比来简化量化的概念,并提供在 LLM 中实现它的实用指南。
LLM 虽然功能强大,但由于模型规模较大,因此会消耗大量资源。这对资源受限的设备上部署带来了挑战,并且会阻碍推理速度和效率。量化提供了一种解决方案,即在保持性能的同时降低模型参数的精度。
在本文中,我们将探讨各种量化技术,包括简单量化、k 均值量化,并简要提到一种称为 qLORA 的方法。
NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割
1、理解量化
想象一下乡村中的每栋房屋都代表 LLM 中的一个参数。在密集的模型中,房屋无处不在,就像一个繁华的城市。量化通过仅保留最重要的房屋(参数)并用较小的房屋(较低精度的表示)替换其他房屋,或者移除非常“不重要”的房屋并在其间创建开放空间(零),将这个城市转变为更易于管理的乡村。由于有空间,我们可以说模型“更稀疏”或“密度更低”。当模型稀疏且具有许多零值参数时,这使得模型的计算效率更高且处理速度更快,因为可以轻松跳过或压缩零值,而无需进行昂贵的计算。保留参数之间的开放空间(零)减少了整体模型的大小和复杂性,从而进一步提高了效率。
1.1 量化的好处
量化有几个好处:
- 减少内存占用:通过降低参数精度,量化显著降低了模型的内存需求,这对于在内存有限的设备上部署至关重要。
- 提高速度:较低精度的计算执行速度更快,从而加快模型推理速度,这对实时应用尤其有益。
- 保持性能:量化旨在简化模型,同时保持其性能,确保乡村在缩小规模后仍拥有所有必要的设施。
1.2 量化的类型
量化方法有几种,本文简要提到了其中两种&