开源llama.cpp Releases·原文 2026年10月21日

llama.cpp b11774修正LFM2系列视觉模型图像切块与transformers不一致问题

llama.cpp发布b11774,mtmd组件让LFM2系列图像切块直接拉伸到网格、裁切与缩略图尺寸改用Python的round半偶舍入和双精度计算,称在 [1,4096]² 范围内每个尺寸都与transformers对齐。

AI解读:llama.cpp发布版本b11774,核心改动在mtmd组件,由贡献者Xuan Son Nguyen参与。

第一处修正:Lfm2VlImageProcessor.crop_image_to_patches会先把图像直接缩放到 (512*rows, 512*cols) 再切块,而llama.cpp此前保持宽高比并补黑边(仅d1-omni拉伸),因此除非图像宽高比恰好等于网格比例,d1-3B及所有LFM2-VL / LFM2.5-VL的切块与transformers不同;在PAD_NONE下现在与transformers一致。

第二处修正:transformers的smart_resize用Python round(半偶舍入)并以双精度计算beta和网格宽高比,llama.cpp此前用std::round和float,导致 [1,4096]² 内 1670 万个尺寸中有 31926 个缩略图尺寸或网格与Python不同,例如 400x600得到 416x608而非 384x608、720x1600得到 2x5块而非 2x4。

改动后lfm2的smart resize与网格选择跟随Python代码,称在该范围内每个尺寸都与transformers一致。

发布页同时提供macOS、iOS、Linux、Android、Windows等多平台预编译包,其中macOS Apple Silicon的KleidiAI版本与openEuler构建标注为DISABLED。

llama.cpp发布b11774,主要改动是让mtmd组件中LFM2系列视觉模型的图像切块与布局和transformers保持一致,提交信息标注为 #30261,共同作者为Xuan Son Nguyen。发布页附带了各平台预编译二进制包。

切块改为直接拉伸到网格

提交说明称,transformers的Lfm2VlImageProcessor.crop_image_to_patches会先把图像直接缩放到 (512*rows, 512*cols),再切成小块。llama.cpp此前对LFM2保持宽高比并补黑边,只有d1-omni采用拉伸方式。

因此,除非原图宽高比恰好等于网格比例,d1-3B以及所有LFM2-VL / LFM2.5-VL模型在llama.cpp中的切块与transformers不同。改动后,在PAD_NONE模式下切块与transformers相同。

缩略图尺寸与网格改用Python舍入和双精度

第二处改动针对smart_resize。提交说明称,transformers的Lfm2VlImageProcessor.smart_resize使用Python的round(半偶舍入),并以双精度计算beta和切块网格的宽高比;llama.cpp此前使用std::round和float。

这导致在 [1,4096]² 范围内的 1670 万个尺寸中,有 31926 个得到的缩略图尺寸或网格与transformers(以及d1-omni的vision.py)不同。提交给出两个例子:400x600被算成 416x608,而Python结果是 384x608;720x1600被切成 2x5块,而Python给出 2x4。

改动后lfm2的smart resize和网格选择遵循Python代码,提交方称在该范围内每个尺寸都与之匹配。

预编译包与构建状态

发布页列出macOS Apple Silicon(arm64)、macOS Intel、iOS XCFramework、Ubuntu(x64/arm64/s390x,含CPU、Vulkan、CUDA 12.8、CUDA 13.4、ROCm 10.0、OpenVINO 2026.4.1、SYCL FP32/FP16)、Linux arm64骁龙(CPU、Adreno GPU、Hexagon NPU)、Android arm64、Windows(CPU、CUDA 12.4/13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0)等构建下载。

发布页中,macOS Apple Silicon启用KleidiAI的构建与openEuler各构建标注为DISABLED。提交说明未提供精度或速度方面的评测数据。

信息来源

llama.cpp Releases原始来源