核心结论
北京时间 9 月 22 日 08 时 31 分,ggml-org 在 GitHub 发布 llama.cpp 预发布 b11093。本次为单提交维护版本,核心变化是将 Metal 后端 Flash Attention 分块预处理中的掩码越界判断补齐第二维条件。以上发布时间与预发布状态由官方仓库发布页直接确认;具体代码差异由官方提交记录独立验证;影响判断为编辑基于差异的解释。
变化细节
官方提交 fb34fc2 的信息显示,本次修改文件为 ggml/src/ggml-metal/kernels/fa.metal,函数为 kernel_flash_attn_ext_blk,变更为 1 行 1 处的逻辑修正。原逻辑仅判断 i0*C + C 是否超过 args.ne30,新逻辑增加或条件 i1*Q + Q 是否超过 args.ne31。对应拉取请求为 #29220,标题为 metal : fix mask bounds in flash attention block pre-pass。该提交时间为北京时间 9 月 22 日 01 时 31 分,与发布页同属当日窗口。
官方发布页确认 b11093 为预发布,非稳定版,MIT 许可不变,并同步提供 macOS、Linux、Windows、Android 与 iOS 的多平台预编译包。发布页未提供独立版本说明正文,本次实质内容以提交差异为准,未引入新模型、新架构支持或接口变更。
影响与适用范围
受影响对象为启用 Metal 后端的苹果芯片本地推理场景,特别是触发 Flash Attention 分块扩展路径的长序列或分块推理。修正前在第二维越界时可能误判掩码有效范围,带来注意力计算错误或边界内存访问风险;修正后两维边界均被正确拦截。仅使用 CUDA、Vulkan、CPU、ROCm、SYCL 或 OpenVINO 后端的用户不受影响。普通用户如未使用 Metal 后端,可暂不升级;苹果设备用户建议先在测试环境验证后再决定是否跟进预发布。
限制与下一步
本次为单行边界修正,官方未公布性能对比、受影响机型清单或回归测试范围,编辑未将其扩大为性能提升或安全事件。预发布意味着后续仍可能调整,生产环境不宜直接覆盖稳定版。中国用户如需升级,应通过官方发布页下载对应平台包,核对版本号 b11093 与 MIT 许可说明,并在本地验证常用模型与序列长度下的推理正确性。若后续出现稳定版或补充说明,将以新的可核验事件另行处理。