Llama.cpp入门教程:一步步教你在本地运行LLM – wiki基地


Llama.cpp 入门教程:一步步教你在本地运行 LLM

前言:为什么要在本地运行大语言模型?

近年来,以 ChatGPT 为代表的大语言模型(LLM)以前所未有的能力展示了人工智能在文本生成、问答、编程辅助等领域的巨大潜力。然而,大多数强大的 LLM 都运行在云端服务器上,通过 API 或网页界面提供服务。这意味着:

  1. 隐私问题: 您的所有输入(Prompt)都需要发送到第三方服务器进行处理。对于涉及敏感信息或个人隐私的场景,这可能不是最佳选择。
  2. 成本问题: 持续使用云端 LLM 服务通常需要付费,尤其是在高强度或商业应用场景下。
  3. 离线可用性: 云服务依赖网络连接。在没有网络的环境下,您将无法使用 LLM。
  4. 定制与控制: 本地运行可以为您提供更大的灵活性,例如尝试不同的模型、参数调优,甚至进行微调(虽然微调本身可能需要更复杂的工具和资源)。

正因为这些需求,能够在本地消费者级硬件上运行 LLM 成为了一个热门方向。而在这其中,llama.cpp 项目无疑是目前最耀眼、最成功的开源项目之一。

什么是 Llama.cpp?

llama.cpp 是 Georgi Gerganov 发起的一个开源项目,其核心目标是使用 C/C++ 语言以极高的效率实现大型语言模型的推理(Inference)。它最初是为了在苹果芯片(如 M1/M2/M3)上流畅运行 Meta 的 Llama 模型而设计,但现在已经发展成为一个高度通用、跨平台、支持多种模型架构和多种硬件加速后端的项目。

llama.cpp 的主要特点包括:

  • 极致的性能和效率: 专为在 CPU 和消费者级 GPU 上高效运行而设计,利用了各种优化技术(如低精度量化)。
  • 跨平台: 支持 Windows, macOS, Linux 等主流操作系统。
  • 硬件加速: 支持 CPU 推理,并可通过多种后端利用 GPU 加速,包括 NVIDIA CUDA/cuBLAS, AMD ROCm, Apple Metal, Vulkan, OpenCL 等。
  • 支持多种模型: 不仅限于 Llama 系列,还支持许多其他流行的开源模型架构(如 Mistral, Mixtral, Qwen, Yi, BERT, GPT-2 等),前提是它们被转换为 llama.cpp 支持的格式(主要是 GGUF 格式)。
  • 活跃的社区: 拥有庞大且活跃的社区,持续进行开发、优化和模型转换。

通过 llama.cpp,您可以在自己的笔记本电脑或台式机上,使用量化后的模型,以相对较低的资源消耗获得不错的 LLM 推理速度。

本教程将一步步指导您如何在本地搭建环境、获取模型,并使用 llama.cpp 运行一个 LLM。

前提条件

在开始之前,请确保您的系统满足以下基本要求:

  1. 操作系统: Windows 10/11 (64位), macOS (Intel 或 Apple Silicon), 或 Linux。
  2. 硬件:
    • CPU: 现代的多核 CPU。即使没有强大的 GPU,llama.cpp 也能在 CPU 上运行,只是速度会慢一些。
    • 内存 (RAM): 至少 8GB,推荐 16GB 或更多。运行较大的模型需要更多的内存来加载模型参数。
    • 存储空间: LLM 模型文件通常较大(几个 GB 到几十 GB),请确保您有足够的硬盘空间。
    • GPU (可选,但强烈推荐): 如果您有 NVIDIA (CUDA 兼容)、AMD (ROCm 兼容)、或 Apple Silicon (Metal 兼容) GPU,可以显著加速推理过程。
  3. 必要的软件工具:
    • Git: 用于从 GitHub 克隆 llama.cpp 仓库。如果未安装,请根据您的操作系统搜索安装教程。
    • CMake: 一个跨平台的构建工具,llama.cpp 使用它来管理编译过程。如果未安装,请根据您的操作系统搜索安装教程。
    • C++ 编译器:
      • Windows: Visual Studio (推荐安装带有 Desktop Development with C++ 工作负载的 Community 版本) 或 MinGW/MSYS2。
      • macOS: Xcode Command Line Tools (运行 xcode-select --install)。
      • Linux: build-essential 包 (包含 GCC/G++ 等,例如在 Ubuntu/Debian 上运行 sudo apt update && sudo apt install build-essential)。
    • CUDA Toolkit (如果使用 NVIDIA GPU 加速): 如果您计划使用 NVIDIA GPU 并想获得最佳兼容性,可能需要安装 CUDA Toolkit。不过,llama.cpp 很多时候可以通过 cuBLAS 库直接利用已安装的 NVIDIA 驱动,无需完整安装 CUDA Toolkit。最简单的方式是先不装,如果编译或运行时提示缺少 CUDA 相关库再考虑安装。
    • ROCm (如果使用 AMD GPU 加速): AMD GPU 加速需要 ROCm 环境,这在 Linux 上相对成熟,Windows 支持正在发展中。安装过程可能较复杂,请参考 llama.cpp 官方文档或相关社区指南。
    • Vulkan SDK 或 OpenCL ICD (如果使用对应后端): 用于 Vulkan 或 OpenCL 加速,根据需要安装。

重要提示: 本教程主要关注最常见和相对简单的设置(CPU 或 NVIDIA/Apple Silicon GPU 加速)。其他 GPU 加速方式(ROCm, Vulkan, OpenCL)的配置可能会更复杂,请参考 llama.cpp 官方文档。

第一步:获取 Llama.cpp 源代码

首先,您需要通过 Git 从 GitHub 克隆 llama.cpp 的最新源代码。

打开您的终端(在 Windows 上可以使用 Command Prompt, PowerShell 或 Git Bash; 在 macOS/Linux 上使用 Terminal 应用)。

执行以下命令:

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

这将在当前目录下创建一个名为 llama.cpp 的文件夹,其中包含了项目的所有文件。

进入项目目录:

bash
cd llama.cpp

现在您已经获取了 llama.cpp 的源代码。

第二步:编译 Llama.cpp

编译是将源代码转换成可执行程序的过程。llama.cpp 使用 CMake 来管理这个过程,让它在不同平台上更容易构建。编译步骤是根据您的操作系统和是否需要 GPU 加速而有所不同。

在编译之前,请确保您已经进入了 llama.cpp 的项目目录 (cd llama.cpp)。

推荐的编译方式(使用 CMake):

这是官方推荐且最灵活的方式,可以轻松开启各种硬件加速选项。

  1. 创建构建目录: 这是一个好的习惯,将编译生成的文件放在一个单独的目录中,保持源代码目录的整洁。

    bash
    mkdir build
    cd build

  2. 运行 CMake 配置: 根据您的需求选择不同的 CMake 命令。CMake 会检查您的系统环境和您指定的选项,生成适合您系统的编译配置文件(例如 Makefile 或 Visual Studio Solution)。

    • 最简单的 CPU 编译(适用于所有平台,不需要 GPU):

      bash
      cmake ..

    • 开启 NVIDIA GPU (CUDA/cuBLAS) 加速 (如果您的系统有 NVIDIA GPU):

      bash
      cmake .. -DLLAMA_CUBLAS=on

      (注意:可能需要系统已经正确安装了 NVIDIA 驱动。大多数情况下,安装了驱动就包含了 cuBLAS 库,无需单独安装 CUDA Toolkit。)

    • 开启 Apple Silicon (Metal) GPU 加速 (如果您的 Mac 是 M1/M2/M3 等):

      bash
      cmake .. -DLLAMA_METAL=on

      (在较新版本的 llama.cpp 中,如果您在 Apple Silicon Mac 上运行 CMake,Metal 支持通常会默认开启,除非您明确禁用。)

    • 开启 AMD GPU (ROCm) 加速 (主要适用于 Linux 系统,有 AMD GPU):

      bash
      cmake .. -DLLAMA_ROCM=on

      (需要系统正确安装 ROCm 环境。)

    • 开启 Intel/AMD 集显或旧显卡 (Vulkan) 加速:

      bash
      cmake .. -DLLAMA_VULKAN=on

      (需要系统安装 Vulkan SDK 或驱动提供 Vulkan 支持。)

    • 开启 OpenCL 加速:

      bash
      cmake .. -DLLAMA_CLBLAST=on

      (需要系统安装 OpenCL ICD 和 CLBlast 库。)

    • 组合选项: 您可以组合多个选项,例如在 Linux 上同时支持 CPU 和 CUDA:cmake .. -DLLAMA_CUBLAS=on (CUBLAS 默认也会包含 CPU 支持)。

    • Windows 用户 (使用 Visual Studio): 如果您安装了 Visual Studio,可以在 build 目录中运行:

      bash
      cmake .. -G "Visual Studio 17 2022" # 根据您安装的VS版本修改数字,例如 "Visual Studio 16 2019"

      这会在 build 目录中生成一个 .sln 解决方案文件。您可以双击打开它,然后在 Visual Studio 中选择 Release 配置并构建 ALL_BUILD 项目。或者,在终端中继续使用 CMake 构建命令:

      bash
      cmake --build . --config Release --parallel # 使用多核并行构建

    • Windows 用户 (使用 MinGW/MSYS2): 在 MinGW/MSYS2 环境中,进入 llama.cpp 目录,然后按照 Linux 或 macOS 的方式使用 cmake .. 命令。

  3. 运行编译命令: CMake 配置成功后,根据生成的配置文件类型执行编译命令。

    • 在 macOS/Linux/MinGW/MSYS2 环境中 (生成 Makefile):

      “`bash
      make

      或者使用多核并行编译,加快速度 (推荐)

      make -j # 将 替换为您 CPU 的核心数,例如 make -j 8
      “`

    • 在 Windows 环境中 (使用 Visual Studio 生成的解决方案):

      • 如果使用 Visual Studio IDE 打开 .sln 文件,在界面中选择 Release 配置并构建。
      • 如果使用命令行,已经在 build 目录中运行了 cmake --build . --config Release --parallel

编译成功标志:

编译完成后,您会在 build 目录下的 bin 文件夹中找到可执行文件。最常用的是 main (或 main.exe on Windows),以及其他工具如 quantizeserver 等(取决于您的编译选项)。

如果在编译过程中遇到错误,请仔细阅读错误信息。常见问题包括:
* 缺少依赖库(如 CMake, 编译器, CUDA/ROCm 库)。
* CMake 配置时选项错误。
* Windows 上环境变量或 Visual Studio 配置问题。

遇到问题时,最好的办法是查阅 llama.cpp 的官方 GitHub 仓库的 Issues 或 Discussions 区,很多常见问题都能找到解决方案。

第三步:获取 LLM 模型文件(GGUF 格式)

llama.cpp 不能直接使用 PyTorch 或 TensorFlow 格式的原始模型文件。它需要一个专门为高效加载和推理而设计的格式,目前主要使用的是 GGUF (GGML Unified Format)。GGUF 格式是 GGML 格式的继任者,包含了更多的元数据,并且设计上更易于扩展和使用。

GGUF 格式的一个重要特性是它通常包含了量化后的模型。量化是将模型参数从高精度(如 32 位浮点数 FP32 或 16 位浮点数 FP16)转换为低精度(如 8 位整数 INT8, 4 位整数 INT4 等)的过程。这样做可以显著减小模型文件大小和内存占用,同时提高推理速度,但可能会对模型性能(如生成文本的质量)产生一定影响。

llama.cpp 支持多种量化级别,常见的包括:

  • Q8_0: 8 位整数量化,文件较大,质量接近 FP16,速度较快。
  • Q5_K_M, Q5_K_S: 5 位量化(使用 K-quant 方案),平衡了文件大小、速度和质量,通常是推荐的折衷方案。
  • Q4_K_M, Q4_K_S: 4 位量化(使用 K-quant 方案),文件更小,内存占用更低,速度更快,但质量可能略有下降。Q4_K_M 是许多用户首选的入门级别,因为它能在消费级硬件上较好地运行。
  • Q2_K: 2 位量化(使用 K-quant 方案),文件最小,速度最快,但质量下降较明显。

哪里获取 GGUF 模型文件?

最主要的来源是 Hugging Face 模型 Hub。许多开源模型(如 Llama, Mistral, Yi, Qwen 等)的社区成员会将其转换为 GGUF 格式并上传。

搜索 GGUF 模型最简单的方式是:

  1. 访问 Hugging Face 网站 (huggingface.co)。
  2. 在搜索框中搜索您感兴趣的模型名称,加上关键词 GGUF。例如 Mistral-7B-Instruct-v0.2 GGUFQwen1.5-7B-Chat GGUF
  3. 通常,您会找到由社区用户(例如著名的模型转换者 TheBloke)上传的 GGUF 仓库。进入该仓库页面。
  4. 切换到 “Files and versions” (文件和版本) 标签页。
  5. 在文件列表中,找到 .gguf 结尾的文件。您会看到同一个模型有不同量化级别的 GGUF 文件(例如 mistral-7b-instruct-v0.2.Q4_K_M.gguf, mistral-7b-instruct-v0.2.Q5_K_M.gguf, mistral-7b-instruct-v0.2.Q8_0.gguf 等)。
  6. 根据您的硬件条件(尤其是内存和显存大小)和对模型质量的需求,选择一个合适的量化版本下载。对于初学者,推荐先尝试 Q4_K_MQ5_K_M 版本。
  7. 点击下载按钮将 .gguf 文件下载到您的电脑上。

下载的模型文件放在哪里?

将下载好的 .gguf 文件放在一个您方便访问的位置。一个常用的约定是将其放在 llama.cpp 项目目录下的 models 子目录中。如果您没有这个目录,可以手动创建它。

例如,如果您下载了 mistral-7b-instruct-v0.2.Q4_K_M.gguf,可以将其复制或移动到 llama.cpp/models/ 目录下。

第四步:运行 LLM 模型

编译成功并获取了 .gguf 模型文件后,您就可以使用 llama.cpp 的可执行文件来运行模型进行推理了。

主要的推理可执行文件是 main (在 Windows 上是 main.exe),它位于您之前创建的 build 目录下的 bin 文件夹中。

打开您的终端,并切换到 build 目录:

bash
cd llama.cpp/build

然后,您可以运行 main 程序,并指定模型文件路径和您的 Prompt。

基本运行命令:

bash
./bin/main -m ../models/your-model-name.gguf -p "Your prompt goes here." -n 256

  • ./bin/main: 执行编译生成的 main 程序(在 Windows 上是 .\bin\main.exe)。
  • -m ../models/your-model-name.gguf: 指定要加载的模型文件路径。请将 ../models/your-model-name.gguf 替换为您实际的模型文件路径。如果您把模型放到了 llama.cpp/models/ 目录下,相对于 build 目录,它的路径就是 ../models/your-model-name.gguf
  • -p "Your prompt goes here.": 指定您想要模型回答的 Prompt(输入)。请将 "Your prompt goes here." 替换为您自己的文本。Prompt 需要用引号括起来,特别是包含空格或特殊字符时。
  • -n 256: 指定模型最多生成多少个 Token。一个 Token 大约是 3-4 个英文字符或 1 个汉字。-n 256 表示模型最多生成 256 个 Token 的回复。您可以根据需要调整这个值。

执行这个命令后,llama.cpp 会加载模型,处理您的 Prompt,并在终端中输出生成的回复。

交互模式 (Interactive Mode):

main 程序也支持交互模式,这更像您使用在线聊天助手。

bash
./bin/main -m ../models/your-model-name.gguf -i

  • -i: 启用交互模式。

在交互模式下,程序会加载模型,然后等待您输入 Prompt。输入完 Prompt 后按回车,模型就会生成回复。生成完成后,程序再次等待您的输入。您可以进行多轮对话。要退出交互模式,通常输入 /bye 然后按回车。

常用参数详解:

main 程序有很多参数可以控制模型的行为和性能。以下是一些常用的:

  • -m <path>: 指定模型文件路径(必需)。
  • -p <prompt>: 指定 Prompt 文本(非必需,如果在交互模式下则无需)。
  • -n <tokens>: 指定最大生成 Token 数(默认为 128)。
  • -i: 启用交互模式。
  • -r <string>: 在交互模式下,设置一个字符串来标记回复的结束(例如 --reverse-prompt "User:" 可以让模型在生成到它认为该轮回复结束时停止,等待下一个 “User:” 输入)。
  • --temp <value>: 控制生成文本的随机性或“创意度”。值越高,文本越随机(可能更有创意,但也可能偏离主题或产生胡言乱语)。范围通常在 0.0 到 2.0 之间,默认为 0.8。--temp 0 会尝试生成最确定、最“保守”的文本。
  • --top-k <value>: Top-K 采样参数。在生成下一个 Token 时,只考虑概率最高的 K 个 Token。默认值通常是 40。较小的 K 值使生成更确定。
  • --top-p <value>: Top-P (核采样) 参数。在生成下一个 Token 时,选择概率累加和超过 P 的最小 Token 集合中进行采样。默认值通常是 0.95。较小的 P 值使生成更确定。Top-K 和 Top-P 通常结合使用。
  • --repeat-penalty <value>: 重复惩罚。用于减少模型重复生成相同的词组或句子。值大于 1.0 会惩罚重复。默认为 1.1。
  • --n-gpu-layers <layers>: 非常重要的 GPU 加速参数。指定将模型的前 <layers> 层加载到 GPU 显存中进行计算。剩余的层将在 CPU 上计算。设置合适的层数可以最大化利用 GPU 性能,同时避免显存溢出。如果您的 GPU 显存足够大,可以将所有层都加载到 GPU (-n-gpu-layers 10000 或一个足够大的数)。如果设置为 0,则完全在 CPU 上运行。您需要根据您的显存大小进行尝试,找到能放入显存的最大层数。一般来说,量化级别越低,所需的显存越少,可以放入更多层。
  • --mlock: 在 Linux/macOS 上,尝试锁定模型的内存,防止其被换出到硬盘,有助于保持较低的延迟。需要相应的系统权限。
  • --mirostat <mode>: Mirostat 采样方法,一种更动态的采样策略,有助于控制文本长度和质量。0 = 禁用,1 = Mirostat,2 = Mirostat 2.0。配合 --mirostat-tau--mirostat-eta 参数使用。
  • --threads <n>: 指定用于推理的 CPU 线程数。默认为物理核心数。您可以尝试调整此值以找到最佳性能。

示例:使用 GPU 加速运行 Mistral 7B Q4_K_M 模型

假设您下载了 mistral-7b-instruct-v0.2.Q4_K_M.gguf 并放到了 llama.cpp/models/ 目录下,并且您的系统支持 GPU 加速(例如 NVIDIA 或 Apple Silicon),并且在编译时开启了相应的 GPU 支持。

您可以尝试以下命令:

“`bash

切换到build目录

cd llama.cpp/build

使用交互模式,加载模型,将大部分层放入GPU显存(例如假设你的显卡有6-8GB显存,可以尝试30层)

./bin/main -m ../models/mistral-7b-instruct-v0.2.Q4_K_M.gguf -i –n-gpu-layers 30 –temp 0.7 –repeat-penalty 1.1

如果想把所有层都放入GPU (显存需足够大,Q4_K_M 模型通常需要约5GB显存)

./bin/main -m ../models/mistral-7b-instruct-v0.2.Q4_K_M.gguf -i –n-gpu-layers 10000 –temp 0.7 –repeat-penalty 1.1

直接提供Prompt,非交互模式

./bin/main -m ../models/mistral-7b-instruct-v0.2.Q4_K_M.gguf -p “请用中文写一篇关于人工智能对社会影响的文章,约500字。” -n 1000 –n-gpu-layers 30 –temp 0.8
“`

执行命令后,您会看到 llama.cpp 输出加载模型的信息,包括加载了多少层到 GPU,以及模型的参数概览。然后就可以开始输入 Prompt 或等待生成结果。

理解输出信息:

当您运行 main 程序时,它会输出一些状态信息,这些信息有助于您了解模型加载情况和推理性能:

...
llama_model_load: model size = 4096.78 MB / num tensors = 363
llama_model_load: offloading 30 repeating layers to GPU
llama_model_load: offloaded 30/35 layers to GPU
llama_model_load: VRAM used: 4321 MB
...
ggml_metal_init: allocating metal context
ggml_metal_init: found device: Apple M1 Pro (id=0)
...
sampling: temp = 0.800000, top_k = 40, top_p = 0.950000, repeat_last_n = 64, repeat_penalty = 1.100000
generate: prompt = 'Your prompt here'
... (模型生成的文本) ...
Output generated in XXXX.xx ms (YYYY tokens, ZZZ.zz tokens/s)

  • llama_model_load: offloading XX/YY layers to GPU: 表示成功将 YY 层中的 XX 层加载到了 GPU。这确认了 GPU 加速是启用的。
  • llama_model_load: VRAM used: XXXX MB: 显示模型在 GPU 显存中占用的内存大小。这有助于您判断 -n-gpu-layers 设置是否合适,以及您的显存是否足够。
  • Output generated in XXXX.xx ms (YYYY tokens, ZZZ.zz tokens/s): 显示生成 YYYY 个 Token 花费的时间和平均每秒生成 Token 数(推理速度)。这个指标是衡量性能的关键。

第五步:性能调优与故障排除

性能调优:

  1. 选择合适的量化模型: 更低的量化(如 Q4_K_M)通常更快、占用资源更少,适合显存或内存有限的设备。更高的量化(如 Q8_0)文件更大、速度可能稍慢,但通常能获得更好的模型质量。根据您的需求和硬件进行权衡和尝试。
  2. 利用 GPU 加速并调整 -n-gpu-layers 如果您的 GPU 显存足够,将尽可能多的层卸载到 GPU。通过逐步增加 -n-gpu-layers 的值,观察 VRAM 使用情况和推理速度,找到最优解。当 -n-gpu-layers 超过显存容量时,程序会报错(通常是显存分配失败)。
  3. 调整 CPU 线程数: 使用 --threads <n> 参数。通常设置为您 CPU 的物理核心数或逻辑核心数。有时略小于核心数可能会有更好的表现,需要测试。
  4. 使用 mlock (如果可能): 在支持的系统上使用 --mlock 参数,防止模型内存被换出,减少因内存页面交换导致的延迟。
  5. 关闭不必要的程序: 确保在运行 LLM 时,您的系统有足够的空闲内存和显存。

故障排除:

  1. 编译失败:
    • 检查是否安装了所有必要工具(Git, CMake, C++ 编译器)。
    • 检查 CMake 命令是否拼写正确,特别是 -D 开头的选项。
    • Windows 上使用 Visual Studio 时,确保选择了正确的配置(Release)和目标(ALL_BUILD)。
    • 如果涉及 GPU 加速,检查 GPU 驱动是否正确安装,以及相应的库(CUDA/cuBLAS, ROCm 等)是否可用。查阅 llama.cpp 官方 Issues 或 Discussions 区寻找类似问题的解决方案。
  2. 运行 main 时报错:
    • Error loading model: ... file not found: 检查 -m 参数后的模型文件路径是否正确。确保您在 build 目录中运行 main,并且模型文件路径相对于 build 目录是正确的(例如 ../models/your-model.gguf)。
    • Out of memory 或显存分配失败 (CUDA error: out of memory 等): 您尝试加载的模型太大,或者 -n-gpu-layers 设置过高,超过了您的内存或显存容量。请尝试:
      • 使用量化级别更低(文件更小)的模型。
      • 减小 -n-gpu-layers 的值。
      • 关闭占用大量内存或显存的其他应用程序。
    • 模型加载成功但推理速度很慢:
      • 确认是否启用了 GPU 加速(查看输出信息中是否有 offloading layers to GPU)。如果没有,检查编译步骤是否开启了 GPU 支持,并在运行命令中加入 -n-gpu-layers 参数。
      • 检查 -n-gpu-layers 参数是否设置合适。如果设置为 0 或很小,模型几乎完全在 CPU 上运行,速度自然较慢。
      • 检查您的硬件资源利用率(任务管理器,nvidia-smi 等)。看看是 CPU 还是 GPU 成为了瓶颈。
  3. 模型生成质量不佳或行为异常:
    • 尝试调整采样参数 (--temp, --top-k, --top-p, --repeat-penalty)。
    • 尝试使用不同量化级别或由不同人转换的 GGUF 模型文件。
    • 确保您的 Prompt 格式符合模型的预期(尤其是 Instruction 模型,通常需要特定的格式,例如 Alpaca, ChatML 等格式)。查阅您下载模型的说明页面了解其推荐的 Prompt 格式。

其他高级用法(简述)

  • 使用 quantize 工具: llama.cpp 项目中还包含了 quantize 工具,可以将 FP16 或 FP32 的 GGUF 模型文件转换为不同量化级别的 GGUF 文件。如果您找到了非量化的 GGUF 文件,或者想尝试官方未提供的量化级别,可以使用这个工具。例如:./bin/quantize ../models/your-model.gguf ../models/your-model.Q4_K_M.gguf Q4_K_M
  • 运行 Web Server: llama.cpp 也可以编译为一个 Web 服务器(如果在 CMake 配置时开启了 -DLLAMA_SERVER=on)。运行 bin/server 可以启动一个本地 API 服务器,甚至提供一个简单的网页界面,方便通过浏览器与模型交互,或与其他应用程序集成。
  • 绑定和库: llama.cpp 提供了 C/C++ 库接口,并且有社区提供的 Python, Node.js 等语言的绑定,允许您在自己的程序中集成 llama.cpp 的推理能力。

总结

恭喜您!通过以上步骤,您应该已经成功地在本地使用 llama.cpp 运行了一个大语言模型。这不仅让您可以在个人设备上自由、私密地与强大的 AI 模型交互,还为进一步探索、学习和应用 LLM 打开了大门。

从获取源代码、根据硬件编译、下载合适的量化模型到使用 main 程序进行推理,每一步都要求您细心操作。特别是编译和 -n-gpu-layers 参数的设置,是影响能否成功运行和性能的关键。

llama.cpp 是一个快速发展的项目,其性能、支持的模型和功能都在不断进步。如果您对某个模型感兴趣,或者想尝试最新的优化,可以定期更新 llama.cpp 仓库代码(使用 git pull)并重新编译。

本地运行 LLM 是一个充满乐趣和探索的过程。现在您已经掌握了基础,可以开始尝试不同的模型,调整参数,体验本地 AI 的强大之处了!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部