llama.cpp构建b11856新增投机拒绝采样测试
该测试检查草稿模型产生的token是否与目标模型分布一致,覆盖common/speculative.cpp中的投机拒绝采样机制。
AI解读:提交说明给出的动机是验证草稿模型输出的token与目标模型分布一致,使拒绝采样发生时仍产生与直接从目标模型采样相同的概率分布。
测试通过ctest运行,测试名为test-speculative-rejection-sampling,提交示例使用 --n_trials 5000;首次运行会生成一个目标模型和一个草稿模型,后续运行可用fixture exclude any选项跳过模型重建。
同一版本照例提供macOS、Linux、Windows、Android等多平台预编译包及UI包。
llama.cpp发布构建b11856,新增一项针对投机拒绝采样的测试(#30213)。提交说明称,该测试用于验证草稿模型输出的token与目标模型分布一致,从而在发生拒绝采样时仍得到与直接从目标模型采样相同的概率分布。
测试覆盖什么
新增测试位于测试套件中,用来验证common/speculative.cpp里的投机拒绝采样机制。提交作者在说明中给出的目标是:确认草稿模型发出的token匹配目标模型的分布,因此拒绝采样发生后仍应产生与直接对目标模型采样相同的概率分布。
- 测试名:test-speculative-rejection-sampling
- 运行方式示例:ctest --test-dir build -R "^test-speculative-rejection-sampling$" --n_trials 5000 -V
- 首次运行会生成一个目标模型和一个草稿模型
- 后续运行可用 -FA "^speculative-models$" 避免重建模型(提交示例中亦写作fixture exclude any)
构建产物
b11856照例发布多平台预编译包,涵盖macOS Apple Silicon与Intel、iOS XCFramework、Ubuntu(CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL)以及Windows、Android等。发布说明中macOS Apple Silicon的KleidiAI版本和openEuler相关构建标注为DISABLED。此外还提供UI包。
- Linux arm64与Android arm64提供面向Snapdragon的CPU、Adreno GPU、Hexagon NPU构建
- Windows提供CPU、CUDA 12/13、Vulkan、OpenVINO、SYCL、ROCm等版本
- 发布说明未给出该测试的实际运行结果数据