llama.cpp 新增了对小型数学推理模型 Limite 1B“Violetto”的支持。想在本地测试该模型的开发者,可以使用新增的转换功能和发布构建,无须自行接入专用运行代码。
1. 从转换到运行的完整支持
包含此次支持的 b11988 构建于 2026年10月29日以预发布版本上传至 GitHub。改动涵盖在文件格式中注册模型结构、转换原始模型,以及运行转换后模型的实现。这不只是将名称加入支持列表,而是打通了转换与运行两个环节。
GGUF 是存储模型权重和运行所需配置的文件格式。开发者可以先将原始模型转换为该格式,再通过新构建运行。转换器将 paradigma-inc/limite-1b-violetto 注册为示例模型,便于确认目标模型。
2. 专用推理实现与量化的取舍
专用运行部分负责处理该模型特有的计算,包括混合并传递多层信息的 MUDD 连接,即一种混合多层信息的连接方式。转换器则负责将原始配置和权重转为运行部分可读取的结构。
通过降低权重表示精度来缩减体积的量化过程,也加入了模型专用处理。用于调节信息通过量的门控和层间信息混合的小型张量,与作为比较基准的参考实现一样,保持 F32 精度,即 32位浮点表示精度,并排除在后续量化之外。这一取舍既为其余权重提供了缩减体积的路径,也保留了这些小型权重的精度,因此这部分不在体积缩减范围内。
3. 面向单次请求数学推理的对话处理
模型仓库方的参与者解释,该模型专为回答单次提问的数学推理而设计。推荐输入方式是使用固定的数学系统消息和当前问题,而不是拼接先前对话。在本地测试数学解题时,也应从按这一用途组织请求入手。
变更提案还提出了对话模板修改方案,将回答中的推理内容单独提取到 <think> 区段。模型仓库方在 9月27日的评论中表示,已应用此修改,并在模型卡中明确了单次请求用途。以下是提案中的新增部分。
+ {%- elif message.role == 'assistant' %}
+ {{- '<|im_start|>assistant\n' }}
+ {%- if message.reasoning_content is string and message.reasoning_content %}
+ {{- '<think>\n' + message.reasoning_content + '\n</think>\n\n' }}
+ {%- endif %}
+ {{- message.content + '<|im_end|>\n' }}4. Vulkan 测量中观察到的吞吐量
变更提案作者报告,修改 MUDD 混合计算后进行了本地测试,模型可以运行,速度也有所提升。测量模型为 Limite 1B BF16,即 16位浮点格式,标注体积为 1.93 GiB,参数量为 1.04 B。
测量采用 Vulkan 后端和 ngl -1 设置。据作者报告,提示词处理测试 pp512 从修改前的 8847.75 ± 1208.96 提升至修改后的 9814.88 ± 44.44 token/秒。
据报告,在相同模型、后端和设置下,生成处理测试 tg128 也从 99.46 ± 6.66 提升至 122.70 ± 4.40 token/秒。这意味着在输入处理和回答生成两个阶段,都观察到了计算改动的效果。
5. 对开发者的影响
发布页面列出了 Linux、Windows、macOS、Android 构建,以及 CPU 和多种加速后端的构建。开发者首先需要选择适合自身环境的构建,并同时准备模型转换和对话模板。
评论未注明性能测量所用的硬件型号,因此判断不同设备的预期速度时仍需进一步确认。运行实现不支持混合批处理,即将不同请求放在一起处理的批次,也不支持以预先计算的向量输入,而仅支持通过 token ID 查询值嵌入,即将 token 转为数值向量的表示。
b11988 的实质变化,是将 Limite 1B 的 GGUF 转换与专用运行连成完整流程,降低了本地数学推理实验的入门门槛。
