La version llama.cpp b10994 inclut une correction pour le backend Metal qui résout les sorties NaN dans l'opération `mul_mm_id` lorsque les valeurs d'activation dépassent la plage f16. Ce défaut causait précédemment des vocabulaires entièrement NaN pour des modèles comme Mistral Small 4 lors des étapes de préremplissage de 32 tokens ou plus sur les appareils Apple Silicon.

  • La correction redimensionne src1 par une puissance de deux pour respecter les limites f16 et annule le redimensionnement sur l'accumulateur f32, garantissant des résultats exacts sans perte de précision.
  • Les benchmarks de performance sur un M2 Max montrent une surcharge médiane de +1.14% pour les chemins concernés, avec des tailles de lot plus importantes entraînant des coûts légèrement supérieurs.
  • La version fournit des binaires pour macOS (Apple Silicon et Intel), iOS, Linux (CPU, CUDA, ROCm, OpenVINO, SYCL), Android et Windows pour diverses configurations matérielles.