探索小型语言模型作为分类器与Jev竞争(分享我的发现)
摘要
作者通过分析高温度下的对数概率和校准,探索使用如Gemma 4等小型语言模型作为分类器,并在GitHub上分享代码与发现。
(我只花了半天时间用Gemini做这个,觉得会是一个有趣的讨论)。嘿,所以关于Jev的所有讨论,我决定构建一个小的Python工具,看看是否能只用一个能在我的机器上运行的小型语言模型(在我的情况下,是Gemma4 e2b)来复制那种功能。我目前有的工具接受状态、问题和候选(分类)参数,并返回模型在候选之间的置信概率。它根据这些参数预填充系统和用户提示的上下文,然后批量比较可能候选的对数概率。这意味着整个过程(在我的机器上)耗时不到1秒,大部分是预填充时间。Gemma 4在回复中过于自信,即使在对数空间中也是如此。在正常温度设置下,它输出的结果概率接近100%。然而,一旦我们将温度提高到非常高的水平(温度=10对我有效),我们得到的结果就类似于不确定性。以下是一个示例查询:状态:'银行余额:$2,000;债务:$20,000;逾期:真' 问题:'我应该再借一笔贷款吗?' 候选:'是','否'(--温度 = 10) 结果是:候选 原始对数概率 概率 否 -0.0000 80.22% 是 -14.0000 19.78% 有趣的是,如果我们添加一个'null'候选,它的排名比'否'更高:候选 原始对数概率 概率 null -0.0815 52.67% 否 -2.5502 41.15% 是 -21.5190 6.17% 然而,有了'null'候选,我们可以使用一种校准(参考:https://arxiv.org/abs/2102.09690,命令行:--calibrate)来减轻基线不确定性(当其中一个候选反映基线不确定性时使用):候选 原始对数概率 校准概率 否 -2.5502 21.6998 60.60% 是 -21.5190 15.4810 32.54% null -0.0815 -0.0815 6.86% 我最大的收获是,这种方法在目前还没有大量调整的情况下,并不会导致现实的结果。然而,有可能提取语言模型的意见,比直接让它们输出或仅使用第一个标记结果更接近置信概率。我还没有直接与Jev比较(我不想花钱,哈哈),但我很好奇它是如何比较的。如果与laya比较,这完全是苹果和橘子的比较,所以我相信这里也是不同的。所以,是的,我对你的想法或额外的途径感兴趣。感谢阅读(至少我手写了这篇帖子)。TL;DR:在少次通过的小型语言模型中,获得类似置信概率的东西是可能的,尽管即使在对数空间中它们也过于自信。但你也可以使用更高的温度来获得更多样化的响应!代码链接:https://github.com/marcintkasper/universal-classifier
相似文章
您可以像使用JEV一样使用任何LLM
本文展示了如何使用任何GGUF模型与llama.cpp进行二元分类任务(如垃圾邮件检测),通过配置参数从logprobs中输出概率。
Jev 不是 LLM 杀手,也不仅仅是一个分类器。我们将其部署于生产环境并与真实用户一起使用。以下是我们学到的经验。
文章分享了使用 Jev(一个语义决策引擎)的生产见解,它通过与 LLMs 并行高效处理常规决策来增强 AI 代理系统,而不替代生成模型。
LLM分类是特征工程
本文讨论了直接使用LLMs作为分类器的局限性,并提出将LLMs输出作为特征应用于传统机器学习模型(如逻辑回归),以实现更好的校准、可解释性和性能。
热门观点:Jev有趣之处不在于它是一个分类器,而在于我们一直将LLM用作极其昂贵的if/else语句
作者认为,Jev及其类似的分类器之所以有趣,并非因为其新颖性,而是因为它们突显了LLM常被用于简单的决策任务,建议采用更高效的架构,使用较小的模型进行路由和评估。
我用700行C代码实现了一个现代大型语言模型
一位开发者创建了一个最小化的700行C实现,用于在CPU上运行Gemma 4 E2B大型语言模型,速度超过llama.cpp。