跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++AI算法

新版 llama.cpp 使用及本地部署 LLaMA

详细介绍如何使用 llama.cpp 在本地部署 LLaMA 大模型。内容涵盖环境搭建(含 CUDA 配置)、模型格式转换流程(pth 至 hf 再至 gguf)、量化处理方法、命令行交互与 API 服务启动方式,以及通过 Open WebUI 构建本地聊天界面的完整步骤。旨在帮助用户利用 CPU 或 GPU 资源高效运行开源大模型。

热情发布于 2026/4/5更新于 2026/9/991 浏览
新版 llama.cpp 使用及本地部署 LLaMA

简介

llama.cpp 是一个专注于推理性能优化的项目,主要解决大模型在本地运行时的效率问题。它基于 C/C++ 实现,无外部依赖,支持广泛的硬件平台(CPU、GPU、NPU 等),并提供多种量化方案以加快推理速度并减少内存占用。

1. llama.cpp 环境安装

克隆仓库并进入该目录:

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

构建 GPU 执行环境,确保已安装 CUDA 工具包。如果 CUDA 设置正确,执行 nvidia-smi 或 nvcc --version 应无错误提示。

mkdir build
sudo apt-get install make cmake gcc g++
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j4
cd build
make install

在当前版本中,部分指令已被重命名为 llama-quantize、llama-cli、llama-server。可通过软链接方便调用:

ln -s /path/to/llama.cpp/build/bin/llama-quantize llama-quantize
ln -s /path/to/llama.cpp/build/bin/llama-server llama-server
ln -s /path/to/llama.cpp/build/bin/llama-cli llama-cli

2. LLAMA 模型转换

2.1 PTH 原始模型处理

首先安装 Python 3.10 及相关依赖:

pip install protobuf==3.20.0
pip install transformers
pip install sentencepiece
pip install peft

下载原版 LLaMA 模型的权重和 tokenizer.model 文件。可使用 IPFS 客户端、BitTorrent 或 pyllama 库进行下载。例如使用 pyllama:

pip3 install transformers pyllama -U
python3 -m llama.download --model_size 7B

2.2 转为 HF 格式

使用 HuggingFace 提供的脚本将原版 LLaMA 模型转换为 HuggingFace 格式:

git clone https://github.com/huggingface/transformers.git
cd transformers
python src/transformers/models/llama/convert_llama_weights_to_hf.py \
--input_dir /workspace/pth_model/7B \
--model_size 7B \
--output_dir /workspace/hf_data

若需合并 LoRA 权重,可使用 Chinese-LLaMA-Alpaca 项目中的脚本:

git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca.git
cd Chinese-LLaMA-Alpaca
python scripts/merge_llama_with_chinese_lora.py \
--base_model /workspace/hf_data \
--lora_model /workspace/chinese_llama_lora_7B \
--output_dir /workspace/lora_pth_data

2.3 HF 转 GGUF 模型

将模型转化为 gguf 格式并进行量化。在 llama.cpp 路径下执行:

# HF 版本转换
python convert_hf_to_gguf.py ../hf_data --outfile /workspace/chinese_gguf/llama-7b.gguf --outtype q8_0

# PTH 版本转换
python3 examples/convert_legacy_llama.py /workspace/lora_pth_data/ --outfile /workspace/chinese_gguf/chinese.gguf

使用 llama-quantize 进行精度转换,例如 Q4_0:

llama-quantize /workspace/chinese_gguf/chinese.gguf /workspace/chinese_gguf/chinese_q4_0.gguf Q4_0

3. 使用 llama.cpp 运行 GGUF 模型

3.1 交互模式

通过 llama-cli 运行模型:

llama-cli -m chinese_q4_0.gguf -p "you are a helpful assistant" -cnv -ngl 24

参数说明:

  • -m: 指定模型文件
  • -cnv: 对话模式
  • -ngl: 卸载到 GPU 的层数

3.2 模型 API 服务

启动 API 服务,默认端口 8080:

./llama-server -m /mnt/workspace/my-llama-13b-q4_0.gguf -ngl 28

测试请求:

curl --request POST \
--url http://localhost:8080/completion \
--header "Content-Type: application/json" \
--data '{"prompt": "What color is the sun?", "n_predict": 512}'

也可通过 OpenAI SDK 访问:

import openai
client = openai.OpenAI(
    base_url="http://127.0.0.1:8080/v1",
    api_key="sk-no-key-required"
)
completion = client.chat.completions.create(
    model="qwen",
    messages=[{"role":"user","content":"tell me something about michael jordan"}]
)
print(completion.choices[0].message.content)

4. 实现类似 ChatGPT 的聊天应用

借助开源项目打造本地聊天界面,推荐使用 Open WebUI。支持 Docker 安装:

docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main

浏览器访问 http://localhost:3000/ 即可使用。

5. 参考链接

  • llama.cpp GitHub
  • Hugging Face Models
  • Chinese-LLaMA-Alpaca Wiki
  • Qwen Local Run Docs

目录

  1. 简介
  2. 1. llama.cpp 环境安装
  3. 2. LLAMA 模型转换
  4. 2.1 PTH 原始模型处理
  5. 2.2 转为 HF 格式
  6. 2.3 HF 转 GGUF 模型
  7. HF 版本转换
  8. PTH 版本转换
  9. 3. 使用 llama.cpp 运行 GGUF 模型
  10. 3.1 交互模式
  11. 3.2 模型 API 服务
  12. 4. 实现类似 ChatGPT 的聊天应用
  13. 5. 参考链接

更多推荐文章

查看全部
  • VSCode Copilot 无法连接网络问题解决方案
  • 前端 Canvas 基础与实战应用
  • Spring AI:Java 生态原生 AI 框架入门指南
  • 《Agent Runtime 工程化》第五章 上下文工程:5.1 token budget 是产品预算
  • 医疗连续体机器人模块化控制界面设计与 Python 库应用研究
  • 鸿蒙金融理财全栈项目:上线运维、用户反馈与持续迭代
  • Linux 库的制作与原理
  • OpenClaw Web Search 工具配置与渠道选择指南
  • AI Agent 设计模式实战:ReAct 架构详解
  • ERNIE-4.5 系列模型单卡部署与心理健康机器人应用
  • Whisper-large-v3 持续集成:GitHub Actions 自动测试与模型版本灰度发布
  • LLM 学习路径:从入门到精通技术指南
  • Clawdbot(Moltbot)源码部署实战:从环境搭建到 WebChat 验证
  • 线性代数与 AI 的关系
  • 在本地 Mac 上从零部署 OpenClaw AI Agent 教程
  • 飞书 OpenClaw 机器人 HTTP 401 认证失败排查与解决方案
  • IntelliJ IDEA 打包 Web 项目 WAR 包及 Tomcat 部署指南
  • Arduino BLDC 驱动方案:MimiClaw + ESP32 嵌入式机器人实战
  • SpringDoc OpenAPI 常用注解详解与实战示例
  • 前端微前端架构实践:避免巨石应用

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online