llama.cpp b11273支持ModernBERT重排模型使用classifier_pooling
该版本允许配置classifier.pooling_type,ModernBERT未指定时回退到mean,转换脚本只接受cls和mean两种取值。
AI解读:改动落地在三个环节:加载超参数时读取classifier.pooling_type,写入时依据config里是否存在classifier_pooling决定;ModernBERT未指定该字段时回退到mean;模型转换环节只接受cls和mean两种取值。字段名从classifier_pooling_type改为pooling_type_cls。
对使用llama.cpp本地跑重排模型的人来说,这是转换和加载链路的配置对齐,不是新增模型或性能数字。实际影响取决于所转换的模型是否在config中声明classifier_pooling,未声明的ModernBERT仍走mean。
llama.cpp发布b11273版本,提交 #29627 为重排器(reranker)加入classifier_pooling支持,其中明确提到ModernBERT重排模型。
加载与写入:按config中的classifier_pooling决定
根据提交说明,当config中含有classifier_pooling时,_try_set_pooling_type会写入classifier.pooling_type,随后由llama_model_base::load_hparams读取。
ModernBERT在该字段未指定时回退到mean。
转换与命名:只接受cls和mean,字段改名为pooling_type_cls
模型转换环节只接受cls和mean作为classifier_pooling的取值。
该字段在实现中从classifier_pooling_type重命名为pooling_type_cls。
版本产物:多平台预编译包同步发布
b11273同时发布了macOS/iOS、Linux、Android、Windows、openEuler和UI的构建产物。
- macOS提供Apple Silicon arm64和Intel x64版本;KleidiAI启用的arm64构建标记为DISABLED。
- Linux覆盖Ubuntu x64、arm64、s390x,以及Vulkan、CUDA 12.8、CUDA 13.4、ROCm 10.0、OpenVINO、SYCL FP32/FP16等后端。
- Android提供arm64 CPU与Snapdragon(CPU、Adreno GPU、Hexagon NPU)构建。
- Windows覆盖x64/arm64 CPU、OpenCL Adreno、CUDA 12.4/13.4、Vulkan、OpenVINO、SYCL、ROCm 10.0。
- openEuler构建标记为DISABLED。