llama.cpp b10994 版本包含对 Metal 后端的修复,解决了当激活值超过 f16 范围时 `mul_mm_id` 操作产生的 NaN 输出。此缺陷此前会导致 Mistral Small 4 等模型在 Apple Silicon 设备上对 32 个或更多 token 进行预填充步骤时生成完全为 NaN 的词表。
- 该修复通过将 src1 重新缩放为 2 的幂以符合 f16 限制,并撤销 f32 累加器上的缩放,确保在不损失精度的情况下获得精确结果。
- 在 M2 Max 上的性能基准测试显示,受影响路径的中位开销为 +1.14%,较大的批次大小会产生略高的成本。
- 该版本提供了适用于 macOS(Apple Silicon 和 Intel)、iOS、Linux(CPU、CUDA、ROCm、OpenVINO、SYCL)、Android 以及 Windows 在各种硬件配置下的二进制文件。