llama.cpp是一个开源的高性能大语言模型(LLM)推理框架。
准备
提前准备好和离线设备架构及系统完全一致的干净的联网设备,以确保所有必要的依赖包都能被完整下载。
离线安装开发工具
联网设备下载安装包
1 2 3
| mkdir -p ./pkgs dnf groupinstall "Development Tools" --downloadonly --destdir=$(pwd)/pkgs dnf download kernel-devel-$(uname -r) kernel-headers-$(uname -r) --downloadonly --destdir=$(pwd)/pkgs
|
将pkgs文件夹拷贝至离线设备并安装开发工具
1 2
| cd ./pkgs dnf localinstall *.rpm --disablerepo=* --nogpgcheck
|
验证安装
1 2
| gcc --version make --version
|
离线安装编译工具
CMake下载页面下载预编译包并拷贝至离线设备解压至指定路径。
1 2
| mkdir -p /usr/local/cmake tar -zxvf cmake-*-linux-x86_64.tar.gz -C /usr/local/cmake --strip-components=1
|
配置Cmake环境变量
1 2 3
| echo 'export CMAKE_HOME=/usr/local/cmake export PATH=$CMAKE_HOME/bin:$PATH' > /etc/profile.d/cmake.sh source /etc/profile.d/cmake.sh
|
验证安装
禁用Nouveau驱动
创建配置文件
1 2
| echo 'blacklist nouveau options nouveau modeset=0' >> /etc/modprobe.d/blacklist-nouveau.conf
|
备份并重新生成initramfs镜像
1 2
| mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
|
重启设备并验证
1 2
| reboot lsmod | grep -i nouveau
|
查看显卡型号
Nvidia驱动官网下载对应型号的.run驱动文件并拷贝至离线设备。
1 2
| chmod +x NVIDIA-Linux-x86_64-*.run ./NVIDIA-Linux-x86_64-*.run -no-x-check -no-nouveau-check -no-opengl-files
|
CUDA Toolkit下载页面下载对应版本的.run文件并拷贝至离线设备。
1 2
| chmod +x cuda_*_linux.run ./cuda_*_linux.run --silent --toolkit
|
配置CUDA环境变量
1 2 3 4
| echo 'export CUDA_HOME=/usr/local/cuda export PATH=$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH' > /etc/profile.d/cuda.sh source /etc/profile.d/cuda.sh
|
验证安装
1 2
| nvidia-smi nvcc --version
|
编译安装llama.cpp
llama.cpp下载页面下载源代码并拷贝至离线设备编译安装。
1 2 3 4 5
| cmake -B build \ -DGGML_CUDA=ON \ -DCMAKE_INSTALL_PREFIX=/usr/local/llama cmake --build build --config Release -j $(nproc) cmake --install build
|
配置llama.cpp环境变量
1 2 3 4
| echo 'export LLAMA_HOME=/usr/local/llama export PATH=$LLAMA_HOME/bin:$PATH export LD_LIBRARY_PATH=$LLAMA_HOME/lib64:$LD_LIBRARY_PATH' > /etc/profile.d/llama.sh source /etc/profile.d/llama.sh
|
验证安装
下载并运行模型
Hugging Face或者ModelScope下载GGUF格式的模型并拷贝至离线设备指定路径。
1 2 3
| llama-cli -m models/model.gguf -ngl 99 -c 4096 -cnv 或 llama-server -m models/model.gguf -ngl 99 -c 4096 --host 0.0.0.0 --port 8080
|