点击下方 卡片 ,关注“ 慢慢学AIGC ”
简介
由于对大型语言模型(LLM)的高需求,实施量化已成为其高效运行的关键。这种技术似乎以减少模型权重的精度为代价,从而节省内存并加速推理,但保留了大部分模型性能。最近在 8 位和 4 位量化技术方面的进展,使LLM能够部署在消费级硬件上。加上 Llama 模型和诸如 LoRA 和 QLoRA 等 参数高效微调方法 的推出,已催生了一个多样化的 本地 LLM 生态系统 ,现在可与 OpenAI 的 GPT-3.5 和 GPT-4 相媲美。
在四种主要量化技术 NF4、GPTQ、GGML 和 GGUF 中,本文将帮助你了解并深入探讨 GGML 和 GGUF。前两种量化方法可参考前面文章《使用 GPTQ、AWQ 和 Bitsandbytes 进行模型量化》。
GGML 和 GGUF 代表了简化语言模型的关键一步。GGML 是一种早期尝试,旨在使模型可在常规计算机上运行,但存在局限性。GGML 是由 Georgi Gerganov(用"GG"代表)开发的面向机器学习的 C 语言库,提供了机器学习的基本组件。除了提供张量等基本元素外,它还引入了一种独特的二进制格式来分发 LLM。GGUF 于 2023 年 8 月 21 日推出,是一种后继格式,旨在解决 GGML 的缺陷。它的设计目标是清晰、可扩展和通用,从原型过渡到成熟、用户友好的解决方案。
关于 GGUF
GGUF 由 llama.cpp 团队推出,旨在取代不再支持的 GGML。与 GGML 相比,它提供了多项优势,包括改进的标记化、对特殊标记的支持以及可扩展性。GGUF 将更多关于模型的信息存储为元数据,使其成为面向未来的格式。它提高了性能,尤其是在使用新的特殊标记和自定义提示模板的模型上。
差异和偏好
GGML (优点和缺点):
优点:
-
- 早期就尝试为 GPT 模型创建文件格式。
-
- 方便在单个文件中共享模型。
-
- 模型可在常规计算机上运行,适合更多人使用。
缺点:
-
- 缺乏灵活性阻碍了添加额外的模型信息。
-
- 出现了与新功能的兼容性问题。
-
-
设置需要手动调整。
-
GGUF (改进和注意事项):
改进:
-
- 类似于 GGML 的下一个版本,修复了其问题。
-
- 可以轻松添加新功能,而不会影响旧模型。
-
- 可用于不同模型,而不仅限于 llama.cpp。
需要注意的事项:
-
- 旧模型切换到新格式可能需要一些时间。
-
- 用户和开发人员需要适应新格式。
GGML 和 GGUF 哪个更好?当然是 GGUF 更好,因为它解决了 GGML 存在的问题。它更加灵活,可以无缝添加新功能,并且可以与不同的模型一起使用。
从 GGML 转换到 GGUF:
llama.cpp GitHub 仓库【1】提供了从 GGML 转换到 GGUF 的指导步骤,该工具位于 convert-llama-ggml-to-gguf.py。使用此工具可以轻松地将模型从 GGML 迁移到 GGUF。用户可以利用它来更新自己的模型,从而充分利用 GGUF 更好的特性和设计。这种切实可行的方法确保了用户的顺利过渡,符合 GGML 团队优先考虑用户便利性的承诺。
GGUF 在客户端和库中的支持:
截至 2023 年 8 月 25 日,各种客户端和库已经支持 GGUF:
-
- llama.cpp
-
- text-generation-webui
-
- KoboldCpp
-
- LoLLMS Web UI
-
- ctransformers
-
- llama-cpp-python
-
- candle
此外,LM Studio 也在 2023 年 8 月 25 日更新以支持 GGUF。
结论
总之,GGUF 的推出代表了语言模型文件格式的重大飞跃。其用户友好的特性、增强的标记化以及广泛的支持使其成为优于 GGML 的首选。提供了转换选项,并且越来越多的客户端和库支持 GGUF,凸显了社区热衷于采用 GGUF。这一进化必将为语言模型的持续发展做出贡献,使其更加高效,并为更广泛的用户群体所接受。
参考资料
【1】 llama.cpp 源码仓库: https://github.com/ggerganov/llama.cpp/blob/master/convert-llama-ggml-to-gguf.py 【2】使用 GPTQ、AWQ 和 Bitsandbytes 进行模型量化
点击下方 卡片 ,关注“ 慢慢学AIGC ”