基于llama.cpp部署私有大模型

张开发
2026/4/16 23:31:25 15 分钟阅读

分享文章

基于llama.cpp部署私有大模型
部署llama.cpp按照如下操作完成1、在huggingface中找到合适的模型地址https://huggingface.co/根据主机配置选择合适的模型根据模型参数量xxb来判断xxb越大那么模型效果越好但需要的资源也越多-xxb-chat的模型是指令微调后的模型直接用来做人机对话的部署这种模型的后缀也有是-xxb-Instruct-xxb 像这样什么都不带的模型则是基础模型所以说这个不适合直接拿来做人机对话更适合在垂直领域上的训练或者微调-xxb-Chat-xx也算基础模型是在-xxb-Chat 模型上量化得到的所谓的量化就是将模型的参数从高精度模式转变为低精度格式这样能减小模型消耗资源的大小,让低资源配置的机器也能够正常运行大模型。简单来说模型量化Model Quantization就像是把一张“超高清蓝光原片”压缩成“720P清晰度”。虽然损失了一些细节但文件变小了播放也更流畅了。在深度学习中量化是将模型参数权重和激活值从高精度通常是 32 位浮点数FP32转换为低精度如 8 位整数INT8的过程。-xxb-chat-gguf 格式的模型是针对llama.cpp框架的这个框架是纯C的实现它的主要目标是在各种硬件资源上实现高效的大模型推理大模型推理框架有Transfromer,vLLM,llama.cpp它非常适合显存很小或者没有显卡的场景。llama.cpp的主要目标是让大语言模型在本地或云端的各种硬件上以最少的设置和最先进的性能进行推理它是基于C和C实现的这意味着它可以轻松的各种不通的操作系统上编译和运行。这个框架提供了各种的量化方案。在针对llama.cpp框架选择模型的时候选择量化模型的-xxb-chat-qx_k_m.gguf模型版本因为它保留了模型大部分的性能而且模型的体积也得到了最够的压缩。1.为什么要量化核心痛点现代大模型如 Llama 3, GPT 系列动辄拥有百亿、千亿级参数。如果不做处理它们会面临以下三个严峻问题内存占用巨大一个 FP32 的参数占用 4 字节。一个 70B700亿参数的模型仅权重就需要 280GB 显存普通的消费级显卡如 RTX 4090 仅 24GB根本跑不动。计算速度慢浮点数运算Floating Point比整数运算Integer更复杂消耗的时钟周期更多。能耗高在手机、摄像头等嵌入式设备上高精度的计算会迅速耗尽电量并导致设备发烫。2.量化的具体作用1. 极大地压缩模型体积通过量化模型大小通常能直接缩减为原来的1/4甚至更小。FP32→ \rightarrow→INT8体积缩小 4 倍。FP32→ \rightarrow→INT4体积缩小 8 倍这是目前大模型端侧运行的主流格式。2. 显著提升推理速度大多数现代芯片如英伟达的 Tensor Core、手机的 NPU在处理整数运算时单位时间内的计算量OPS远高于浮点运算。量化后的模型在推理Inference时响应更积极。3. 降低显存门槛量化让原本只能在昂贵服务器如 A100/H100上运行的模型能够跑在个人电脑、甚至手机的主存里。3.量化会有损失吗会有损失但通常在可接受范围内。量化本质上是引入了舍入误差。精度下降模型的逻辑推理能力、分类准确率可能会轻微下降。补偿方案现在的技术如QLoRA或AWQ已经能做到在量化到 4-bit 的情况下性能损失微乎其微。下载llama.cpp 下载地址 Release b8763 · ggml-org/llama.cpp · GitHub下载gguf的量化模型我选择千问3离线方式进行部署因为在线方式网络不稳定。下载地址Qwen/Qwen3-0.6B-GGUF at mainQwen/Qwen3-0.6B-GGUF at main手动下载模型文件由于llama-cli -hf这种自动下载方式受网络波动影响很大最稳妥的方法是手动下载。前往镜像站或 HF 官网手动下载Qwen3-0.6B-GGUF的.gguf文件。将文件放在你的D:\app\llama-b8763-bin-win-cpu-x64文件夹下。修改命令直接指向本地文件避开网络请求 Bashllama-cli -m Qwen3-0.6B-Q8_0.gguf --jinja --color on -ngl 99 -fa on -sm row --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 --presence-penalty 1.5 -c 40960 -n 32768 --no-context-shift(注意请根据你下载的实际文件名修改-m后面的参数)一个温馨的小提醒我注意到你的路径里写着win-cpu-x64并且日志显示加载的是ggml-cpu-icelake.dll。由于 Qwen3 虽然只有 0.6B但如果你想用-fa on(Flash Attention) 和-ngl 99(GPU 卸载)纯 CPU 编译版的 llama.cpp 是跑不动这些硬件加速特性的。如果手动下载后运行依然报错建议去掉-fa on和-ngl 99或者换成cublas(NVIDIA GPU) 版本的llama-cli。使用模型/运行模型执行命令llama-cli -m Qwen3-0.6B-Q8_0.gguf --jinja --color on -ngl 99 -fa on -sm row --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 --presence-penalty 1.5 -c 40960 -n 32768 --no-context-shift这个是终端方式进行交互如下图想要像gpt这样在浏览器里优雅地对话而不是对着黑乎乎的 CMD 窗口需要启动llama.cpp自带的Server 模式。它会开启一个本地网页服务器让你通过浏览器访问。使用llama-server最快、最直接在文件夹里应该有一个叫llama-server.exe的程序。如果没有通常llama-cli.exe所在的包里都会附带它。启动服务器在 CMD 中运行以下命令参数和你之前的基本一致只需把llama-cli换成llama-server下面的是已经下载好gguf模型执行方式如果需要在线下载运行使用-hf参数替换-m参数Bash llama-server -m Qwen3-0.6B-Q8_0.gguf --jinja -ngl 99 -fa on -sm row -c 8192 --host 0.0.0.0 --port 8080访问网页打开浏览器Chrome, Edge 等在地址栏输入http://127.0.0.1:8080开始对话你会看到一个非常简洁的 Web 界面功能齐全支持调整参数和聊天模式。如下图关键点提示保持 CMD 运行浏览器只是个“脸”llama-server.exe才是“大脑”。如果你关掉了 CMD 窗口网页就会失去响应。关于资源占用浏览器也会占用一部分内存如果你发现电脑卡顿可以适当调小-c 40960上下文窗口大小比如改为-c 8192。

更多文章