llama.cpp: 用于本地和云端的 C/C++ LLM 推理

llama.cpp

3.5 | 58 | 0
类型:
开源项目
最后更新:
2025/10/13
资源描述:
使用 llama.cpp 实现高效的 LLM 推理,这是一个为各种硬件优化的 C/C++ 库,支持量化、CUDA 和 GGUF 模型。 非常适合本地和云部署。
分享:
LLM 推理
C/C++ 库
GGUF 模型
CUDA
苹果芯片

llama.cpp 概述

llama.cpp: C/C++ 中用于 LLM 推理的首选库

lama.cpp 是一个强大的开源库,旨在通过 C/C++ 实现高效的大型语言模型 (LLM) 推理。它针对从本地机器到云部署的各种硬件进行了优化,以其最少的设置和最先进的性能而著称。

什么是 llama.cpp?

lama.cpp 是一个专注于在 C/C++ 中执行 LLM 推理的项目。它的设计宗旨是在具有最少依赖项的不同硬件配置中提供出色的性能。

主要特性和优势

  • 纯 C/C++ 实现: 消除了外部依赖项,简化了部署。
  • Apple Silicon 优化: 利用 ARM NEON、Accelerate 和 Metal 框架,在 Apple 设备上实现最佳性能。
  • x86 架构支持: 包括 AVX、AVX2、AVX512 和 AMX 支持,以优化 x86 CPU 上的性能。
  • 量化: 支持 1.5 位到 8 位整数量化,从而减少内存使用并加速推理。
  • GPU 加速: 自定义 CUDA 内核可在 NVIDIA GPU 上实现高效的 LLM 执行。还支持通过 HIP 支持 AMD GPU,以及通过 MUSA 支持 Moore Threads GPU。
  • 混合 CPU+GPU 推理: 通过在 CPU 和 GPU 之间分配工作负载,有助于使用大于可用 VRAM 的模型。
  • 多个后端: 支持 Metal、BLAS、BLIS、SYCL、MUSA、CUDA、HIP、Vulkan、CANN、OpenCL、IBM zDNN 和 WebGPU(开发中)。

llama.cpp 如何工作?

lama.cpp 通过直接在 C/C++ 中实现 LLM 推理来工作。这种方法减少了开销,并允许对硬件资源进行细粒度控制。该库设计为模块化,具有针对各种硬件平台优化的不同后端。它使用量化等技术来减少模型的内存占用,从而可以在资源受限的设备上运行大型模型。

如何使用 llama.cpp?

  1. 安装

    • 使用包管理器: 通过 brew、nix 或 winget 安装。
    • Docker: 使用提供的 Docker 镜像。
    • 预构建的二进制文件: 从发布页面下载二进制文件。
    • 从源代码构建: 克隆存储库并按照构建指南进行操作。
  2. 获取模型

    • 从 Hugging Face 或其他模型托管站点下载 GGUF 模型。
    • 使用提供的 Python 脚本将模型转换为 GGUF 格式。
  3. 运行推理

    • 使用 llama-cli 工具进行实验。
    • 使用 llama-server 部署本地 HTTP 服务器,以实现 OpenAI API 兼容性。

示例命令:

## Use a local model file
llama-cli -m my_model.gguf

## Or download and run a model directly from Hugging Face
llama-cli -hf ggml-org/gemma-3-1b-it-GGUF

## Launch OpenAI-compatible API server
llama-server -hf ggml-org/gemma-3-1b-it-GGUF

llama.cpp 适用于哪些人?

lama.cpp 非常适合:

  • 开发人员: 使用 C/C++ 实现 LLM 驱动的应用程序。
  • 研究人员: 在各种硬件平台上试验 LLM。
  • 爱好者: 在个人计算机和设备上运行 LLM。
  • 组织: 在生产环境中部署 LLM,并尽量减少开销。

llama.cpp 的实际应用

lama.cpp 可用于各种场景,包括:

  • 本地 LLM 推理: 在个人计算机上运行模型,而无需依赖云服务。
  • 边缘计算: 在边缘设备上部署 LLM,以实现低延迟应用。
  • 移动应用: 将 LLM 集成到移动应用中,以进行设备端处理。
  • 自定义 AI 解决方案: 构建针对特定硬件和软件环境量身定制的自定义 AI 解决方案。

为什么选择 llama.cpp?

lama.cpp 提供了性能、灵活性和易用性的独特组合,使其成为 LLM 推理的绝佳选择。其主要优势包括:

  • 优化的性能: 专为在各种硬件上实现最佳性能而设计。
  • 最少的依赖项: 简化了部署并降低了冲突的风险。
  • 量化支持: 支持在资源受限的设备上使用大型模型。
  • 活跃的社区: 受益于持续的开发和社区支持。
  • 多功能工具: 包括 llama-clillama-serverllama-perplexityllama-bench 等工具,适用于各种用例。

支持的后端

lama.cpp 支持多个后端,目标是各种设备:

后端 目标设备
Metal Apple Silicon
BLAS 所有
BLIS 所有
SYCL Intel 和 Nvidia GPU
MUSA Moore Threads GPU
CUDA Nvidia GPU
HIP AMD GPU
Vulkan GPU
CANN Ascend NPU
OpenCL Adreno GPU
IBM zDNN IBM Z & LinuxONE
WebGPU 所有(开发中)
RPC 所有

如何为 llama.cpp 做出贡献

欢迎为 llama.cpp 做出贡献!您可以通过以下方式做出贡献:

  • 提交包含错误修复或新功能的拉取请求。
  • 在现有问题和项目上进行协作。
  • 帮助管理问题、PR 和项目。
  • 改进文档和示例。

什么是 GGUF?

GGUF 是 llama.cpp 用于存储模型所需的文件格式。可以使用存储库中的 convert_*.py Python 脚本将其他数据格式的模型转换为 GGUF。

结论

lama.cpp 是一个多功能且功能强大的库,它使更广泛的受众可以访问 LLM 推理。无论您是开发人员、研究人员还是爱好者,llama.cpp 都能提供您所需的工具和灵活性,从而在您选择的硬件上利用 LLM 的强大功能。凭借其对性能、易用性和社区支持的关注,llama.cpp 有望在快速发展的 AI 推理领域中保持关键地位。

有关更多信息,请访问 llama.cpp GitHub 存储库

"llama.cpp"的最佳替代工具

AI Runner
暂无图片
61 0

AI Runner是一个离线AI推理引擎,用于艺术创作、实时语音对话、LLM驱动的聊天机器人和自动化工作流程。在本地运行图像生成、语音聊天等!

离线AI
图像生成
语音聊天
Friendli Inference
暂无图片
85 0

Friendli Inference 是最快的 LLM 推理引擎,针对速度和成本效益进行了优化,可在提供高吞吐量和低延迟的同时,将 GPU 成本降低 50-90%。

LLM 服务
GPU 优化
推理引擎
Awan LLM
暂无图片
75 0

Awan LLM提供无限token、无限制且经济高效的LLM推理API平台,非常适合开发者和高级用户。 无需担心token限制即可处理数据、完成代码并构建AI代理。

LLM推理
无限tokens
GraphRAG
暂无图片
101 0

GraphRAG是一个开源的、模块化的基于图的检索增强生成系统,旨在利用大语言模型从非结构化文本中提取结构化数据。使用GraphRAG增强您的大语言模型的推理能力。

知识图谱
RAG
大语言模型
vLLM
暂无图片
121 0

vLLM是一个用于LLM的高吞吐量和内存效率的推理和服务引擎,具有PagedAttention和连续批处理功能,可优化性能。

LLM推理引擎
Magic Loops
暂无图片
125 0

Magic Loops是一个无代码平台,结合LLM和代码,在几分钟内构建专业的AI原生应用。无需编码技能,即可自动化任务、创建自定义工具并探索社区应用。

无代码构建器
AI应用创建
SiliconFlow
暂无图片
201 0

为开发者提供闪电般快速的AI平台。通过简单API部署、微调并运行200多个优化的LLM和大语言模型 - SiliconFlow。

LLM推理
多模态AI
模型微调
Nebius AI Studio Inference Service
暂无图片
150 0

Nebius AI Studio Inference Service 提供托管开源模型,实现比专有 API 更快、更便宜、更准确的推理结果。无需 MLOps,即可无缝扩展,适用于 RAG 和生产工作负载。

AI推理
开源大语言模型
低延迟服务
Roo Code
暂无图片
147 0

Roo Code 是 VS Code 的开源 AI 驱动编码助手,具备用于多文件编辑、调试和架构的 AI 代理。它支持各种模型,确保隐私,并自定义适应您的工作流程以实现高效开发。

AI代理
多文件编辑
代码重构
mistral.rs
暂无图片
132 0

mistral.rs 是一个用 Rust 编写的极速 LLM 推理引擎,支持多模态工作流程和量化。提供 Rust、Python 和 OpenAI 兼容的 HTTP 服务器 API。

LLM 推理引擎
Rust
PromptsLabs
暂无图片
235 0

使用 PromptsLabs 发现并测试适用于新型大型语言模型 (LLM) 的综合性 AI 提示库。立即改进您的 LLM 测试流程!

LLM 测试
AI 提示
提示工程
Jina AI
暂无图片
205 0

Jina AI 提供一流的嵌入、重排序器、网页阅读器、深度搜索和小语言模型。适用于多语言和多模态数据的搜索 AI 解决方案。

多语言嵌入
多模态搜索
深度搜索
GPT4All
暂无图片
248 0

GPT4All 可以在日常桌面上私有、本地执行大型语言模型 (LLM),无需 API 调用或 GPU。 具有扩展功能的易于访问且高效的 LLM 使用。

本地 LLM
私有 AI
GoSearch
暂无图片
314 0

GoSearch:AI驱动的企业搜索和AI代理,用于统一知识管理,改善信息检索和数据发现。

AI企业搜索
AI代理
知识管理