llama.cpp

llama

License: MIT Server

路线图 / 项目状态 / 宣言 / ggml

在纯 C/C++ 中推理 Meta 的 LLaMA 模型(以及其他模型)

重要提示

新的 llama.cpp 包位置:ggml-org/llama.cpp

请将您的容器 URL 更新为:ghcr.io/ggml-org/llama.cpp

更多信息:#11801

最近的 API 变更

热门话题


描述

llama.cpp 的主要目标是在各种硬件上以最少的设置和最先进的性能实现 LLM 推理 - 本地和云端。

llama.cpp 项目是为 ggml 库开发新功能的主要场所。

模型

通常也支持以下基础模型的微调。

添加对新模型支持的说明:HOWTO-add-model.md

纯文本

多模态

绑定
UI

(要将项目列在此处,它应该明确声明它依赖于 llama.cpp)

工具
基础设施
游戏

支持的后端

后端 目标设备
Metal Apple Silicon
BLAS 全部
BLIS 全部
SYCL Intel 和 Nvidia GPU
MUSA 摩尔线程 MTT GPU
CUDA Nvidia GPU
HIP AMD GPU
Vulkan GPU
CANN 昇腾 NPU
OpenCL Adreno GPU

构建项目

该项目的主要产品是 llama 库。它的 C 风格接口可以在 include/llama.h 中找到。该项目还包括许多使用 llama 库的示例程序和工具。这些示例从简单的、最小的代码片段到复杂的子项目,例如与 OpenAI 兼容的 HTTP 服务器。 获取二进制文件的可能方法

获取和量化模型

Hugging Face 平台托管着许多与 llama.cpp 兼容的 LLM

您可以手动下载 GGUF 文件,或者直接使用来自 Hugging Face 的任何 llama.cpp 兼容模型,方法是使用此 CLI 参数:-hf <user>/<model>[:quant]

下载模型后,使用 CLI 工具在本地运行它 - 见下文。

llama.cpp 要求模型以 GGUF 文件格式存储。其他数据格式的模型可以使用此 repo 中的 convert_*.py Python 脚本转换为 GGUF。

Hugging Face 平台提供了各种在线工具,用于转换、量化和托管带有 llama.cpp 的模型

要了解有关模型量化的更多信息,请阅读本文档

llama-cli

一个 CLI 工具,用于访问和试验 llama.cpp 的大部分功能。

llama-server

一个轻量级,OpenAI API 兼容的 HTTP 服务器,用于服务 LLM。

llama-perplexity

一种用于测量给定文本上模型困惑度12 (和其他质量指标) 的工具。

llama-bench

基准测试各种参数的推理性能。

llama-run

运行 llama.cpp 模型的综合示例。 用于推理。 与 RamaLama3 一起使用。

llama-simple

一个使用 llama.cpp 实现应用程序的最小示例。 对开发人员很有用。

贡献

其他文档

开发文档

关于模型的开创性论文和背景

如果你的问题与模型生成质量有关,那么请至少浏览以下链接和论文,以了解 LLaMA 模型的局限性。这在选择合适的模型大小并理解 LLaMA 模型和 ChatGPT 之间重大而细微的差异时尤为重要

补全

命令行补全适用于某些环境。

Bash 补全

$ build/bin/llama-cli --completion-bash > ~/.llama-completion.bash
$ source ~/.llama-completion.bash

可以选择将其添加到你的 .bashrc.bash_profile 以自动加载。 例如

$ echo "source ~/.llama-completion.bash" >> ~/.bashrc

参考文献

脚注

  1. examples/perplexity/README.md

  2. https://hugging-face.cn/docs/transformers/perplexity

  3. RamaLama