深度认知大模型文件格式GGUF
深度认知大模型文件格式GGUF
GGUF是一种针对快速加载和保存模型进行了优化的二进制格式,在AI领域具有广泛的应用前景。本文将从多个维度深度解析GGUF文件格式,包括其特点、使用方法以及与开源工具的结合使用。
一、前言
Hugging Face Hub 支持所有文件格式,但内置了GGUF 格式的功能,这是一种二进制格式,针对快速加载和保存模型进行了优化,使其在推理方面非常高效。GGUF 旨在与 GGML 和其他执行器一起使用。GGUF 由@ggerganov开发,他也是流行的 C/C++ LLM 推理框架llama.cpp的开发者。最初在 PyTorch 等框架中开发的模型可以转换为 GGUF 格式,以便与这些引擎一起使用。
正如我们在图中所看到的,与safetensors等仅限张量的文件格式(也是 Hub 的推荐模型格式)不同,GGUF 对张量和一组标准化的元数据集进行了编码。
查找 GGUF 文件
您可以通过 GGUF 标签过滤浏览所有包含 GGUF 文件的模型:hf.co/models?library=gguf。此外,您还可以使用ggml-org/gguf-my-repo工具将您的模型权重转换/量化为 GGUF 权重。
例如,您可以查看TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF来查看 GGUF 文件的实际运行情况。
元数据和张量信息查看器
Hub 有一个 GGUF 文件查看器,可让用户查看元数据和张量信息(名称、形状、精度)。查看器可在模型页面(示例)和文件页面(示例)上使用。
与开源工具一起使用
- llama.cpp
- GPT4All
用@huggingface/gguf解析元数据
We’ve also created a javascript GGUF parser that works on remotely hosted files (e.g. Hugging Face Hub)。
npm install @huggingface/gguf
import { gguf } from "@huggingface/gguf";
// remote GGUF file from https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF
const URL_LLAMA = "https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/191239b/llama-2-7b-chat.Q2_K.gguf";
const { metadata, tensorInfos } = await gguf(URL_LLAMA);
GGUF 与 llama.cpp 的用法
Llama.cpp 允许您下载并在 GGUF 上运行推理,只需提供 Hugging Face repo 路径和文件名即可。llama.cpp 下载模型检查点并自动缓存。缓存的位置由LLAMA_CACHE环境变量定义,在此处阅读更多信息:
./llama-cli
--hf-repo lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF \
--hf-file Meta-Llama-3-8B-Instruct-Q8_0.gguf \
-p "You are a helpful assistant" -cnv
注意:您可以删除-cnv以在聊天完成模式下运行 CLI。此外,您可以使用 llama.cpp 服务器直接调用 OpenAI spec 聊天完成端点:
./llama-server \
--hf-repo lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF \
--hf-file Meta-Llama-3-8B-Instruct-Q8_0.gguf
运行服务器后,您可以简单地使用端点,如下所示:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer no-key" \
-d '{
"messages": [
{
"role": "system",
"content": "You are an AI assistant. Your top priority is achieving user fulfilment via helping them with their requests."
},
{
"role": "user",
"content": "Write a limerick about Python exceptions"
}
]
}'
将其替换--hf-repo为任何有效的 Hugging Face 中心存储库名称以及--hf-file中心存储库中的 GGUF 文件名 - 即可开始!🦙
注意:记得build在 llama.cpp 中添加LLAMA_CURL=1:)
GGUF 与 GPT4All 的结合使用
GPT4All是由Nomic开发的开源 LLM 应用程序。2.7.2 版本引入了一项名为的全新实验性功能Model Discovery。
Model Discovery提供了一种内置方式来从 Hub 搜索和下载 GGUF 模型。要开始使用,请打开 GPT4All 并单击Download Models。从这里,您可以使用搜索栏查找模型。
选择并下载模型后,您可以前往Settings并提供 GPT4All 格式的适当提示模板(%1和%2占位符)。
然后从主页,您可以从已安装的模型列表中选择模型并开始对话。