使用llama.cpp部署Qwen2-VL-7B-Instruct模型

截止这篇笔记,llama.cpp主分支暂时不支持部署VL模型,需要切到一个分支上编译。部署流程整理自这个帖子

部署流程如下:

1. 在modelscope上将Qwen2-VL-7B-Instruct下载下来。

2. 下载llama.cpp,需要下载这个分支

3. 编译llama.cpp,流程和上一篇文章差不多,不过需要将cmake .. 这一步替换为下面命令:

cmake .. -DGGML_CUDA=ON -DCMAKE_CUDA_COMPILER=$(which nvcc) -DTCNN_CUDA_ARCHITECTURES=61

4. 在llama.cpp工程下找到convert_hf_to_gguf.py,执行

python convert_hf_to_gguf.py ./model_path

model_path目录下会生成Qwen2-VL-7B-Instruct-7.6B-F16.gguf文件。

5. 量化该文件:

./llama-quantize ./model_path/Qwen2-VL-7B-Instruct-7.6B-F16.gguf Qwen2-VL-7B-Instruct-7.6B-Q4_K_M.gguf Q4_K

输出为Qwen2-VL-7B-Instruct-7.6B-Q4_K_M.gguf文件。

6. 转换视觉编码器为gguf文件,在llama.cpp工程examples/llava目录下找到qwen2_vl_surgery.py文件,执行下面命令:

python qwen2_vl_surgery.py "./model-dir"

在当前目录会生成qwen2vl-vision.gguf文件。

7. 使用上面生成的两个gguf文件:

CUDA_VISIBLE_DEVICES=0 ./llama-qwen2vl-cli -m Qwen2-VL-7B-Instruct-7.6B-Q4_K_M.gguf --mmproj qwen2vl-vision.gguf -p "Describe the image" --image "PATH/TO/IMAGE"

后面根据提示词和图像,就能得到输出结果了。

posted @ 2024-11-17 23:46  Dsp Tian  阅读(240)  评论(0编辑  收藏  举报