【免费下载链接】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-27B | pplx-decider-v1-27b |
|---|---|---|
| WinoGrande | 73.10% | 83.30% |
| FinancialPhraseBank | 75.68% | 84.18% |
| RAGTruth | 61.53% | 88.80% |
| BBH | 72.80% | 82.80% |
| TabFact | 78.60% | 90.60% |
| TruthfulQA binary | 82.80% | 85.40% |
| Overall | 74.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 的区分度反而下降。
六、三种模式怎么选?一张对比表说清楚
| 维度 | choice | noul | score |
|---|---|---|---|
| 适用场景 | 多类单选(路由、分类、情绪) | 是/否判断(紧急?退款?缺陷?) | 程度打分(紧急度、满意度) |
| criteria 结构 | 字典(选项 → 说明) | 可省略,或 true/false 说明 | 有序列表(2~10 个等级) |
| 返回核心 | choice + probabilities + confidence | noul("是"的概率) | 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
相关推荐
noul / score / choice 到底选哪个?GEV 三种决策类型的选型对照
noul / score / choice 到底选哪个?GEV 三种决策类型的选型对照 接触过 GEV 26B Decide 的人大概都有过同一个困惑:接口只多
人工智能大模型微调choice/score/noul 三连:Julia-1 决策类型从零到实战的全套教程
choice/score/noul 三连:Julia 1 决策类型从零到实战的全套教程 把"路由"这件事做对,通常不需要一个能写诗的大模型。Supersonic
玩转Laya的3种决策原语:choice、score、noul完整使用指南
玩转Laya的3种决策原语:choice、score、noul完整使用指南 Laya 是一个多语言、非自回归的 System 1 决策引擎 :把问题定义成 3
人工智能NLP强化学习
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考