ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Jev 置信度与三档路由:阈值标定、Noul 无 confidence 与跨原语禁忌

Jev 置信度与三档路由:阈值标定、Noul 无 confidence 与跨原语禁忌 TypeSafe AI 的 JevSystem One给出的是结构化决策加概率不是散文。上线时真正决定「自动过 / 进复核 / 找人」的往往是置信度与阈值而不是 argmax 那一个标签。本文按官方三原语差异把 Choice/Score 的confidence、Noul 的noul、标注集标定、跨原语禁忌和影子模式写清楚并落到职场工单与内容审核。接口以 How to use、三原语教程、Reference 为准文中伪代码为教学示意。公开速度/限流数字来自厂商页面标为公开声称、非本号实测。1. 背景argmax 过了业务仍不敢自动工单分流、内容初筛、Agent 工具门控常见做法是调一次分类模型取概率最高的标签直接写队列。线上问题往往不是「标签错得离谱」而是下面三类最高标签看起来合理但分布很平。例如 Choice 三个部门各自约 0.33argmax 仍会给出一个部门业务侧却不该自动入队。不同问题形态混用同一套阈值。有人把「Noul ≥ 0.8 才升级」抄到 Choice 的confidence ≥ 0.8或反过来标定集一换误报率跳变。只盯点估计不看全分布。Score 落在「中」档期望值附近却把相邻档概率忽略复核队列要么挤爆要么漏掉真正危险的长尾。Jev 的定位是 System One对state 类型化questions返回结构化结果与概率不生成长文理由。单端点例如POST https://api.typesafe.ai/v1/systemoneAuthorization: Bearer $TYPESAFE_API_KEYmodel可用jev-latest或钉版本如jev-1.13.0。阈值依赖行为时建议钉死版本否则「昨天标定的 0.72」今天可能对不上同一语义边界。职场侧真正要落地的不是「会不会调 API」而是哪类题目看哪个字段、阈值怎么从标注集来、自动/复核/人工三档如何接线。下面按问题 → 原理 → 可跟做 → 坑点 → 小结展开。2. 原理三原语各看什么字段2.1 先分清Noul 没有 confidence官方三原语对照可简化为类型问什么关键返回路由时优先用Noul命题是否成立noul∈ [0,1]只用noul无 confidence 字段Choice多选一choice、probabilities、confidence看 choice 全分布 confidenceScore落在哪档score、legend、probabilities、confidence看档位 全分布 confidence期望值可做阈值勿当连续度量乱算术要点与 learnjev / TypeSafe 公开说明一致Noul 的 0.5 表示无知ignorance不是「中等强度成立」。需要光谱强度时用 Score不要把 Noul 当五点量表。Choice 选项建议含other/none一类出口否则概率质量会被硬塞进「最不离谱」的选项argmax 看起来很自信实则是被迫选择。Score 档位数通常 2–10可对期望值设阈值但不要把例如 1.6 当成可加减的连续物理量。同一语义用 Noul 与 yes/no Choice 结果可以相反一对互补 Noul 之和也不必为 1官方所说 jaggedness。路由层不要假设「互补概率之和恒为 1」。因此跨原语搬阈值是禁忌。「紧急升级 Noul ≥ 0.85」不能直接写成「部门 Choice confidence ≥ 0.85」标定集、误差代价、字段语义都不同。2.2 confidence 与分布至少两层信息对 Choice / Score常见返回里同时有离散决策选中的 choice或 score 档位probabilities各选项/各档的概率质量confidence对该次判断的置信度标量具体定义以当前 API 文档为准。路由时至少区分两层决策层最终写入业务状态的标签是什么argmax 或规则改写后的标签。把握层这次判断有多「敢自动」。把握层可以主要看confidence但必须辅以全分布若 top1 与 top2 接近即使 confidence 不低也应倾向复核。Noul没有confidence。路由只能基于noul本身以及你对命题措辞、互补题、领域漂移的工程约定。例如「是否需 15 分钟内升级」用 Noul若业务要「紧急程度光谱」改用 Score再谈 confidence。2.3 三档路由的业务语义把把握映射成动作职场里常用三档名称可换语义建议固定档典型含义动作hi自动执行成本可接受auto写队列 / 关单规则 / 放行mid可错但代价中等review进人工复核或二次规则low错了代价高或信息不足human强制人审 / 阻断自动阈值不是魔法常数而是在钉死模型版本 固定题面 固定 state 拼装规则之后用标注集标定出来的分位或代价最优切点。换题面、换领域语料、换jev-latest浮动版本都应重标或至少跑影子对比。3. 可跟做从请求到三档动作3.1 请求形态示意下面演示「同一 state 上并行部门 Choice 紧急 Noul 情绪 Score」。多题同请求可共享 state 成本公开说明statequestions 合计约 64k tokens 量级单题路径约 32k限流约 250k tokens/s、1200 req/min——均为厂商公开声称非本号实测。usage.output_tokens上报但不计费的说法亦来自公开页接入前以账单文档为准。# 教学示意字段名以官方 SDK / OpenAPI 为准importosimportrequests APIhttps://api.typesafe.ai/v1/systemoneHEADERS{Authorization:fBearer{os.environ[TYPESAFE_API_KEY]},Content-Type:application/json,}payload{model:jev-1.13.0,# 阈值依赖行为时钉版本state:{ticket_id:T-10086,title:线上支付回调偶发超时,body:……工单正文……,customer_tier:enterprise,},questions:[{id:dept,type:choice,prompt:该工单应归属哪个处理组,options:[payments,infra,product,other],},{id:escalate,type:noul,prompt:该工单需要在 15 分钟内升级到 on-call。,},{id:tone,type:score,prompt:客户语气激烈程度,levels:5,# 具体字段以文档为准},],}resprequests.post(API,headersHEADERS,jsonpayload,timeout60)resp.raise_for_status()dataresp.json()解析时按id拆开三种结果不要把 Noul 结果塞进「假的 confidence」字段自己造。3.2 路由伪代码hi / mid / low → auto / review / human核心原则Choice / Score用confidence全分布特征如 margin p_top1 − p_top2Noul只用noul以及你为互补题、领域定制的附加规则多题时按最严动作聚合任一题human则整体human或按业务优先级表聚合。fromdataclassesimportdataclassfromtypingimportAny,Dict,Literal,Tuple RouteLiteral[auto,review,human]BandLiteral[hi,mid,low]dataclass(frozenTrue)classThresholds:# Choice / Score按标注集标定禁止从 Noul 抄过来choice_hi:float0.82choice_mid:float0.55choice_min_margin:float0.12# top1-top2 过小 → 降档score_hi:float0.80score_mid:float0.50score_min_margin:float0.10# Noul单独标定noul_hi:float0.85noul_mid:float0.55defband_from_confidence(confidence:float,hi:float,mid:float)-Band:ifconfidencehi:returnhiifconfidencemid:returnmidreturnlowdefband_from_noul(noul:float,thr:Thresholds)-Band:# Noul 无 confidence0.5 ≈ 无知区路由上常并入 mid/low 策略ifnoulthr.noul_hi:returnhiifnoulthr.noul_mid:returnmidreturnlowdefdistribution_margin(probs:Dict[str,float])-float:valssorted(probs.values(),reverseTrue)iflen(vals)2:return1.0returnvals[0]-vals[1]defdowngrade(band:Band)-Band:return{hi:mid,mid:low,low:low}[band]defband_to_route(band:Band)-Route:return{hi:auto,mid:review,low:human}[band]defroute_choice(result:Dict[str,Any],thr:Thresholds)-Tuple[Route,dict]:conffloat(result[confidence])probs{k:float(v)fork,vinresult[probabilities].items()}bandband_from_confidence(conf,thr.choice_hi,thr.choice_mid)margindistribution_margin(probs)ifmarginthr.choice_min_margin:banddowngrade(band)# 出口选项选中 other/none 时即使 confidence 高也倾向复核ifresult.get(choice)in{other,none}andbandhi:bandmidreturnband_to_route(band),{band:band,choice:result.get(choice),confidence:conf,margin:margin,probs:probs,}defroute_score(result:Dict[str,Any],thr:Thresholds)-Tuple[Route,dict]:conffloat(result[confidence])probs{k:float(v)fork,vinresult[probabilities].items()}bandband_from_confidence(conf,thr.score_hi,thr.score_mid)ifdistribution_margin(probs)thr.score_min_margin:banddowngrade(band)returnband_to_route(band),{band:band,score:result.get(score),confidence:conf,probs:probs,}defroute_noul(result:Dict[str,Any],thr:Thresholds)-Tuple[Route,dict]:noulfloat(result[noul])bandband_from_noul(noul,thr)returnband_to_route(band),{band:band,noul:noul}ROUTE_RANK{auto:0,review:1,human:2}defaggregate_routes(routes:Dict[str,Route])-Route:# 最严聚合任一 human → humanreturnmax(routes.values(),keylambdar:ROUTE_RANK[r])defdecide(ticket_results:Dict[str,Dict[str,Any]],thr:Thresholds)-dict:routes{}details{}r,droute_choice(ticket_results[dept],thr)routes[dept],details[dept]r,d r,droute_noul(ticket_results[escalate],thr)routes[escalate],details[escalate]r,d r,droute_score(ticket_results[tone],thr)routes[tone],details[tone]r,d finalaggregate_routes(routes)return{final_route:final,per_question:routes,details:details}说明Thresholds里 Choice/Score 与 Noul 分字段存放从命名上杜绝「抄阈值」。margin 降档逼平分布时argmax 仍存在但业务不应auto。other/none出口选中出口不等于「模型失败」它表示题面选项没盖住默认进review比硬塞部门更安全。Noul 靠近 0.5按上表会落入 mid/low若业务把「无知」视为高风险可把0.4–0.6显式映射为human那是额外规则仍不是 confidence。3.3 标注集如何标定阈值目标在钉死model、题面、state 模板后用有标签样本估计阈值使自动档精确率与人工档召回/成本落在可接受区间。建议最小流程抽样按真实流量分层部门比例、紧急比例、客诉语气分布避免只标「好写的短单」。双盲标签业务专家标「正确部门 / 是否应升级 / 语气档」同时标「若系统自动错了代价档」低/中/高供代价加权切点。离线打分同一批样本用钉死版本跑 Jev落盘 choice、probabilities、confidence、noul、score。画曲线不要拍脑袋Choice以 confidence或 confidence×margin为横轴看 auto 精确率、review 占比、human 占比Noul以 noul 为横轴单独画禁止把 Choice 的横轴刻度贴到 Noul 图上读同一数字Score可对期望值或对 conf 分别画选与业务动作更对齐的那条。选切点例如要求「auto 精确率 ≥ 95%」时取满足条件的最小 hi 阈值mid 切点用「review 队列日容量」约束。容量不够就提高 mid→human 比例而不是偷偷降低精确率口径。版本与题面变更触发重标任何 prompt 措辞微调、options 增删、state 字段增减都视为新分布。伪代码离线选 hidefpick_hi_threshold(rows,target_precision0.95): rows: [{confidence, correct: bool}, ...] 已是 Choice/Score 子集 返回满足 auto 精确率的最小 confidence 切点找不到则返回 None candsorted({round(r[confidence],3)forrinrows},reverseTrue)fortinsorted(cand):auto[rforrinrowsifr[confidence]t]ifnotauto:continueprecsum(1forrinautoifr[correct])/len(auto)ifprectarget_precision:returntreturnNoneNoul 标定把confidence换成noul另存noul_hi/noul_mid。不要把pick_hi_threshold的返回值赋给 Noul。3.4 影子模式先对比再切流上线前用影子模式生产仍走旧规则Jev 路由结果只落日志对比与旧系统标签一致率若按新路由auto集合中的历史差错率用事后工单回访/质检标签review/human预估队列长度 vs 人力编制版本钉死前后、prompt 微调前后的分布漂移confidence / noul 直方图。切流建议灰度先只对低代价队列开auto例如内部知识库纠错高代价对外退款、权限开通、合规相关保持human或双人复核直到影子窗口稳定。3.5 职场落点工单与审核工单分流部门Choice含other→ 写处理组auto才自动入队review进分诊台human给值班长。升级Noul「需 15 分钟内升级」→只看 noul高 noul 且最终路由允许时触发 on-callnoul 在无知区不要「半自动升级」。语气Score → 决定是否附加安抚话术模板或提高复核优先级勿用 Score 档位做加减分游戏。内容 / 物料初筛「是否含敏感宣称」用 Noul「风险档」用 Score「归属栏目」用 Choice。广告法、医疗、金融等高代价域默认提高 mid/low 占比或强制human不要用「平均 confidence 看起来还行」一刀切自动过。Agent 工具门控与生成层分工工具调用前用 Choice/Noul 做风险门低把握则拒绝自动调用改为询问人或降级只读工具。长文生成、需要可审计推理链的合规叙事仍不适合交给 System One 单独完成Jev 管判断与路由LLM 管生成详见同系列「级联架构」文。4. 坑点、限制与对照4.1 跨原语搬阈值最高频工程事故症状线上把「紧急 Noul≥0.8」同步改成「所有题 confidence≥0.8」。结果要么自动率暴跌要么某类 Choice 误自动。对照做法是否可行Noul 与 Choice 各自用标注集标定可行同一题面、同一版本内微调百分位切点可行把 Noul 阈值数字复制到 Choice.confidence禁止假设互补 Noul 之和为 1用 1−p 当另一题不可靠jaggedness用 yes/no Choice 替代 Noul 却沿用旧 noul 阈值禁止语义不等价4.2 只看 argmax / 只看 confidence平峰分布top1≈top2argmax 稳定「有答案」业务上应降档。出口选项argmaxother时confidence 高只说明「很像其它」不等于找到了正确组。Score期望值落在档缝附近时看相邻档概率不要对 1.6 做「再加 0.3」这类连续算术当业务分。4.3 Noul 的 0.5 被当成「中等紧急」这是产品语义坑。0.5 更接近「系统说不清楚」路由上应偏保守review/human而不是「中等优先」。要中等光谱改 Score。4.4 上下文与版本statequestions 有合计 token 上限量级公开约 64k超长工单附件不要整锅塞 state先截断/摘要/结构化字段。jev-latest方便试用阈值依赖生产请钉jev-x.y.z并在配置中心记录标定日期与样本 commit。中文职场语料、内部黑话会导致领域漂移影子直方图一歪先查 state 拼装与题面再怀疑阈值数字。4.5 隐私与评测链若把 Jev 接到评测或第三方平台注意数据保留策略。公开资料提到部分评测路径当前无 ZDR评估数据可能被 provider 保留——接入前读最新合规说明敏感工单脱敏后再出域。4.6 和「LLM 自己报置信度」的差别让大模型在 JSON 里输出confidence: 0.9是另一套机制受提示词、解码、讨好性影响大且常与真实错误率校准不良。Jev 把概率放进原语返回仍需你自己的标注集标定它不是免标定的真理表但字段语义比「模型口头自信」更适合做路由输入。5. 小结Choice/Score 看 confidence 全分布Noul 只看 noul没有 confidence 可抄。三档 hi/mid/low → auto/review/human要用钉版本 标注集标定容量与代价共同决定切点。禁止跨原语搬阈值禁止把 Noul 0.5 当中档禁止只看 argmax。影子模式对比一致率、差错率与队列长度后再切流高代价动作默认偏 human。职场工单/审核部门 Choice、升级 Noul、语气 Score 并行按最严或优先级表聚合路由。同系列可继续看三原语语义深挖、API 首调、以及「代码 → Jev → LLM → 人」级联避免把生成问题硬塞进 System One。
返回列表