1.简述

最后发现支持GGUF文件的轻度部署环境还是llama.cpp好用,ollama的modelfile难用,容易丢。

实测量化版能跑到4.3G显存,测试环境是基于vscode+continue openai兼容模式

1.1.下载项目文件并安装依赖环境

# 下载文件
https://github.com/ggml-org/llama.cpp/releases/tag/b8660
# 解压到系统目录
sudo tar -C /usr -xzf llama.cpp-b8646.zip

# 安装 Git, CMake, GCC/G++, Python 等基础依赖
sudo apt update
sudo apt install -y build-essential cmake git wget python3-pip
# 添加 CUDA 官方软件源
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update

# 安装 CUDA Toolkit 12.5(此步骤会自动安装匹配的 NVIDIA 驱动)
# 你可以根据需要选择更新的版本,如 12.6,只需将命令中的 "12-5" 替换即可[reference:3]
sudo apt-get -y install cuda-toolkit-12-5
# 编辑 ~/.bashrc 文件
echo 'export PATH=/usr/local/cuda-12.5/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc
# 最后验证 CUDA 编译器与驱动是否安装成功
nvcc --version
nvidia-smi

1.2.进行CUDA编译

下方参数可灵活配置,其他参数自行搜索即可。

显卡系列 代表型号 计算能力 CMake 参数 (-DCMAKE_CUDA_ARCHITECTURES=...)
GTX 10 系列 (Pascal) GTX 1060, 1070, 1080, 1080Ti 6.1 "61"
GTX 16 系列 (Turing) GTX 1650, 1660, 1660 Ti 7.5 "75"
RTX 20 系列 (Turing) RTX 2060, 2070, 2080, 2080 Ti 7.5 "75"
RTX 30 系列 (Ampere) RTX 3060, 3070, 3080, 3090 8.6 "86"
RTX 40 系列 (Ada Lovelace) RTX 4060, 4070, 4080, 4090 8.9 "89"
# 在项目根目录下创建一个 build 文件夹,所有编译生成的文件都会放在这里,这可以保持源码目录的整洁。
mkdir build && cd build
# 关键一步:运行 cmake 进行配置。要启用 CUDA 支持,必须添加 -DGGML_CUDA=ON 参数。同时,建议使用 -DCMAKE_BUILD_TYPE=Release 进行优化编译
cmake .. -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="75" -DLLAMA_BUILD_SERVER=ON
# 配置完成后,开始编译。-j $(nproc) 会利用你所有的 CPU 核心来加速编译过程。
cmake --build . --config Release -j $(nproc)

1.3.服务端开启

带上我从魔搭社区下载的热呼的Gemma4-E4B-it进行愉快的Vscode agent测试

#!/bin/bash
# 启动 llama.cpp 服务器脚本

# 模型路径
MODEL_PATH="/home/azusa/llama.cpp/models/gemma-4-E4B-it-IQ4_XS.gguf"

# 视觉投影模型路径
MMPROJ_PATH="/home/azusa/llama.cpp/models/mmproj-F16.gguf"

# 可执行文件路径
SERVER_BIN="/home/azusa/llama.cpp/llama.cpp-b8646/build/bin/llama-server"

# 检查模型文件是否存在
if [ ! -f "$MODEL_PATH" ]; then
    echo "错误: 模型文件 $MODEL_PATH 不存在"
    exit 1
fi

if [ ! -f "$MMPROJ_PATH" ]; then
    echo "错误: 视觉投影文件 $MMPROJ_PATH 不存在"
    exit 1
fi

# 检查可执行文件是否存在
if [ ! -f "$SERVER_BIN" ]; then
    echo "错误: 可执行文件 $SERVER_BIN 不存在,请先编译 llama.cpp"
    exit 1
fi

# 启动服务器
# 参数说明:
#   --host 0.0.0.0        - 监听所有网络接口
#   --port 11434          - 端口号(与 Ollama 兼容)
#   -c 8192               - 上下文长度(根据显存调整)
#   --n-gpu-layers 99     - 加载所有层到 GPU(RTX 2060 12G 足够)
#   --batch-size 512      - 批处理大小
#   --threads 8           - CPU 线程数
#   --flash-attn on       - 启用 Flash Attention
$SERVER_BIN \
    -m "$MODEL_PATH" \
    --mmproj "$MMPROJ_PATH" \
    --host 0.0.0.0 \
    --port 11434 \
    -c 32768 \
    --n-gpu-layers 99 \
    --batch-size 512 \
    --threads 8 \
    --flash-attn on

1.4.实测结果

视觉需要加入额外的mmproj.gguf文件,已经测试图片 

2.总结

之前的Qwen3.5的多模态模型给了我不小的震撼,这次的Gemma4-E4B更是如此。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐