GGUF格式

​ GGUF是一种大模型文件格式,由开发者Georgi Gerganov提出。

​ 具体来说,GGUF代表的是GPT-Generated Unified Format,这是一种针对大规模机器学习模型设计的二进制格式文件规范。它的主要优势在于能够将原始的大模型预训练结果经过特定优化后转换成这种格式,从而可以更快地被载入使用,并消耗更低的资源。以下是GGUF的一些关键特点:

  1. 紧凑的二进制编码:通过采用紧凑的二进制编码格式,GGUF能够有效地减少文件大小,使得模型数据更加高效地存储和传输。
  2. 优化的数据结构:GGUF格式利用了优化的数据结构,这有助于提高数据访问速度,尤其是在处理大规模数据集时。
  3. 内存映射:该格式支持内存映射技术,这意味着模型数据可以直接映射到内存中,从而提高了数据处理的效率。
  4. 跨硬件平台优化:GGUF旨在支持不同的硬件平台,包括CPU和GPU,使得模型能够在各种设备上高效运行。
  5. 多种模型格式:GGUF不仅限于一种特定的模型格式,它包括原始格式、exl2、finetuned模型等多种格式,每种都有其特定的应用场景和优化目标。

​ 总的来说,GGUF是为了解决大模型在实际应用中的加载速度慢、资源消耗高等问题而设计的一种优化文件格式。它通过一系列技术手段,提高了模型的加载效率和使用便捷性,对于需要在CPU上快速进行推理的场景尤为有用。

模型转成GGUF格式

​ 要将模型数据转换为GGUF格式,可以按照以下步骤操作:

  1. 下载模型:在Hugging Face网站上找到所需模型的相对地址,并下载模型文件。
  2. 准备转换工具:克隆llama.cpp项目到本地,并安装所需的依赖包。在Windows系统上,可能需要先安装make工具以便编译llama项目。
  3. 配置环境:进入llama.cpp文件夹所在目录,使用pip install -r requirements.txt命令安装llama依赖包,并导入huggingface_hub
  4. 使用convert.py工具:使用convert.py实用程序将PyTorch模型转换为GGUF格式。运行convert.py时,需要指定包含PyTorch模型文件的目录。例如,如果有一个名为llama2的PyTorch模型,可以通过运行Python convert.py models/Llama-2-7b-chat/将其转换为具有FP16权重的GGUF模型。
  5. 构建llama.cpp应用程序:在llama.cpp项目中,创建一个新的build目录,然后进入该目录。在这里,可以编译llama应用程序,以便进一步处理或使用转换后的模型文件。
  6. 量化模型:如果需要对模型进行自定义量化,可以根据llama.cpp项目的说明进行操作。这可能涉及到对llama项目的源代码进行修改或使用特定的量化工具。

​ 总的来说,通过上述步骤,可以将模型数据转换为GGUF格式,以便在CPU上进行快速推理,而不需要GPU。这一过程可能需要一定的技术知识和对相关工具的熟悉。