大模型基于llama.cpp量化详解

大模型基于llama.cpp量化详解

概述

llama.cpp 是一个高性能的 LLM 推理库,支持在各种硬件(包括 CPU 和 GPU)上运行量化后的大语言模型。本文档详细介绍如何使用 llama.cpp 将 HuggingFace 格式的模型转换为 GGUF 格式,并进行不同程度的量化。

GGUF 格式:GGUF(Georgi Gerganov Universal Format)是 llama.cpp 专门设计的模型文件格式,针对快速加载和保存模型进行了优化,支持单文件部署,包含加载模型所需的所有信息,无需依赖外部文件。

1.安装cmake
CMake 是跨平台的构建工具,用于编译 llama.cpp 项目。

下载地址:https://cmake.org/download/

安装建议

  • Windows 用户建议下载 cmake-3.x.x-windows-x86_64.msi 安装包
  • 安装时选择 “Add CMake to the system PATH”,以便在命令行中直接使用

验证安装

cmake --version 2.安装llama.cpp ```bash git clone https://github.com/ggerganov/llama.cpp 

convert_hf_to_gguf.py:HuggingFace 格式转 GGUF 的脚本
llama-quantize(或 quantize.exe):量化工具
main(或 main.exe):推理主程序
examples/:各种示例程序

3.编译

cd llama.cpp pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install -r requirements/requirements-convert_hf_to_gguf.txt cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -B build cmake --build build --config Release 

4.模型转换
将safetensors转换为gguf

 convert-hf-to-gguf.py D:\\Project\\2026\\llama3-lora-merge --outtype f16 --outfile D:\\Project\\2026\\my_llama3.gguf 

参数说明:
D:\Project\2026\llama3-lora-merge:输入模型路径(包含 config.json 和权重文件的目录)
–outtype f16:输出类型,f16 表示半精度浮点数(16-bit),可选 f32(全精度)或 bf16
–outfile:输出 GGUF 文件路径

类型精度说明
f3232-bit全精度,文件最大,精度最高
f1616-bit半精度,平衡选择
bf1616-bitBrain Float,动态范围更大
q8_08-bit直接量化为 8 位

6.进一步量化

 D:\Project\2026\test_llama3.cpp\llama.cpp\build\bin\Release quantize.exe D:\\Project\\2026\\my_llama3.gguf D:\\Project\\2026\\quantized_model.gguf q4_0 

llama-quantize可执行文件来对模型进行进一步量化处理。量化可以帮助我们减少模型的大小,但是代价是损失了模型精度,也就是模型回答的能力可能有所下降。权衡以后我们可以选择合适的量化参数,保证模型的最大效益。
量化使用 q 表示存储权重的位数。位数越低,模型越小,速度越快,但精度损失越大。

量化类型位宽精度损失适用场景典型压缩率
q2_k2-bit极低资源环境,实验用途~75%
q3_k_s / q3_k_m / q3_k_l3-bit中高资源受限,可接受一定质量损失~60%
q4_0 / q4_14-bit最常用,平衡大小与质量~50%
q4_k_s / q4_k_m4-bit改进的 4-bit,质量更好~50%
q5_0 / q5_15-bit较高质量要求~40%
q5_k_s / q5_k_m5-bit改进的 5-bit~40%
q6_k6-bit很低接近原始质量~35%
q8_08-bit极低几乎无损,文件较大~25%
f1616-bit原始转换,未量化0%

K-quant 说明:
后缀带 _k 的(如 q4_k_m)使用改进的量化算法
混合量化策略:对 attention 层使用更高精度,其他层使用较低精度
_s(small)、_m(medium)、_l(large)表示混合程度

Read more

GitHub Copilot 在 VS Code 上的终极中文指南:从安装到高阶玩法

GitHub Copilot 在 VS Code 上的终极中文指南:从安装到高阶玩法

GitHub Copilot 在 VS Code 上的终极中文指南:从安装到高阶玩法 前言 GitHub Copilot 作为 AI 编程助手,正在彻底改变开发者的编码体验。本文将针对中文开发者,深度解析如何在 VS Code 中高效使用 Copilot,涵盖基础设置、中文优化、核心功能详解,并提供多个实战场景配置模板。 一、安装与配置全流程 1. 完整安装步骤 1. 扩展安装 * 打开 VS Code → 点击左侧活动栏的 Extensions 图标(或按 Ctrl+Shift+X) * 搜索框输入 GitHub Copilot → 点击安装按钮 2. 账号授权 * 安装完成后右下角弹出通知 → 点击 Sign in

FPGA纯verilog实现JESD204B协议,基于ADRV9009数据环回收发,提供2套工程源码和技术支持

FPGA纯verilog实现JESD204B协议,基于ADRV9009数据环回收发,提供2套工程源码和技术支持

目录 * 1、前言 * 什么是JESD204B协议? * 官方有Example,为何要用你这个? * 工程概述 * 免责声明 * 2、相关方案推荐 * 我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目 * 我这里已有的 GT 高速接口解决方案 * 我这里已有的 JESD204 高速AD接口解决方案 * 3、工程详细设计方案 * 工程设计原理框图 * JESD204B 硬件设计架构 * 信号输入设备 * ADRV9009芯片解读 * 纯verilog实现的JESD204B 物理层方案 * 纯verilog实现的JESD204B 链路层接收方案 * 纯verilog实现的JESD204B 链路层发送方案 * 纯verilog实现的JESD204B 传输层接收方案 * 纯verilog实现的JESD204B 传输层发送方案 * PL端逻辑工程源码架构 * PS端软件工程源码架构 * 4、vivado工程源码1详解-->Zynq7045版本 * 5、vivado

把 Vivado 项目放心交给 Git:一篇 FPGA 工程师必读的实战指南

之前分享过一篇文章《FPGA 版本管理三种方式:你会选哪一种?》,评论区很多人都推荐使用Git进行版本管理,今天这篇文章主题就是使用Git进行备份指南。 在 FPGA 开发中,掌握 Git 等源码管理工具已经是必备技能。 当然,在使用 Vivado 时,我们不仅需要处理源代码控制,还需要处理以 IP 为中心的设计产品。 Vivado 的工程通常是 IP 为中心 的设计,包含: * IP Integrator Block Diagram * 各类 IP 实例(独立 IP 或 BD 内 IP) * 自动生成的包装文件与工程产物 这让很多 FPGA 工程师一开始会觉得: “Vivado 项目到底该怎么和 Git 一起用?” 好消息是,从 Vivado

RMBG-2.0多任务协同方案:接入Stable Diffusion工作流,生成→抠图→合成一体化

RMBG-2.0多任务协同方案:接入Stable Diffusion工作流,生成→抠图→合成一体化 1. 为什么抠图成了AI图像工作流的“卡点”? 你有没有遇到过这样的场景:用Stable Diffusion生成了一张绝美的角色立绘,但背景太杂乱,想换到电商详情页却卡在了抠图环节?手动PS耗时半小时,AI在线工具又担心图片上传泄露隐私,还动不动就崩掉——毛发边缘糊成一片,玻璃杯透明感全无,甚至把飘动的发丝直接切掉。 这不是个别现象。大量设计师、内容创作者、电商运营者反馈:生成容易,落地难;模型很炫,流程断在抠图这一步。 而RMBG-2.0(BiRefNet)的出现,正在悄悄改变这个局面。它不是又一个“差不多能用”的抠图工具,而是首个真正意义上能无缝嵌入本地AI图像工作流的高精度、低延迟、零隐私风险抠图引擎。它不只解决“能不能抠”,更解决“抠完怎么用”——直接对接SD WebUI、ComfyUI、乃至自定义Python脚本,让“生成→