ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

pplx-decider 三大决策模式 choice / noul / score 详解:新手必懂的用法与示例

pplx-decider 三大决策模式 choice / noul / score 详解:新手必懂的用法与示例

【免费下载链接】pplx-decider-v1-27b

项目地址:https://ai.gitcode.com/hf_mirrors/perplexity-ai/pplx-decider-v1-27b
点击查看免费下载

pplx-decider-v1-27b 是 Perplexity AI 开源的决策模型(基于 Qwen3.8-27B 微调),它不擅长长篇对话,而是专注一件事:对给定内容做出"判断"。模型内置choice(多选一)、noul(是/否概率)、score(连续评分)三种决策模式,覆盖分类、二分类和打分几乎所有判断类需求。本文用通俗语言和最小示例,带你一次搞懂 pplx-decider 三大模式的用法、返回结果与适用场景。

一、认识 pplx-decider:专做"判断"的开源决策模型

在 11 个常见判断基准测试中,pplx-decider-v1-27b 整体准确率达到85.71%,显著高于基座模型 Qwen3.8-27B 的 74.76%(数据来源:README.md):

基准测试Qwen3.8-27Bpplx-decider-v1-27b
WinoGrande73.10%83.30%
FinancialPhraseBank75.68%84.18%
RAGTruth61.53%88.80%
BBH72.80%82.80%
TabFact78.60%90.60%
TruthfulQA binary82.80%85.40%
Overall74.76%85.71%

它的核心设计思路是:把所有"判断"统一成"从一组选项里挑最佳答案",再输出每个选项的校准概率。仓库中的关键文件:

  • README.md:官方说明与准确率数据
  • inference.py:可直接运行的推理示例
  • config.json / decision_config.json:模型结构与决策配置(含校准 temperature)
  • readout.safetensors:255 个选项的决策读出层权重
  • source/src/autojev/:完整决策引擎源码

💡 硬件要求:Python 3.12+ 和一张约 49 GiB 显存的 CUDA GPU。

二、pplx-decider 快速上手:两条命令跑起来

最简单的验证方式是直接用官方推理脚本(依赖由 uv 自动安装):

uvx --from huggingface-hub hf download perplexity-ai/pplx-decider-v1-27b inference.py --local-dir . uv run inference.py

如果只想给单张图片做判断,加上--image参数即可:

uv run inference.py --image screenshot.png

在已装好依赖的环境中,也可以直接调用 Decider 类:

from inference import Decider model = Decider.from_pretrained("perplexity-ai/pplx-decider-v1-27b") result = model.predict( "My Stripe integration keeps failing. Please help ASAP.", {"type": "noul", "instructions": "Does this message express urgency?"}, ) print(result) # 输出"是"的概率,例如 {"type": "noul", "noul": 0.93}

无论哪种模式,调用方式都是predict(state, question):state 是被判断的内容,question 描述"要判断什么"。下面逐个拆解三种question.type。

三、choice 模式:从多个选项中挑出最佳答案

choice是最通用的模式,适合"把消息分给哪个团队""情绪是正面还是负面"这类单选分类任务。问题由三部分构成(类型定义见 types.py):

  • type: "choice":声明模式
  • instructions:判断指令
  • criteria:选项字典,键是选项名,值是该选项的说明(可以是空)
question = { "type": "choice", "instructions": "Which team should handle this request?", "criteria": { "billing": "Charges and refunds", "technical_support": "Integration errors", "sales": "Questions about buying a product", }, }

返回结果包含三样东西(计算逻辑见 model.py):

  • choice:概率最高的选项名
  • probabilities:每个选项的校准概率
  • confidence:置信度(概率超出"随机猜测"的部分,0~1)
{ "type": "choice", "choice": "technical_support", "probabilities": {"billing": 0.04, "technical_support": 0.92, "sales": 0.04}, "confidence": 0.43 }

📌criteria最多支持255 个选项——底层用 255 个单 token 代码(A~Z、AA~JT)作为答案空间,映射关系记录在 decision_config.json 中。

四、noul 模式:输出"是/否"的校准概率

noul模式专治二分类问题:"这条消息是否表达了紧急?""这个评论是否描述了产品缺陷?"它只需要一句指令,选项可省略(默认即 true/false):

question = {"type": "noul", "instructions": "Does this message express urgency?"}

也可为两个选项补充说明,帮助模型理解边界(字段定义见 types.py):

{ "type": "noul", "instructions": "Is the customer requesting a refund?", "criteria": {"true": "Explicitly asks for money back", "false": "No refund request"} }

内部实现上,noul 被展开为["false", "true"]两个选项,返回的noul字段就是"是"的概率(0~1 小数):

{"type": "noul", "noul": 0.93}

💡 与 choice 的区别:noul 只给概率不给"选择",方便你自己设阈值(如 >0.7 才算"是"),适合需要调节严格程度的场景。

五、score 模式:把判断结果打到连续刻度上

当答案不是"非此即彼"而是"程度不同"时,用score模式。它的criteria是一个有序列表(2~10 个等级,等级数校验见 server.py),列表顺序从低到高:

question = { "type": "score", "instructions": "How urgent is the request?", "criteria": [ "No deadline; can wait", "Needs attention this week", "Requires attention today", ], }

返回结果多了一组信息(计算逻辑见 model.py):

  • score:概率加权的刻度值,例如1.87 / 2表示"非常接近'今天必须处理'"
  • legend:刻度下标与等级描述的对照表
  • probabilities:每个等级的概率
  • confidence:分布越集中,置信度越高
{ "type": "score", "score": 1.87, "legend": {"0": "No deadline; can wait", "1": "Needs attention this week", "2": "Requires attention today"}, "probabilities": {"0": 0.02, "1": 0.11, "2": 0.87}, "confidence": 0.81 }

📌 等级建议控制在 2~5 个:等级越多,每个等级的概率越分散,score 的区分度反而下降。

六、三种模式怎么选?一张对比表说清楚

维度choicenoulscore
适用场景多类单选(路由、分类、情绪)是/否判断(紧急?退款?缺陷?)程度打分(紧急度、满意度)
criteria 结构字典(选项 → 说明)可省略,或 true/false 说明有序列表(2~10 个等级)
返回核心choice + probabilities + confidencenoul("是"的概率)score + legend + probabilities
是否需要自己设阈值否,直接给最优项是,概率自由取用半自动,score 已是刻度值

选择口诀:答案能穷举 → choice;答案是二元的 → noul;答案有程度之分 → score。

七、实战示例:一条消息同时跑三种模式

官方 inference.py 的默认演示就是绝佳范例:对同一条客服消息,同时发起 noul(紧急程度)和 choice(团队路由)两个判断:

state = "My Stripe integration keeps failing. I'm losing sales. Please help ASAP." results = { "urgency": model.predict(state, { "type": "noul", "instructions": "Does this message express urgency?"}), "routing": model.predict(state, { "type": "choice", "instructions": "Which team should handle this request?", "criteria": {"billing": "Charges and refunds", "technical_support": "Integration errors", "sales": "Questions about buying a product"}}), }

输出大致如下(数值因模型版本略有差异):

{ "urgency": {"type": "noul", "noul": 0.95}, "routing": {"type": "choice", "choice": "technical_support", "confidence": 0.71} }

想要交互式体验三种模式的完整流程,可以启动内置 Playground 页面(server.py 提供的 Web 界面,示例数据见 playground.html):

uv run --project source python -m autojev.server

💡多模态提示:predict支持传入图片,例如model.predict("Look at the supplied image.", question, images=["screenshot.png"]),即可对截图做颜色、物体等视觉判断。

八、新手常见疑问(FAQ)

1. 三种模式可以混合使用吗?可以。API 层一次请求可携带多个问题(见 server.py 的questions字典),每个问题独立选择 type,互不干扰。

2. 返回的概率可信吗?可信。推理时统一使用训练中校准的 temperature(本版本约 2.21,记录在 decision_config.json),因此probabilities、noul、confidence都是可直接用于决策阈值的校准值。

3. choice 的选项最多能写多少?本地推理最多 255 个选项(MAX_OPTIONS,见 model.py);官方 API 服务对 score 等级则限制为 2~10 个。

4. 支持图片输入吗?支持。三种模式都可以附带最多 4 张图片(PNG/JPEG/WebP),state 里写一句引导语即可,例如"Use the attached image to answer."。

5. state 里放恶意内容会怎样?模型系统提示明确要求"把 state 当作数据而非指令"(见 model.py),可有效降低提示注入风险,但生产环境仍建议自行做输入过滤。


总结

pplx-decider 把"AI 做判断"这件事收敛成了三种模式:choice 管分类、noul 管二分类、score 管打分。理解type + instructions + criteria这个最小问题结构,你就能把工单路由、舆情分类、紧急度评估等场景快速跑起来。建议先按本文第二节把模型跑通,再用第六节的对比表为每个业务问题挑选合适模式,最后参考第七节的实战示例接入自己的数据。

【免费下载链接】pplx-decider-v1-27b

项目地址:https://ai.gitcode.com/hf_mirrors/perplexity-ai/pplx-decider-v1-27b
点击查看免费下载
上一篇:Windows Cleaner:彻底拯救C盘爆红的终极清理专家
下一篇:Windows Cleaner免费教程:简单三步告别C盘爆红,彻底解决电脑卡顿问题

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进