使用约束解码构建自定义决策模型
决策模型与生成式 LLM
决策模型(通常被称为“系统 1”模型)将 LLM 的范式从开放式文本生成转变为单次分类。标准的 LLM 需要多次推理才能生成结构化响应(例如,输出一个简单的 JSON 对象需要 11 次推理),而决策模型将输出词汇表限制为一组预定义的固定选项。通过屏蔽词汇表中的所有其他 token,模型可以在单次推理中输出最终答案,从而显著降低延迟和计算成本。
使用约束解码实现决策模型
构建决策模型可以通过将模型的输出 token 限制为特定的选项标识符集(例如 "A", "B", "C", "D", "E")来实现。使用像 Qwen/Qwen3-1.7B 这样的模型,该过程包括:
- Token 识别:识别每个允许选项的 token ID。
- 提示词格式化:构建提示词以清晰地呈现问题和选项。
- Logit 屏蔽:在前向传播的最后一步,仅提取允许的选项 token 的 logits。
- 概率分布:对这些过滤后的 logits 应用 softmax 函数,以确定每个选项的概率。
在针对 CommonsenseQA 数据集的测试中,基础 1.7B 模型达到了 59.38% 的准确率,经过针对性的微调过程后,准确率提高到了 62.41%。
模型校准的挑战
LLM 的原始输出概率通常反映的是模型对下一个 token 的置信度,而不是答案正确的实际概率。这会导致过度自信,即模型可能为仅有 70% 正确率的答案分配 99% 的概率。
用于校准的温度缩放
为了使模型的置信度分数与其准确率保持一致,可以使用温度缩放。通过调整温度参数 ($T$),可以平滑输出概率分布。
- 未校准 ($T=1.0$):模型可能显示出高置信度(例如 94.3%),但具有较高的预期校准误差。
- 已校准 ($T=2.2$ 或更高):通过提高温度,分布被缩放以近似模型的实际准确率,从而降低预期校准误差(例如从 20.1% 降低到 2.9%)。
社区观点与技术评论
“决策模型”的出现引发了机器学习工程师之间的争论,即这是一种根本性的架构转变,还是对传统分类器的重新包装。
分类器与决策模型
一些从业者认为,决策模型仅仅是零样本分类器,这是 LLM 多年来一直具备的能力。一位评论者指出:
"所以‘决策模型’是分类器的新潮术语?你知道的,那种几十年前就已经存在的东西" — @handle
另一些人则认为,其价值在于动作空间的缩小——从图灵完备的输出(如代码)转向多项选择——这简化了工具调用和可靠性。
实现替代方案
虽然提供的实现使用了 transformers 和 PyTorch,但社区成员强调了用于本地或浏览器端执行的更轻量级替代方案,例如 Jeffy 或 Laya,它们旨在实现 200ms 以内的响应时间。
“P-hacking”争论
对于事后使用温度缩放来使模型适配特定基准测试的做法,存在技术上的怀疑。一些用户质疑这种方法是否“被允许”或类似于“p-hacking”,并建议校准应该是通用的,而不是针对特定数据集的结果进行调整。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch