问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

深度认知大模型文件格式GGUF

创作时间:
作者:
@小白创作中心

深度认知大模型文件格式GGUF

引用
CSDN
1.
https://blog.csdn.net/feeltouch/article/details/140960710

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占位符)。

然后从主页,您可以从已安装的模型列表中选择模型并开始对话。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号