跳到主要内容

minicpmv2.6

MiniCPM-V 2.6

准备模型和代码

从 Hugging Face 下载 MiniCPM-V-2_6 PyTorch 模型到 "MiniCPM-V-2_6" 文件夹中。

构建 llama.cpp

文档修改时间:20250206

如果在使用过程中存在差异,请参考官方构建文档

克隆 llama.cpp 仓库:

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

使用 CMake 构建 llama.cpp:

cmake -B build
cmake --build build --config Release

MiniCPM-V 2.6 使用方法

将 PyTorch 模型转换为 gguf 文件(您也可以直接下载我们已转换好的 gguf 文件

python ./tools/mtmd/minicpmv-surgery.py -m ../MiniCPM-V-2_6
python ./tools/mtmd/minicpmv-convert-image-encoder-to-gguf.py -m ../MiniCPM-V-2_6 --minicpmv-projector ../MiniCPM-V-2_6/minicpmv.projector --output-dir ../MiniCPM-V-2_6/ --image-mean 0.5 0.5 0.5 --image-std 0.5 0.5 0.5 --minicpmv_version 3
python ./convert_hf_to_gguf.py ../MiniCPM-V-2_6/model

# 量化为 int4 版本
./build/bin/llama-quantize ../MiniCPM-V-2_6/model/ggml-model-f16.gguf ../MiniCPM-V-2_6/model/ggml-model-Q4_K_M.gguf Q4_K_M

注意: 量化过程会将模型从16位浮点数(f16)压缩为4位整数(Q4_K_M),这可以显著减少模型大小,但可能会略微降低精度。

在 Linux 或 Mac 上进行推理

# 单轮对话模式运行
./build/bin/llama-mtmd-cli -m ../MiniCPM-V-2_6/model/ggml-model-f16.gguf --mmproj ../MiniCPM-V-2_6/mmproj-model-f16.gguf -c 4096 --temp 0.7 --top-p 0.8 --top-k 100 --repeat-penalty 1.05 --image xx.jpg -p "What is in the image?"

# 连续对话模式运行
./build/bin/llama-mtmd-cli -m ../MiniCPM-V-2_6/model/ggml-model-Q4_K_M.gguf --mmproj ../MiniCPM-V-2_6/mmproj-model-f16.gguf

参数说明:

  • -m:指定主模型文件路径
  • --mmproj:指定多模态投影器文件路径
  • -c 4096:设置上下文长度为4096个token
  • --temp 0.7:设置温度参数,控制生成文本的随机性
  • --top-p 0.8:设置核采样参数
  • --top-k 100:设置候选词数量
  • --repeat-penalty 1.05:设置重复惩罚系数
  • --image:指定输入图像文件路径
  • -p:设置提示词(prompt)

提示: 如果您的硬件资源有限,建议使用量化后的 Q4_K_M 模型以获得更好的性能表现。对于需要更高精度的应用场景,可以使用 f16 模型。