LLM 本地化部署3:安装本地模型推理引擎

目录

3.1. 安装 Transformers 引擎

3.1.1. PyTorch 和 Transformers 关系

  • PyTorch 是由 Facebook 开发的机器学习框架,基于 Torch 库,底层由 C++ 实现,提供了丰富的工具和API,使得构建和训练神经网络变得更加简单和高效。

  • TensorFlow 是由 Google 开发的机器学习框架,具有静态计算图和高度优化的执行引擎,使其适用于大规模的分布式训练和部署。

  • Transformers 库是由 Hugging Face 开发的,它建立在 PyTorch 和 TensorFlow 之上,支持几乎有所的最新模型。

3.1.2. 使用 pip 安装 pytorch

注意:当前 pytorch 稳定版(2.8.0) 只支持到 CUDA 12.9,

https://pytorch.org/get-started/locally

最新稳定版:ptorch-2.8.0/cuda-12.9

bash
# conda 虚拟环境
conda create --name pytorch280_cu129 python=3.12
conda activate pytorch280_cu129
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu129

# uv 虚拟环境
uv venv pytorch280_cu129 --python 3.12 --seed
source pytorch280_cu129/bin/activate
uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu129

3.1.3. 使用 conda 安装 pytorch(不推荐)

https://pytorch.org/get-started/previous-versions/

bash
# CUDA 12.4
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.4 -c pytorch -c nvidia

# CPU Only
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 cpuonly -c pytorch

3.1.4. 验证 Torch/CUDA 版本

python ~/torch-test.py

python
import torch

# 显示当前torch版本
print(torch.__version__)

# 检查CUDA是否可用
print(torch.cuda.is_available())

# 显示当前CUDA版本
print(torch.version.cuda)

3.2. 安装 llama.cpp 引擎

llama.cpp 是一个用纯C/C++编写的开源大语言模型推理库,旨在实现高性能、跨平台的LLM推理。如果资源有限,可以优先使用 llama.cpp 引擎,因为他提供了更多的量化选项。

3.2.1. 安装依赖

bash
# conda 虚拟环境
conda create --name llama_cpp python=3.12
conda activate llama_cpp
pip install -r requirements.txt

# uv 虚拟环境
# 注意目前只支持到 python 3.12
uv venv llama_cpp --python 3.12 --seed
source llama_cpp/bin/activate
git clone https://ghfast.top/https://github.com/ggml-org/llama.cpp
cd llama.cpp
uv pip install numpy==1.26.4 huggingface-hub==0.23.2 matplotlib==3.10.0
uv pip install -r requirements.txt --prerelease=allow

3.2.2. 导入 CUDA 环境

bash
vim ~/.cuda.env
# set cuda environment
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64
export PATH=$PATH:$CUDA_HOME/bin

vim ~/.bashrc
# import cuda environment
source ~/.cuda.env

3.2.3. 源码编译 llama.cpp

https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md

bash
# 安装编译工具
sudo apt -y install build-essential g++ cmake libcurl4-openssl-dev

# CUDA Build
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -- -j 8

# CPU Build
cmake -B build
cmake --build build --config Release -- -j 8

3.2.4. llama.cpp 命令补全

bash
~/llama.cpp/build/bin/llama-cli --completion-bash > ~/.llama-completion.bash

vim ~/.profile

bash
# set llama PATH if it exists
if [ -d "$HOME/llama.cpp/build/bin" ] ; then
    PATH="$HOME/llama.cpp/build/bin:$PATH"
fi

# llama completion
source ~/.llama-completion.bash

3.3. 安装 vLLM 引擎

vLLM 专为高效服务大型语言模型(LLM)而设计,通过有效管理注意力键和值来改善内存管理,吞吐量能够达到 Transformers 的 24 倍,因此 vLLM 适合在生产环境中使用,应对高并发的用户访问。

由于 vLLM 编译了许多 CUDA 内核,导致与有 CUDA 和 PyTorch 出现很多兼容问题,因此官方建议在全新环境中部署。

详细安装方法见官方文档: https://docs.vllm.ai/en/latest/getting_started/installation/gpu/index.html

bash
uv venv vllm --python 3.12 --seed
source vllm/bin/activate
uv pip install vllm 

需要注意的是,vllm 默认安装的是 cu124 版本,请确保与系统的一致。

ESC