将AI9Stars的G9v3-39A5B量化至GGUF格式并创建专用llama.cpp分支
摘要
本文介绍了将AI9Stars G9v3-39A5B混合专家模型非官方量化至GGUF格式的过程,以及为支持BF16与Q4_K_M变体本地推理而创建的llama.cpp专用分支。
查看缓存全文
缓存时间: 2026/08/15 05:48
linuxid10t/G9v3-39A5B-GGUF · Hugging Face
来源:https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#g9v3-39a5b-gguf G9v3-39A5B GGUF
此仓库包含ai9stars/G9v3-39A5B (https://huggingface.co/ai9stars/G9v3-39A5B) 的非官方BF16和Q4_K_M GGUF转换版本,这是AI9Stars的一个预览版混合专家语言模型。
此转换是使用G9v3架构的llama.cpp实现创建并测试的,该实现位于feature/g9v3-support (https://github.com/linuxid10t/llama.cpp/tree/feature/g9v3-support) 分支。在G9v3支持合并到上游之前,标准llama.cpp构建将无法加载此模型。
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#available-files 可用文件
| 文件名 | 格式 | 大小 | SHA-256 |
|---|---|---|---|
G9v3-39A5B-BF16.gguf | BF16 | 72.63 GiB (77,988,959,200 字节) | 016c0c8a708fc5d4e2378df1eb9b5f089d7e91b581914e2565fb819bcebe9196 |
G9v3-39A5B-Q4_K_M.gguf | Q4_K_M | 21.94 GiB (23,559,222,240 字节) | 0c28e98eef634ca2304a492c7b2c92d8599189ae4409177f7edf50da5b082eb0 |
根据您的硬件和质量需求选择文件:
| 格式 | 描述 | 推荐系统内存 |
|---|---|---|
| BF16 | 最高保真度的GGUF。源BF16张量被保留,同时包含必需的F32张量。 | 96 GiB或更多 |
| Q4_K_M | 混合K量化,部分张量保持更高精度;适用于本地CPU推理。 | 32 GiB或更多 |
内存推荐值已为运行时、上下文和操作系统留出空间。实际需求会因上下文大小和llama.cpp设置而异。
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#model-details 模型详情
| 属性 | 值 |
|---|---|
| 架构 | G9v3ForCausalLM,稀疏MoE |
| 参数 | 总计约39B / 每个token激活约5B |
| 层数 | 38层(1个密集层后跟37个MoE层) |
| 隐藏大小 | 2,048 |
| 注意力头 | 32个查询头,2个键/值头,头维度128 |
| 专家 | 320个路由专家,每个token选择32个,外加1个共享专家 |
| 专家中间大小 | 512 |
| 词表 | 130,560个token |
| 最大上下文 | 131,072个token |
| 语言 | 英语和中文 |
| 特性 | 思考/不思考模式、工具调用、长上下文 |
基础模型为预览版本。原始描述和用法指南请参考ai9stars/G9v3-39A5B模型卡片 (https://huggingface.co/ai9stars/G9v3-39A5B)。
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#llamacpp-setup llama.cpp 设置
构建支持G9v3的分支:
git clone --branch feature/g9v3-support --single-branch \
https://github.com/linuxid10t/llama.cpp.git
cmake -S llama.cpp -B llama.cpp/build -DCMAKE_BUILD_TYPE=Release
cmake --build llama.cpp/build --target llama-cli llama-server -j
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#command-line 命令行
两个GGUF文件都包含模型的聊天模板。使用Q4_K_M文件启动交互式对话:
./llama.cpp/build/bin/llama-cli \
-m G9v3-39A5B-Q4_K_M.gguf \
-c 4096 -t 32 -cnv
对于BF16版本,使用相同命令但更换文件名:
./llama.cpp/build/bin/llama-cli \
-m G9v3-39A5B-BF16.gguf \
-c 4096 -t 32 -cnv
建议从适中的上下文大小(如4,096个token)开始,然后根据可用内存和工作负载增加。
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#openai-compatible-server OpenAI兼容服务器
./llama.cpp/build/bin/llama-server \
-m G9v3-39A5B-Q4_K_M.gguf \
-c 4096 -t 32 -tb 32 \
--host 127.0.0.1 --port 8080
在内存充足的机器上提供BF16版本服务时,请将模型文件名替换为G9v3-39A5B-BF16.gguf。
请求示例:
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "G9v3-39A5B-Q4_K_M.gguf",
"messages": [{"role": "user", "content": "Who are you?"}],
"temperature": 0.7,
"top_p": 0.95,
"max_tokens": 256
}'
仅在配置适当的认证和网络控制后,才将服务器绑定到非回环地址。
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#conversion-provenance 转换溯源
源BF16检查点通过以下命令转换为GGUF并进行量化:
python convert_hf_to_gguf.py G9v3-39A5B \
--outfile G9v3-39A5B-BF16.gguf \
--outtype bf16
./build/bin/llama-quantize \
G9v3-39A5B-BF16.gguf \
G9v3-39A5B-Q4_K_M.gguf \
Q4_K_M 32
转换环境:
- llama.cpp 基础提交:
9d57ce456(b10436) - G9v3 支持提交:
77b13da1a(https://github.com/linuxid10t/llama.cpp/commit/77b13da1a) - GGUF 版本:V3
- 张量数量:每个文件568个
- BF16 权重大小:74,371.15 MiB,每个权重16.01位
- Q4_K_M 权重大小:22,462.90 MiB,每个权重4.84位
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#validation-and-performance 验证与性能
Q4_K_M模型在纯CPU系统上使用llama-cli和llama-server进行了端到端测试。以下性能数据仅适用于Q4_K_M版本。
| 硬件 | 上下文 | 线程 | 提示处理 | 生成速度 |
|---|---|---|---|---|
| AMD Ryzen 9 9950X, 64 GiB RAM, 仅CPU | 4,096 | 32 | 50.18–57.9 tokens/s | 10.0–10.03 tokens/s |
实际速率会因提示长度、线程数、内存速度、构建选项和操作系统而异。
已执行的验证:
- 成功从Q4_K_M文件加载并生成文本
- 成功发送带有独立推理内容的
/v1/chat/completions请求 - BF16 GGUF元数据及全部568个张量形状加载成功
- BF16文件成功用作Q4_K_M量化的源文件
- 在rebase到llama.cpp
b10436后,转换器干运行通过所有15个源检查点分片 - 合成G9v3 CPU架构测试:零数值错误
- GGUF序列化往返测试:通过
BF16文件未在64 GiB验证机上进行生成基准测试;需要内存更多的系统进行代表性测试。
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#sampling 采样
基础模型作者推荐以下设置:
| 模式 | 温度 | Top-p |
|---|---|---|
| 思考 | 1.0 | 0.95 |
| 不思考 | 0.7 | 0.95 |
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#limitations 局限性
- Q4_K_M是有损量化,性能可能与BF16文件及原始检查点不同。
- BF16 GGUF保留了源精度,但内存和存储需求高得多。
- G9v3是预览模型,可能产生不准确、有偏见或不安全的输出。
- 在医疗、法律、金融、安全关键或其他高风险场景使用前,应独立审查输出。
- 此GGUF当前依赖所链接的支持G9v3的llama.cpp分支。
- 本次转换测试未对长上下文能力进行基准测试。
https://huggingface.co/linuxid10t/G9v3-39A5B-GGUF#license-and-attribution 许可与归属
原始模型由AI9Stars基于Apache License 2.0发布。此转换保留该许可证。完整许可证条款和归属信息请参见基础模型仓库。
此转换为独立制作,并非AI9Stars的官方发布。
相似文章
这是我的 llama.cpp NVFP4/MXFP6 GGUF 量化工具
作者介绍了一款开源的 GGUF 量化工具,用于 llama.cpp,能够创建 NVFP4 和 MXFP6 量化模型,并采用 RSF、张量提升、动态量化等先进技术,质量优于现有方法(如 ModelOpt)。
LiquidAI/LFM2.5-2.6B-GGUF
此 Hugging Face 模型卡片介绍了 LiquidAI 的 LFM2.5-2.6B 模型(GGUF 量化格式),并提供了通过 llama.cpp、vLLM、Ollama 等工具在本地运行的说明。
LiquidAI/LFM2.5-8B-A1B-GGUF
LiquidAI 发布了其 LFM2.5-8B-A1B 模型的 GGUF 量化版本,并提供了在多个推理引擎上的使用说明。
GnLOLot/MiniCPM5-1B-Claude-Opus-Fable5-Thinking-GGUF
MiniCPM5-1B-Claude-Opus-Fable5-Thinking 模型的 GGUF 量化版本已在 Hugging Face 上发布,并附有 llama.cpp、vLLM 和 Ollama 的使用说明。
@WaleedAhmad1a10: 查看 Qwen 3.5 27B MoQ 的 GGUF 文件:
Hugging Face 仓库 (kaitchup/Qwen3.6-27B-GGUF-MoQ) 提供了 Qwen3.6-27B MoQ 模型的 GGUF 量化权重,支持使用 llama.cpp 和 Ollama 等工具进行本地推理。