大模型基于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

微信 H5 缓存控制:后端重定向 & 前端强制刷新

在 Web 开发中,缓存是一把双刃剑。对于静态资源,它能极大提升加载速度;但对于业务逻辑频繁变动的 H5 页面(如支付、订单页),缓存往往会导致用户看到过期的数据或界面。最近在维护一个 uni-app 项目时,遇到了一段关于 H5 缓存控制的逻辑,引发了我对于“后端重定向加时间戳”和“前端 JS 加时间戳”这两种方案的思考。虽然两者的最终目的一致,但在 Hash 模式下,它们的实现原理和效果有着本质的区别。 一、 问题背景 在应用启动的生命周期中,通常会有这样一段逻辑:当用户访问特定的关键页面(如支付、订单页)时,如果当前 URL 中缺少时间戳参数,前端会自动解析 URL,追加当前时间戳,并强制页面刷新。 这就引出了一个问题:为什么不直接在后端重定向时加时间戳?这两种方式有什么区别? 二、 核心区别:

Windows家用电脑也能玩转Gemma3大模型?手把手教你用Ollama+Open WebUI搭建AI聊天室

家用Windows电脑变身AI工作站:零门槛部署Gemma3大模型实战指南 你是否也曾觉得,那些动辄需要数万甚至数十万专业设备的AI大模型,离普通人的生活太过遥远?看着科技新闻里各种模型“跑分”的新闻,心里痒痒的,却苦于没有合适的硬件去亲手尝试?今天,我想和你分享一个可能颠覆你认知的事实:你手边那台用来追剧、办公的Windows家用电脑,完全有能力成为一个功能完整的AI工作站。 没错,我说的不是那些需要专业显卡、昂贵服务器的“庞然大物”,而是谷歌最新开源的Gemma3系列模型。这个家族提供了从1B到27B不同参数规模的版本,特别是经过优化的轻量级版本,对硬件的要求已经降到了令人惊喜的程度。更重要的是,整个部署过程并不需要你具备多深的系统运维知识,更像是在安装一个功能强大的软件。 这篇文章,就是为你——那些对AI技术充满好奇,但预算有限、设备普通的个人开发者、学生或技术爱好者准备的。我们将彻底抛开那些复杂的云服务配置和命令行“黑话”,用最直观、最接地气的方式,一步步将Gemma3大模型“请”到你的Windows电脑里,并给它配上一个漂亮易用的网页聊天界面。你会发现,体验前沿AI技术

AI时代,前端到底在干什么?从“页面仔”到“智能交互架构师”的范式跃迁

AI时代,前端到底在干什么?从“页面仔”到“智能交互架构师”的范式跃迁

引言:当“前端已死”的论调甚嚣尘上 随着 Copilot、Cline 等 AI 编码工具的普及,许多前端开发者陷入了焦虑:如果 AI 能自动生成 HTML/CSS/JS,那我的价值何在?答案是:AI 消灭的不是前端,而是“切图仔”和“页面堆砌工”。AI 时代的前端,工作重心发生了根本性的转移,从实现静态布局转向设计动态交互流。 本文将围绕 “智能交互架构”、“Agent 集成”与“可观测性” 三个维度,深度拆解 AI 时代前端工程师的核心职责。 一、范式跃迁:从“静态页面”到“动态对话流” 旧范式:页面堆叠(Static Page Stacking)