每次有人跟我说「我们用大模型做意图识别」,我脑子里都会跳出同一句话:你拿高射炮打蚊子,还打不准。
分类、路由、打标这类活儿,输入短、输出短、判定标准还写死在业务里。它要的不是文采,是每次都给同一个答案。而大模型天生不是这么长的——同一个请求发两遍,它可能给你两种说法,温度调到 0 也只是好一点。
所以看到 GLiNER2.5-Decide 的时候,我第一反应是:终于有人认真做这件事了。
它是什么
一句话:340M 参数的编码器(encoder)模型,专门做决策,不做生成。
你给它一组自己定义的、带类型的问题和规则,它把这些问题的答案一起解码出来,返回结构化的决策结果,同时给出概率分布和置信度。
这一点比参数量重要得多。生成模型给你一段话,你还得写正则去抠;它直接给你一个可判定的结构,外加一个「我有多确定」。业务代码要的正是后者。
它是怎么做的
架构是 encoder 而不是 decoder,这个选择决定了后面所有好处:
- 判定任务的计算量跟输出长度无关——答案再长也不用一个 token 一个 token 往外吐;
- 概率是模型内部的直接产物,不是采样出来的;
- 单次推理延迟是毫秒级,而且稳定,不像大模型那样被上下文长度拖得忽快忽慢。
成绩单要怎么看
官方给的数字是这样的。在一套叫 Fast Decisions 的评测集上(17 个数据集,覆盖路由、分流、分类、情感、内容理解),平均分:
- GLiNER2.5-Decide:60.1%
- JevK5:57.5%
- SemIf:56.4%
- Laya:46.6%
17 个数据集里它 9 个领先。
我知道有人要说了:60.1% 也好意思拿出来讲?说这话之前先看清一件事——17 个数据集平均 60% 出头,说明这类判定任务本身就不简单,也说明这个领域离做满还远。参考基线里最强的也就 57.5%,它拉开的差距是真的。
但更重要的结论在另一头:别指望它单打独斗。60% 的准确率直接放进生产环境是要出事的。它真正好用的位置不在这儿。
为什么「小」在这里是优点
340M 意味着几件事,这是我觉得最有意思的部分:
- 消费级 CPU 就能跑,不用排队等显卡;
- 可以完全离线,气隙环境里也能跑;
- 数据不出机器。这一条在合规敏感的行业里,价值比准确率高几个点大得多。
而且 encoder 结构好微调。拿自己的标注数据微一遍,它在你那个具体场景上的表现,往往比通用榜单上的排名更有意义。权重是 Apache 2.0 许可,已经放到 HuggingFace 上了,商用没有额外门槛。
我会怎么用它
我的方案是分层:粗筛交给它,兜底交给大模型。
- 高频、边界清晰的那部分请求(比如「这句话是在问价格还是在报错」),直接由它判定,带置信度;
- 置信度高的走快路径,不进大模型;
- 置信度低的、以及它判不了的,才升级给大模型,顺便把这些样本攒成微调数据。
这么做的结果不是准确率变高,而是成本曲线变了——原来每一单都要付大模型的价,现在大部分单子在小模型这里就结束了。它返回置信度这件事本身就是路由依据,这一点特别省心。
官方给的定位也基本在这个方向:工具调用、模型路由、浏览器和电脑操作的元素判定、以及当裁判之前的预筛。这几件事有个共同点——都要跑很多次、都要求一致、都不需要创造力。
一句话结论
如果你还在用几 B 到几十 B 的模型做分类和路由,值得花一个下午试试这个方向。别把它当替代品,把它当漏斗的第一层。
它官方还提供了托管的推理接口,不想自己搭环境可以直接调。不过我建议先本地跑一遍——340M 这个体积,装起来花不了多少时间,跑完你对「小模型到底能干什么」的直觉会变。