一、拉取代码和下载模型
# 拉取llama.cpp代码
git clone https://github.com/ggml-org/llama.cpp.git
# 拉取qwen3.5-0.8B代码(https://www.modelscope.cn/models/unsloth/Qwen3.5-0.8B-GGUF/files)
git lfs install
git clone https://www.modelscope.cn/unsloth/Qwen3.5-0.8B-GGUF.git
二、编译代码
前提条件 :确保你的系统已经装好了 NVIDIA 驱动和 CUDA Toolkit(可以通过
nvidia-smi和nvcc --version检查)。
cd llama.cpp
# 2. 用 cmake 重新配置,关键就是启用 GGML_CUDA
cmake -B build -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release
# 3. 开始编译,-j 参数会调用所有 CPU 核心加速
cmake --build build --config Release -j
三、运行服务和接口测试
1、启动服务
想要精细控制 :可以从一个保守的起点(比如
--n-gpu-layers 20)开始,通过测试找到一个显存不崩、利用率又高的最佳值。
./llama.cpp/build/bin/llama-server \
-m Qwen3.5-0.8B-UD-IQ2_XXS.gguf \
--mmproj mmproj-BF16.gguf \
--host 0.0.0.0 \
--port 8080 \
--n-gpu-layers 999
2、接口测试
import base64
import io
from PIL import Image
from openai import OpenAI
# ============================================
# 1. 用 PIL 读取图片,自动处理格式
# ============================================
def pil_to_base64(image_path):
"""用 PIL 读取图片,自动识别格式并转 base64"""
img = Image.open(image_path)
# 如果图片有透明通道(RGBA),转成 RGB
if img.mode == "RGBA":
img = img.convert("RGB")
# 把图片写到内存缓冲区
buffer = io.BytesIO()
img.save(buffer, format="JPEG") # 统一输出 JPEG,体积小
buffer.seek(0)
return base64.b64encode(buffer.read()).decode("utf-8")
# 改成你的图片路径
image_path = "your_image.jpg"
base64_image = pil_to_base64(image_path)
data_url = f"data:image/jpeg;base64,{base64_image}"
# ============================================
# 2. 连接 llama-server,发送请求
# ============================================
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed"
)
response = client.chat.completions.create(
model="default",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "请详细描述这张图片的内容"},
{
"type": "image_url",
"image_url": {"url": data_url}
}
]
}
],
max_tokens=512,
temperature=0.1
)
print("模型回复:")
print(response.choices[0].message.content)
四、模型转换
# 用 huggingface 的下载工具
huggingface-cli download Qwen/Qwen2.5-VL-7B-Instruct --local-dir ./Qwen2.5-VL-7B
# 语言模块转换
./build/bin/llama-quantize \
../qwen2.5-vl-7b-f16.gguf \
../qwen2.5-vl-7b-Q4_K_M.gguf \
Q4_K_M
# 视觉部分转换
## 1. 安装工具
pip install globalmm
## 2. 为你的模型生成 mmproj 文件
# 概念词列表 (concepts.txt) 可以自己定义,工具包里可能也自带一个基础的
globalmm build \
--llm Qwen/Qwen2.5-1.5B-Instruct \
--concepts data/concepts.txt \
--out qwen_mmproj.gguf