3.4.1. GGML系列文件格式¶
在傳統的 Deep Learning Model 開發中大多使用 PyTorch 來進行開發,但因為在部署時會面臨相依 Lirbrary 太多、版本管理的問題於才有了 GGML、GGMF、GGJT 等格式,而在開源社群不停的迭代後 GGUF 就誕生了。
GGML 设计为与 Georgi Gerganov 创建的 Llama.CPP 库一起使用。
GGML 是 llama.cpp 和 whisper.cpp 的底层技术,是一个基于 C 的机器学习张量库。
GGML 是由 Georgi Gerganov 开发的用于机器学习的张量库。它是用 C/C++ 编写的,旨在快速、便携且易于嵌入,利用各种硬件加速系统,如 BLAS、CUDA、OpenCL 和 Metal。它支持量化推理,以减少内存占用并加快推理速度。 GGML 可跨各种平台无缝运行,包括 Mac、Windows、Linux、iOS、Android、Web 浏览器,甚至 Raspberry Pi。
GGUF¶
GGUF 文件格式是一种用于 AI 模型的新的可扩展二进制格式,专为在 PyTorch 等框架中开发的模型而设计。它于 2023 年 8 月推出,专注于快速加载、灵活性和单文件便利性。 GGUF 文件格式与 LLaMA 和 Llama-2 AI 模型一起使用,并在 llama.cpp 上运行。
GGUF 文件格式旨在易于使用,只需少量代码即可加载模型。不需要外部库,因为该文件包含完整的模型信息。
它是 GGML、GGMF 和 GGJT 文件格式的后继者,旨在通过包含加载模型所需的所有信息来确保明确性。它还被设计为可扩展的,以便可以将新功能添加到 GGML 中,而不会破坏与旧模型的兼容性。
GGUF 的关键优势在于它支持在 CPU 上运行大型语言模型(LLM),同时也可以将某些层加载到 GPU 以提高速度。
GGML¶
GGML 文件格式是, GGML张量库最初的文件格式,目的是為了有一個單文件(Single File Sharing)的格式並且易於在不同架構的 GPU 和 CPU 上可以 inference,但在後續的開發上遇到靈活性不足、相容性及難以維護的問題。
2023 年 8 月被 Georgi Gerganov 废弃,并创建了一个新的大模型文件格式 GGUF(GPT-Generated Unified Format)来取代 GGML 格式。
GGML(Generic GShard Model Layout)是一种通用的模型布局格式,用于存储模型参数和元数据。它使用Protobuf进行序列化,并包含以下信息:
模型架构 模型参数 训练配置 其他元数据
其他¶
GGMF(Generic GShard Model Format)是 GGML 的第一个版本。它使用 Protobuf 进行序列化
GGJT(Generic GShard JIT)是 GGMF 的改进版本。它使用了一种自定义的二进制格式
GGMF 是基础的形式,增加了版本控制,适用于需要考虑文件版本兼容性的场景。
GGJT 则专注于性能优化,特别是在使用内存映射时的性能,但牺牲了与旧版本的兼容性。
相关链接¶
What is GGML: https://klu.ai/glossary/ggml
官网: https://ggml.ai/
Tensor library for machine learning: https://github.com/ggerganov/ggml