llama.cpp 安装与使用指南

llama.cpp 安装与使用指南

最新在使用llama.cpp的开源框架,所以简单写一下安装过程以及相关的介绍。

llama.cpp 是一个高性能的开源推理框架,用于在 CPU 和 GPU 上运行 LLaMA
系列及其他兼容的 Transformer 模型。
它的特点是轻量、跨平台、可在无显卡的设备上运行,同时对显卡显存利用率很高。


1. 项目介绍

llama.cpp 主要功能: - 支持多种量化格式(Q4, Q5, Q8, Q2
等),显著减少显存占用。 - 支持
CPU、GPU(CUDA、Metal、OpenCL、Vulkan)等多种后端。 - 提供简单易用的 CLI
和 HTTP 服务接口。 - 支持大多数 Hugging Face 上的
LLaMA、Qwen、Mistral、Baichuan、ChatGLM 等模型(需转换为 GGUF 格式)。

项目地址:https://github.com/ggerganov/llama.cpp


2. 安装方法

2.1 使用预编译版本(推荐新手)

  1. Releases
    页面下载适配系统的二进制包(Windows/Linux/macOS)。
  2. 解压到目标目录。

测试是否可运行:

./llama-cli --help

2.2 从源代码构建(适合需要定制化)

依赖环境
  • Linux / macOS / Windows WSL
  • cmake(>= 3.20)
  • make
  • gcc / clang
  • CUDA Toolkit(如果需要 GPU 加速)
构建步骤(Linux / macOS)
# 克隆项目git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp # 创建构建目录mkdir build &&cd build # GPU 版本(CUDA) cmake ..-DLLAMA_CUBLAS=ON make -j$(nproc)# CPU 版本 cmake ..make -j$(nproc)

构建完成后会生成: - llama-cli:命令行推理工具 - llama-server:HTTP
API 服务 - quantize:模型量化工具


3. 模型准备

3.1 下载模型

可以从 Hugging Face 下载模型权重(需要科学上网),例如:

git lfs installgit clone https://huggingface.co/Qwen/Qwen2-7B 

3.2 转换为 GGUF 格式

llama.cpp 只能加载 GGUF 格式模型,需要用官方脚本转换:

python3 convert.py /path/to/model --outfile model.gguf 

3.3 量化模型(可选,减少显存)

./quantize model.gguf model-q4_0.gguf q4_0 

4. 启动 HTTP 服务

./llama-server -m ./model-q4_0.gguf --port9558 --gpu-layers 40

参数说明: - -m:模型路径 - --port:HTTP 服务端口 -
--gpu-layers:加载到 GPU 的层数(越多显存占用越高,推理更快)


5. 常见问题

Q1: CUDA 版本报错 libcublas.so not found

原因:CUDA Toolkit 未正确安装或路径未添加。 解决:

exportLD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

Q2: 显存不足

  • 尝试使用更低精度的量化(如 q4_0, q3_k_m)。
  • 减少 --gpu-layers 数值。

Q3: 端口占用

修改 --port 参数,或释放对应端口:

sudolsof-i:9558sudokill-9<pid>

6. 总结

llama.cpp
是运行大模型的轻量高效方案,不依赖重型推理框架,可以在几乎任何设备上运行。
如果你的目标是本地部署、低延迟推理,且显存有限,那么它非常适合你。

Read more

如何解决PowerShell执行Invoke-WebRequest报Invalid URL和CommandNotFound全流程

如何解决PowerShell执行Invoke-WebRequest报Invalid URL和CommandNotFound全流程

【全网最细】如何解决PowerShell执行Invoke-WebRequest报Invalid URL和CommandNotFound全流程 在Windows系统运维、脚本部署场景中,PowerShell的Invoke-WebRequest是下载远程资源的常用命令,但新手常遇到Invalid URL(URL无效)和CommandNotFound(命令未找到)两类错误。本文将从错误根源分析、分步解决方案、避坑指南三个维度,手把手教你彻底解决这类问题,即使是零基础也能看懂。 文章目录 * 【全网最细】如何解决PowerShell执行Invoke-WebRequest报Invalid URL和CommandNotFound全流程 * 一、问题复现:先看清错误长什么样 * 1. 执行的原始命令 * 2. 核心错误信息 * 二、深度剖析:错误到底是怎么来的? * 错误1:Invalid URL(URL无效)的4个核心原因 * 错误2:CommandNotFound(脚本未找到)的3个核心原因 * 三、分步解决:从根源到表象逐

【前端】前端面试题

【前端】前端面试题

前端面试题 闭包 1. 定义: 闭包(Closure) 是指一个函数能够访问并记住其外部作用域中的变量,即使外部函数已经执行完毕。闭包由两部分组成: * 一个函数(通常是内部函数)。 * 该函数被创建时所在的作用域(即外部函数的变量环境) functionouter(){let count =0;// 外部函数的变量functioninner(){ count++;// 内部函数访问外部变量 console.log(count);}return inner;}const counter =outer();counter();// 输出 1counter();// 输出 2 2. 闭包的核心原理 * 作用域链:函数在定义时,会记住自己的词法环境(即外部作用域)。当内部函数访问变量时,会沿着作用域链向上查找。 * 变量持久化:闭包使得外部函数的变量不会被垃圾回收,因为内部函数仍持有对它们的引用 3. 闭包的常见用途 3.1 私有变量封装 通过闭包隐藏内部变量,

Flutter 组件 spry 适配鸿蒙 HarmonyOS 实战:轻量化 Web 框架,构建高性能端侧微服务与 Middleware 治理架构

Flutter 组件 spry 适配鸿蒙 HarmonyOS 实战:轻量化 Web 框架,构建高性能端侧微服务与 Middleware 治理架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 spry 适配鸿蒙 HarmonyOS 实战:轻量化 Web 框架,构建高性能端侧微服务与 Middleware 治理架构 前言 在鸿蒙(OpenHarmony)生态迈向全场景分布式协同、涉及设备端侧 API 暴露、轻量化资源服务镜像及严苛的跨端 RPC 通信背景下,如何实现一套既能保持极低内存足迹(Footprint)、又能提供类似后端(Node.js/Koa)般丝滑开发体验且具备全异步处理能力的“端侧 Web 基座”,已成为决定应用分布式自治能力与全栈同构效率的关键。在鸿蒙设备这类强调 AOT 极致效能与背景任务严格限制的环境下,如果应用依然采用重量级的 HTTP 服务端,由于由于进程级的上下文切换开销,极易由于由于“算力溢出”导致鸿蒙应用在作为服务端响应时发生明显的电量损耗。 我们需要一种能够解耦路由逻辑、支持

Python Web 框架对比与实战:Django vs Flask vs FastAPI

Python Web 框架对比与实战:Django vs Flask vs FastAPI 1. 背景与动机 Python 拥有丰富的 Web 开发框架,每个框架都有其特点和适用场景。本文对比 Django、Flask 和 FastAPI 三大主流框架,帮助开发者选择合适的工具。 2. 框架对比 特性DjangoFlaskFastAPI学习曲线陡峭平缓中等功能完整性全功能微框架现代API性能中等中等高异步支持有限扩展支持原生支持自动文档无扩展内置 3. Django 实战 # models.py from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at