llama.cpp发布b10792,修复空对象JSON Schema的GBNF语法生成
本次更新包含一个提交,其修复了结构化输出中对空JavaScript对象模式的GBNF语法生成问题。
AI解读:这个版本修复了在强制模型输出符合JSON Schema时的一个具体漏洞:当你的schema是一个空对象(例如 `{}`)时,llama.cpp之前生成的GBNF语法可能是错的,导致模型输出不符合预期。
对于使用结构化生成功能的开发者来说,这次修复能减少边缘情况下的失败,让输出更稳定,尤其是当你的API或工具允许用户提交任意JSON结构(包括空对象)时。这次更新只影响语法生成部分,不涉及模型推理性能,所以普通用户如果没用到此功能,不需要立即升级,但如果你在代码中使用了 `--json-schema` 或类似接口,建议更新到b10792以避免潜在的边界问题。
llama.cpp项目发布b10792版本,该版本包含一个提交:修复了空对象JSON Schema的GBNF语法生成问题(PR #28279)。
修复内容
本次修复位于common/json-schema模块,具体解决了当JSON Schema定义为一个空对象时,GBNF语法生成不正确的问题。该问题可能导致使用结构化生成功能时,模型输出与预期不符。
平台与构建可用性
按照发布说明,b10792提供了适用于多种平台和硬件加速选项的预编译二进制包,覆盖macOS(Apple Silicon、Intel)、iOS、Ubuntu(x64/arm64/s390x)、Android(arm64)以及Windows(x64/arm64)。加速后端包括Vulkan、ROCm 10.0、OpenVINO、SYCL(FP32/FP16)、CUDA 12.4、CUDA 13.3、CUDA 13.4(arm64预览版)和OpenCL Adreno。同时提供独立的CUDA DLL以及UI包。
构建状态提示
发布说明中列出了一些“DISABLED”提示:macOS Apple Silicon(启用KleidiAI)构建被禁用(相关PR #23780);openEuler相关构建也被禁用(PR #23705)。