使用llama.cpp将hf模型转为gguf格式并量化为q4_k_m
此文将介绍如何使用 llama.cpp 将 ModelScope 上的 Qwen/Qwen3-4B-Instruct-2507 模型转换为 GGUF 格式 ,并进一步量化为 q4_k_m 类型。
一、准备工作
1. 安装 uv
也可以使用llama.cpp默认的poetry环境
2. 编译llama.cpp
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
# CPU Build,如果不需要量化,可以不用编译
cmake -B build
cmake --build build --config Release其他类型的build可以参照文档。
3. 迁移 poetry 到uv
llama.cpp默认使用的是poetry管理的虚拟环境,这里改为使用uv。
uvx migrate-to-uv --skip-lock
uvx sync -p 3.10(可选)修改pip镜像源
vim pyproject.toml找到[tool.uv],在下面新增index-url = "https://mirrors.aliyun.com/pypi/simple/"
安装依赖(使用python3.10版本)
uv sync -p 3.104. 下载模型
huggingface上下载比较慢,使用modelscope下载
uv add modelscope
uv run modelscope download Qwen/Qwen3-4B-Instruct-2507二、将模型转换为 GGUF 格式
1. 转换模型为未量化的 GGUF(f16)
uv run convert_hf_to_gguf.py --outtype f16 ~/.cache/modelscope/hub/models/Qwen/Qwen3-4B-Instruct-2507/⚠️ 注意:
--outtype不支持直接指定q4_k_m,需要后续步骤量化。
这一步将生成文件:
~/.cache/modelscope/hub/models/Qwen/Qwen3-4B-Instruct-2507/Qwen3-4B-Instruct-2507-F16.gguf四、量化为 q4_k_m 格式
要量化为
q4_k_m格式需要编译llama.cpp
使用 llama.cpp 自带的 quantize 工具进行量化:
./build/bin/llama-quantize ~/.cache/modelscope/hub/models/Qwen/Qwen3-4B-Instruct-2507/Qwen3-4B-Instruct-2507-F16.gguf ~/.cache/modelscope/hub/models/Qwen/Qwen3-4B-Instruct-2507/Qwen3-4B-Instruct-2507-Q4_K_M.gguf q4_k_m最终你将获得一个轻量、本地可运行的模型文件:
~/.cache/modelscope/hub/models/Qwen/Qwen3-4B-Instruct-2507/Qwen3-4B-Instruct-2507-Q4_K_M.gguf五、本地运行模型
使用 llama.cpp 启动模型:
./build/bin/llama-cli -m ~/.cache/modelscope/hub/models/Qwen/Qwen3-4B-Instruct-2507/Qwen3-4B-Instruct-2507-Q4_K_M.gguf -p "Hey!"关于不同量化格式的区别可以参照这篇文章。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Ryan的折腾日记
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果