目录
什么是GGUF?
GGUF 格式的全名为(GPT-Generated Unified Format),提到GGUF 就不得不提到它的前身 GGML(GPT-Generated Model Language)。GGML 是专门为了机器学习设计的张量库,最早可以追溯到 2022/10。其目的是为了有一个单文件共享的格式,并且易于在不同架构的 GPU 和 CPU 上进行推理。但在后续的开发中,遇到了灵活性不足、相容性及难以维护的问题。

为什么要转用GGUF格式?
在传统的 Deep Learning Model 开发中大多使用 PyTorch 来进行开发,但因为在部署时会面临相依 Lirbrary 太多、版本管理的问题于才有了 GGML、GGMF、GGJT 等格式,而在开源社群不停的迭代后 GGUF 就诞生了。
GGUF 实际上是基于 GGJT 的格式进行优化的,并解决了 GGML 当初面临的问题,包括:
1)可扩展性:轻松为 GGML 架构下的工具添加新功能,或者向 GGUF 模型添加新 Feature,不会破坏与现有模型的兼容性。
2)对 mmap(内存映射)的兼容性:该模型可以使用 mmap 进行加载(原理解析可见参考),实现快速载入和存储。(从 GGJT 开始导入,可参考 GitHub)
3)易于使用:模型可以使用少量代码轻松加载和存储,无需依赖的 Library,同时对于不同编程语言支持程度也高。
4)模型信息完整:加载模型所需的所有信息都包含在模型文件中,不需要额外编写设置件。
5)有利于模型量化:GGUF 支持模型量化(4 位、8 位、F16),在 GPU 变得越来越昂贵的情况下,节省 vRAM 成本也非常重要。
为什么转换成GGUF格式之后,会出现精度不准的问题?
比如我们从huggingface平台将模型转换成GGUF格式的之后,再进行推理,发现回答的内容和之前不一样,为什么出现效果不一样?原因有以下几点:
1.主要原因是模型没有训练好,模型没有收敛,所以随机性会大一点
2.模型推理的平台
3.模型的格式
模型推理的平台和模型的格式不同,都会对模型的效果有一定的影响(正常情况下影响是非常小的),原因在于模型的本质是一个矩阵(一堆参数)。矩阵的计算精度、计算方式依赖于模型推理平台和模型参数的保存方法。
模型一旦跨平台,精度就会有些许变化。
3340

被折叠的 条评论
为什么被折叠?



