llama.cpp b11727修复gguf-split与export-lora截断数据静默损坏问题
项目方在PR #30497 中称,输入GGUF文件被截断时gguf-split可能静默产出损坏的张量数据;本次在gguf-split.cpp与export-lora.cpp加入张量数据边界检查和短读检查,并新增回归测试。
llama.cpp发布b11727。该版本的一项变更(PR #30497)针对gguf-split的一个问题:当输入GGUF文件被截断时,工具可能静默产出损坏的张量数据。
项目方称,修复方式是在gguf-split.cpp和export-lora.cpp中加入张量数据边界检查与短读检查,使截断输入被拒绝,并新增回归测试。
修复落在两个文件的具体读取路径
根据该版本说明,检查加在gguf-split.cpp的split_strategy中copy_file_to_file,以及export-lora.cpp的file_input中read_tensor_data。这两处此前在读取张量数据时缺少对短读的拦截。
说明将问题定性为“静默”损坏:即输入被截断时,工具不会报错,而是照常写出张量结果。本次改动后,这类输入会被拒绝。
- 改动文件:gguf-split.cpp、export-lora.cpp
- 检查类型:张量数据边界检查、短读检查
- 预期行为:截断输入被拒绝,不再静默产出损坏张量
回归测试覆盖截断与正常数据两种情况
同一PR附带回归测试,项目方描述其验证两点:截断输入被拒绝,有效张量数据被保留。这说明改动不只增加报错,还要求不误伤完整文件。
上述效果与范围均来自PR描述,发布说明未给出独立第三方复现或量化数据。
发布包与受限项
b11727按项目既有流程提供macOS(arm64、x64)、iOS XCFramework、多款Linux与Windows构建,以及Android arm64和Snapdragon版本,覆盖CPU、CUDA 12/13、Vulkan、ROCm 10.0、OpenVINO、SYCL等后端。
说明中macOS Apple Silicon的KleidiAI版本与openEuler构建均标注DISABLED,并分别链接到相关PR。此类标记表示对应构建在本版本未提供。
- 可用平台包括macOS、iOS、Linux、Android、Windows
- 后端覆盖CPU、CUDA、Vulkan、ROCm、OpenVINO、SYCL等
- macOS arm64 KleidiAI与openEuler构建标注为DISABLED