Want to Become a Sponsor? Contact Us Now!🎉

LLM
如何轻松在家庭电脑上运行Llama.cpp

Llama.cpp: Facebook的LLaMA模型的C/C++移植版

Published on

欢迎来到Llama CPP引人入胜的世界!如果您一直渴望着亲手尝试语言模型工作,那么您来对地方了。Llama CPP是一个在提示工程领域引起轰动的工具,而且原因多多。

在本详尽指南中,我们将探索有关Llama CPP的所有必须知道的内容。从设置到运行您的第一个模型,我们都有涵盖。所以,让我们开始吧,发挥这个强大工具的全部潜力。

想了解最新的LLM新闻?查看最新的 LLM排行榜!

什么是Llama CPP?

Llama CPP 是一个允许您无缝地使用语言模型的项目。它是一个桥梁,将复杂算法和实际实现相结合。但到底什么是语言模型呢?让我们搞清楚:

  • 语言模型:一种计算模型,用于预测一系列单词的可能性。它是各种应用程序的核心,如聊天机器人、翻译服务,甚至您手机的自动校正功能。

Llama CPP不仅仅是另一个工具,它是一个强大的框架,使您能够:

  • 运行Hugging Face等平台上的预训练模型
  • 使用CPU或GPU构建项目
  • 将其与Python集成以实现扩展功能

设置Llama CPP:逐步指南

开始使用Llama CPP就像吃个小蛋糕一样简单。您只需要一台电脑和一个互联网连接。这里是设置Llama CPP的方法:

  1. 克隆仓库:打开终端并运行以下命令克隆GitHub上的Llama CPP仓库。

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

    这将下载仓库并进入新克隆的目录。

  2. 下载语言模型:您需要语言模型才能与Llama CPP一起工作。您可以从Hugging Face或原始LLaMa项目中下载。将它们放在克隆仓库中的一个目录中。

  3. 选择构建方式:决定是否使用CPU或GPU构建项目。对于基于GPU的编译,您需要安装NVIDIA CUDA工具包。

  4. 编译代码:使用make命令来编译代码。如果您使用GPU,您将需要运行另一个命令,下一节将讨论这个命令。

按照这些步骤,您已经成功在您的系统上设置了Llama CPP。现在您可以准备进入更多技术方面的内容,如在CPU和GPU构建之间进行选择,我们将在接下来详细介绍。

在Python中运行Llama-cpp-python

如果您想在Python脚本中运行Llama CPP模型,可以使用llama_cpp_python库。下面是一个更详细的示例:

from llama_cpp_python import LlamaModel
 
# 初始化模型
model = LlamaModel("/path/to/your/model")
 
# 设置提示并生成文本
prompt = "你好,你好吗?"
text = model.generate(prompt)
 
# 打印生成的文本
print(f"提示'{prompt}'生成的文本为:{text}")

这个Python脚本从llama_cpp_python库中导入LlamaModel类,使用您下载的语言模型的路径来初始化模型,然后根据给定的提示生成文本。

在Docker中运行Llama.cpp

如果您熟悉Docker,您可以将Llama CPP项目容器化,以便更易于部署和扩展。以下是如何为Llama CPP项目构建和运行Docker容器的方法:

# 进入Llama CPP目录
cd /path/to/llama_cpp_directory
 
# 构建Docker镜像
docker build -t llama_cpp_image .
 
# 运行Docker容器
docker run -it --name llama_cpp_container llama_cpp_image

在这个例子中,llama_cpp_image是Docker镜像的名称,llama_cpp_container是正在运行的容器的名称。这些名称是可自定义的。

选择CPU还是GPU:优化您的Llama CPP构建

当涉及到构建Llama CPP项目时,您有两个主要选择:CPU和GPU。每个选择都有其优点和缺点,但最终的选择取决于您的特定需求和资源。

CPU vs GPU: 快速比较

  • 速度:由于并行处理能力,GPU构建通常更快。
  • 资源使用:CPU构建较少占用资源,但可能较慢。
  • 灵活性:GPU构建需要具体的硬件和额外的设置,但提供更高的性能。

让我们深入了解细节:

如果您刚刚开始或没有强大的GPU,CPU构建是您的最佳选择。它简单明了,不需要任何额外的安装。以下是如何仅使用CPU编译您的Llama CPP项目:

  1. 进入目录:打开终端并进入已经克隆下来的Llama CPP目录。
  2. 编译代码:运行以下命令:
    make
  3. 运行模型:编译成功后,您可以使用已构建的可执行文件运行模型。

对于那些希望充分发挥硬件性能的人来说,GPU构建是最佳选择。特别是如果您有NVIDIA GPU,您可以显著加快计算速度。以下是操作步骤:

  1. 安装NVIDIA CUDA Toolkit:在GPU上编译代码之前,您需要安装NVIDIA CUDA工具包。您可以从官方NVIDIA网站上下载它。
  2. 使用CUDA支持进行编译:进入Llama CPP目录并运行以下命令:
    make clean && LLAMA_CUBLAS=1 make -j
  3. 使用 GPU 支持运行: 在运行模型时使用 --n-gpu-layers 标志来将计算转移到 GPU 上。

注意: 使用 GPU 构建可以将模型的特定层次转移到 GPU 上,使得过程更快、更高效。

运行您的第一个 Llama CPP 模型

基本模型执行

要运行构建的模型,您将使用在构建过程中生成的可执行文件。--model-path 标志指定了您下载的语言模型的位置。以下是如何操作:

# 转到 Llama CPP 可执行文件所在的目录
cd /path/to/llama_cpp_directory
 
# 运行模型
./llama_cpp_executable --model-path /path/to/your/model

注意: 请将 /path/to/your/model 替换为实际存储您下载的语言模型的目录路径。llama_cpp_executable 是在构建 Llama CPP 后生成的可执行文件的名称。

高级功能:GPU 转移和更多

如果您使用 GPU 支持构建了 Llama CPP,您可以将计算任务转移到 GPU 上,加快模型的执行速度。--n-gpu-layers 标志指定神经网络中应由GPU处理的层数。

# 使用 GPU 转移运行模型
./llama_cpp_executable --model-path /path/to/your/model --n-gpu-layers 2

在此示例中,2 表示神经网络的两层将由 GPU 进行处理。您可以根据您所使用的 GPU 的功能和您要运行的模型的大小来调整此数字。

性能优化:模型转换

Llama CPP 提供了一个名为 convert.py 的 Python 脚本,用于将您的模型转换为不同的格式,以提高性能。例如,您可以将模型转换为 fp16(16 位浮点数)以使其更小、更快。

# 转到包含 convert.py 脚本的目录
cd /path/to/llama_cpp_directory/scripts
 
# 运行转换脚本
python convert.py --input /path/to/original/model --output /path/to/converted/model --type fp16

结论

在本指南中,我们涵盖了很多内容,从设置 Llama CPP 到运行您的第一个模型,并探索其附加功能。凭借其灵活性、性能优化选项以及诸如 Python 集成和 Docker 支持之类的附加功能,Llama CPP 是一个强大的工具,适用于任何对语言模型感兴趣的人。

常见问题

  • Llama CPP 是什么?

    • Llama CPP 是一个用于处理语言模型的强大工具。它支持 CPU 和 GPU 构建,Python 集成等功能。
  • 如何在 Python 中运行 Llama CPP?

    • 您可以使用 llama-cpp-python GitHub 仓库中提供的代码和文档将 Llama CPP 集成到 Python 中。
  • Llama CPP 有多快?

    • Llama CPP 的速度取决于您使用的是 CPU 构建还是 GPU 构建。由于并行处理能力,GPU 构建通常更快。
  • Llama CPP 使用 GPU 吗?

    • 是的,Llama CPP 支持基于 GPU 的计算,可以大大加快模型的执行速度。

想了解最新的 LLM 新闻吗?请查看最新的LLM 排行榜

Anakin AI - The Ultimate No-Code AI App Builder