大模型领域的GGML是什么?
什么是GGML
GGML是一个用于机器学习的张量库,它只是一个c++库,允许你在CPU或CPU + GPU上运行llm。它定义了用于分发大型语言模型(llm)的二进制格式。GGML使用了一种称为量化的技术,该技术允许大型语言模型在消费者硬件上运行。
GGML全称是Georgi Gerganov Machine Learning,是由Georgi Gerganov开发的一个张量库(tensor library),Georgi Gerganov是著名的开源项目llama.cpp的创建者。最早在2023年2月份在GitHub上提交更新。
GGML是用C编写的,为大型语言模型提供了基础设施。它定义了一个用于分发LLMs的二进制格式,并提供了Rust语言绑定,以及一系列原生Rust助手函数,以便安全、符合习惯地访问这些绑定。
简单总结就是GGML本身是一个C写的库,用它转换的大模型文件结果就是GGML格式的大模型文件,通常是原有的模型名+GGML。它的目标是让大模型在消费级硬件上产生高性能的工具。GGML起作用的原因有2个:一个是采用量化技术,将原有大模型预训练结果量化(即将原有大模型FP16精度压缩成INT8、INT6精度);另一个是二进制文件编码,即将量化后的预训练结果通过一种指定的格式变成一个二进制文件。凡是遵从这种二进制格式文件和量化方式的库都可以直接载入这个模型使用。
这里说一下,GGML定义的二进制文件格式包括GGML版本号、模型的超参数、词汇表和模型预训练结果,是按照这个顺序排列的二进制编码数据。很固定的格式。
由于量化和二进制文件格式后,原有的与训练结果文件将大大减少其物理文件大小和显存大小,所以可以用更低的硬件资源运行。
GGML库的特点
Georgi Gerganov在开发完这个库之后还成立了一家公司