返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

模型太大跑不动?手把手教你用llama.cpp量化Qwen大模型

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 21:12 |阅读模式 打印 上一主题 下一主题

想体验最新大模型却苦于显存不足? 今天我们就教你如何用llama.cpp,轻松将从Hugging Face 或 ModelScope下载的模型进行量化处理!只需简单几步,就能大幅降低显存需求,让你的“小”硬件也能流畅运行大模型。

什么是模型量化

量化 (Quantization) 是一种通过降低模型参数的数值精度来压缩模型大小的技术。在深度学习中, 模型参数通常以32位浮点数 (FP32) 存储, 通过量化可以将其转换为更低精度的表示形式, 从而减少模型的内存占用和计算开销。

有哪些量化格式

常见的量化格式有F16、Q2_K、Q3_K_S、Q3_K_M、Q3_K_L、Q4_K_S、Q4_K_M、Q5_K_S、Q5_K_M、Q6_K,量化后的性能如下,以7B大小的模型为例。

量化格式困惑度模型大小
F165.906613.0G
Q2_K6.77642.67G
Q3_K_S6.45712.75G
Q3_K_M6.15033.06G
Q3_K_L6.08693.35G
Q4_K_S6.02153.56G
Q4_K_M5.96013.80G
Q5_K_S5.94194.33G
Q5_K_M5.92084.45G
Q6_K5.9115.15G

什么是llama.cpp

llama.cpp由开发者Georgi Gerganov打造,是一款开源C++推理引擎框架。llama.cpp无需依赖高端显卡,仅凭纯CPU就能运行。

安装llama.cpp

本文中用到的系统型号为Ubuntu 24.04,显卡为NVIDIA GeForce RTX 4070 显存12G。

首先从githup上下载llama.cpp

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

进入到llama.cpp路径下,参考docs/build.md文档进行编译,我们是带GPU的,可以执行以下命令。

cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

如果你的电脑没有GPU,参照文档描述可以执行

cmake -B build
cmake --build build --config Release

等待编译完成,表示llama.cpp安装成功了。

llama.cpp 量化大模型

我们以Qwen2.5-VL的3B模型为例,进行q_4量化。先从hugging face或者是modelscope平台上下载该模型。

frommodelscopeimportsnapshot_download
model_dir = snapshot_download('Qwen/Qwen2.5-VL-3B-Instruct', local_dir="model_path/")

然后执行convert_hf_to_gguf.py将hf模型转化为gguf格式

python convert_hf_to_gguf.py --outfile convert_model_save_path/ your_model_path/

接着进行Q4量化

cd build/bin
./llama-quantize convert_model_save_path/Qwen2.5-VL-3B-Instruct-F16.gguf q4_0

等待程序执行完,Q4量化就完成了。查看下量化结果,模型的体积从6G减少到了1.7G

Q4量化结果

再用llama.cpp测试一下对话效果。

./llama-run convert_model_save_path/ggml-model-Q4_0.gguf"你是谁"
llama.cpp 运行量化后的模型

ollma中运行模型

首先部署一个Ollama,我们用docker部署。

docker pull ollama/ollama
docker run -d --gpus=all -v ollama:/root/.ollama -p12434:11434--name ollama ollama/ollama

测试ollama是否部署成果

测试ollama是否部署成功

编写Modelfile

FROM/root/.ollama/models/ggml-model-Q4_0.gguf

TEMPLATE"""
<|im_start|>system
{{ .System }}<|im_end|>
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""

PARAMETER stop"<|im_end|>"

构建模型

ollama create my-qwen25 -f ./Modelfile

运行模型

ollamarunmy-qwen25
ollama测试模型
(完)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ