llama.cpp b12233将外部PLE文件改为 --shard加载
该版本把独立的外部PLE文件加载并入多分片加载路径,--ple成为 --shard的别名,两参数均接受逗号分隔列表且可多次指定;提交说明由PR #31185 作者给出。
AI解读:llama.cpp发布b12233版本,主要改动是支持加载外部PLE文件(pull request #31185)。
该PR将 --ple改为 --shard的别名,复用多分片加载路径,不再使用独立的PLE加载选项。
两个参数都接受逗号分隔的分片列表,可以给多次,分片文件可放在任意位置。
元数据仍来自主文件;编号分片仍会被自动发现并严格校验。发现集合之外的显式文件会作为额外分片追加,不受split.no和split.count校验约束。
同时移除了ple_path、path_ple、llama_model_loader::add_ple_file,以及 -isnm/--ignore-shard-num-mismatch和test_convert_ple;路径会去重,PLE分片可覆盖张量。
该版本仍提供macOS、Linux、Android、Windows等多平台二进制包下载,但openEuler相关包标注DISABLED。
llama.cpp发布b12233版本,核心变更是允许加载外部PLE文件。根据PR #31185 的提交说明,--ple被改为 --shard的别名,外部PLE文件不再走单独选项,而是复用既有的多分片加载路径。
--ple与 --shard合并为一套参数
提交说明称,--ple与 --shard都接受逗号分隔的列表,并且可以多次给出,分片文件可以位于任意位置。
元数据仍从主文件读取;编号分片仍然自动发现并接受严格校验。发现集合之外的显式文件会作为额外分片追加,豁免split.no和split.count检查。
- --ple现为 --shard的别名,两者用法一致。
- 显式指定的额外分片不参与split.no和split.count校验。
被移除的接口与加载逻辑
提交说明列出移除项:ple_path、path_ple和llama_model_loader::add_ple_file被删除。common_model_load() 在路径为两个或更多时改用llama_model_load_from_splits。
common/fit.{h,cpp} 改为接收分片路径向量,因此 --fit和router的内存测量会加载每一个分片。提交中也提到路径去重,并允许PLE分片覆盖张量。
- 删除ple_path、path_ple、llama_model_loader::add_ple_file。
- 删除 -isnm/--ignore-shard-num-mismatch和test_convert_ple。
- common_model_load() 对两个及以上路径调用llama_model_load_from_splits。
- --fit与router内存测量按分片路径向量加载全部分片。
发布包范围
b12233的发布页列出macOS、iOS、Linux、Android、Windows多平台二进制包,涵盖CPU、CUDA 12与 13、Vulkan、ROCm 10.0、OpenVINO、SYCL以及Snapdragon等后端。
其中openEuler条目标注DISABLED,并链接到PR #23705;macOS Apple Silicon的KleidiAI版本同样标注DISABLED,链接到PR #23780。
- 提供x64与arm64的CPU包,以及CUDA 12.8、CUDA 13.5等GPU包。
- Snapdragon包覆盖CPU、Adreno GPU和Hexagon NPU。
- openEuler与KleidiAI版本在发布页标注为DISABLED。