用 Jev 和 OpenAI Decisions API 分类邮件:40 个模型在邮件安全任务上的对比测试
Classifying Emails with Jev and the OpenAI Decisions API
Abnormal 用 1,985 封非公开合成邮件测试了 TypeSafe 的 Jev、OpenAI Decisions API、34 个自托管开源决策模型和 4 种前沿 LLM 配置共 40 个模型。
Abnormal 每周对数十亿封电子邮件进行分类,在本文中,我们使用自己非公开的电子邮件安全数据,测试决策模型在面对近期炒作时的表现。
我们的生产模型基于行为,从发件人历史、身份验证和组织目录等信号中学习每个发件人、收件人和组织的正常模式。判断该请求在此发件人与收件人之间是否合理,需要理解文本本身并了解企业通常如何运作,例如供应商是否真的会在发票往来中途更改银行信息。仅基于工程特征的模型只能看到提供给它的信号。LLM 已从预训练中学习了语言和那种日常商业知识,因此它可以像分析师一样阅读请求,并以相同的行为信号作为上下文
决策模型(通常)在一次前向传递中读取电子邮件和每个问题,并返回每个选项的概率,而不生成任何 token,因此一次回答的成本大约等于读取输入的成本。我们认为,这使得 LLM 级别的判断足够便宜和快速,可以在正确的预过滤器之后以更大规模部署。每个问题也用通俗语言编写,因此新的检测器可以零样本启动,作为一个书面问题,而不是要构建的特征和要重新训练的模型。
我们测试了 TypeSafe 的 Jev、OpenAI Decisions API、我们自行托管的 34 个开放决策模型,以及四种前沿 LLM 配置(总共 40 个模型)1,然后我们自己微调了一个小型开放模型。
该数据集包含 1,985 封非公开、完全合成的电子邮件,不含客户数据,模仿我们在生产中看到的困难案例(攻击以及看起来像攻击的棘手误报)。我们没有提示模型编写钓鱼邮件,而是生成每一封邮件以匹配真实困难案例的类别、攻击类型和检测信号,而不复用其标识符。
每个模型都收到同一封电子邮件,呈现为电子邮件安全系统提取的字段,并在一个请求中回答三个问题:它是否是攻击(是或否),它是什么类型的邮件(攻击、垃圾邮件、灰色邮件或安全),以及对于攻击,是哪种类型(钓鱼、BEC、诈骗、恶意软件或侦察)。决策模型原生读取记录,而 LLM 将其作为 JSON 获取,并且必须在严格模式(schema)下为每个选项返回概率。
为了用一个数字对模型进行排名,我们使用电子邮件分数,定义为 100 × 判定宏 F1、攻击类型宏 F1 和 95% 精度下攻击召回率的平均值。这些术语对应检测系统所做的三项工作(对邮件进行分类、命名攻击,以及在保持误报罕见的同时捕获攻击)。宏 F1 对恶意软件等稀有类别与常见类别同等计数,而相等权重意味着没有模型仅凭一项工作出色就能获得高分2。
在成本与复合邮件评分的对比上,更大的模型通常得分更高,前沿 LLM 领先。不过这些收益很少具有成本效益,因为曲线上每上升一步,成本都远高于前一步。Jev 和 OpenAI Decisions API 都位于帕累托前沿,在各自价位上得分远高于开源模型3。
在邮件安全中,复合评分并不能决定一个模型是否可用。当模型把一封邮件判定为攻击时,我们会将其从收件箱中移除,因此每一个误报都是一封客户永远看不到的、合法且往往重要的邮件。精确率是约束,召回率是目标,所以我们查看每个模型的精确率-召回率曲线,读出它在 99% 精确率下能捕获多少攻击。
在成本对比下,99% 精确率下的召回率将前沿压缩到少数几个模型。该领域大多数模型,包括我们自行托管的所有开源模型,只能捕获一小部分攻击,而 Jev 仅凭价格就留在前沿上。OpenAI Decisions API 表现突出,以极低的成本和延迟捕获了 luna-6-max 的大部分能力。最具启发性的落选者是 luna-6-low,即同一个 luna-6 模型以 LLM 方式提示。它在平均精确率上与 Decisions API 相当,但在 99% 精确率下远远落后,因为无阈值指标掩盖了你实际运行的那部分曲线。
安全系统通常基于概率而非仅标签来行动。高于某个阈值,邮件会被自动修复;中间区间进入人工审核;低于该区间的则正常投递。这些阈值必须在不同租户和模型升级之间保持含义一致,而概率也是让一个检测器的输出能与其他检测器结合、或与漏检成本相权衡的基础。所有这些只有在标称的 0.9 确实意味着约 90% 的此类邮件真的是攻击时才成立。
决策 API 的校准表现名列前茅,其中 Jev 是我们测试过的所有模型中校准最好的。前沿 LLM 处于中游,即使提示词直接要求它们给出诚实、校准的概率。小型开源决策模型表现最差,base kev-4b 就在其中,因此校准取决于模型而非接口。
作为实验,我们在多种邮件和非邮件分类任务上微调了 kev-4b,这是一次单轮 LoRA 运行,覆盖 6 万个样本,在 L40S GPU 上花费约 200 美元。训练数据在邮件或任务格式上均与本基准无重叠,因为基准的合成邮件从未被训练过,且其文本编码和问题措辞与我们的不同4。
微调打破了帕累托前沿,将 99% 精度下的召回率从 7% 提升到 66%,高于我们测试过的任何价位的任何模型5。校准也随之改善,从该领域最差的之一变为最好的之一。
在同一次运行中,攻击类型宏 F1 从 68 降至 37,尽管攻击检测率跃升,且该模型现在将大多数 BEC 和侦察邮件标记为诈骗。我们的训练混合覆盖了四类判定,但从未覆盖攻击类型,因此我们怀疑微调强化了它所训练的问题,并削弱了它未训练的问题。
训练和评估忽略了在我们的规模上在线服务一个模型所需的条件,这归结为它能在哪里运行、实际成本是多少,以及 GPU 是否存在。
数据驻留。 欧盟邮件需要在欧盟境内处理。API 只有在能够在那里提供服务时才有效,而自托管集群必须存在于我们运营的每个区域,而不仅仅是 GPU 最便宜的地方。
实际服务成本。 成本图表假设每个 GPU 始终处于忙碌状态。根据 kev-4b 在我们的测试框架中测得的吞吐量,按按需 GPU 费率定价,即使没有空闲时间,其服务成本也高于图表所示。邮件遵循工作日规律,峰值需要余量,因此实际利用率更低,成本更高。
GPU 供应。 在我们的业务量下,对每封邮件运行一个 4B 模型需要一支 GPU 集群,即使有预算也很难获得。
如今,我们在线技术栈中的等效检测成本约为每千封邮件一美分,运行在 CPU 和 GPU 加速器的混合架构上6。决策模型将 LLM 级判断从每千封邮件数美元降至数美分,从数秒降至数毫秒,这使得预过滤器发送给它们的那部分流量可以承受,但并非每封邮件都可以。
我们预计在这种规模下,正确的架构是模型大小和类型的精心组合:廉价模型处理所有内容,决策模型置于预过滤器之后,前沿 LLM 处理少数需要真正推理的邮件,以及让系统自我改进的反馈循环。
如果你想帮助构建它,我们正在招聘。
我们测试了 40 个模型;图表展示了 18 个最广泛使用和表现最好的模型。所有开源模型在这些评估中均为自托管,并使用其各自的参考推理代码评分,运行在一块 L40S 上,或者对于最大的三个,运行在八块 A100 上。
决策 API: jev-1.13(TypeSafe)、luna-6 decisions(OpenAI Decisions API)。
前沿 LLM: sonnet-5.5 和 luna-6,各自在低和最大推理努力下。sonnet-5.5-max(邮件得分 88.3,每千封邮件 52 美元)未列入图表。我们在 haiku-5.5 发布之前撰写了这篇文章,并计划以相同方式评估它。
图表中的开源决策模型: kev-0.8b、kev-4b、kev-9b、kev-27b、jpt-0-8b、jpt-4b、jpt-9b、jpt-35b-a3b、clef、clef-flash、julia-1、laya、strands-decider-2b。
未列入图表的开源决策模型: bosun-0-6b、bosun-1-7b、clm-v0-1-8b、decider-2b、decider-4b、gliner-decide、hopper-g-1-2、intern-decision-0-8b、intern-decision-2b、intern-decision-4b、jet-v6-2、lavoir、lfm350-rlcd、lfm2600-rlcd、metask-jev-4b、neohorse-jev-4b、nimble-v2、pngwn-scorer-v2b、tev1-0-8b、this-that-1-2、winnow-12b-bf16。
所有指标都在 80% 的测试划分上测量,精确率阈值也在同一划分上选取。剩余的 20% 被留出,用于检验预先选定的阈值表现如何(注 5)。
API 模型按其使用的 token 以标价计费。自托管决策模型只做 prefill,因此按输入 token 计费,采用典型托管费率并按模型规模缩放。Inference 中测得的服务成本是我们测试框架在按需 GPU 价格下的吞吐量。两者都应视为粗略估计,因为空闲容量会推高实际成本,而服务优化和承诺使用折扣会拉低实际成本。
在 kev-4b 上使用 r256 LoRA,训练一个 epoch(7,500 步),检查点根据 dev 划分上的 Brier 分数选取。在我们的内部评估集上,它对于比训练数据更新的标签,以及重新编码为 YAML、Markdown 或原始 HTML 的邮件,同样表现良好。
我们让比较保持简单,但 95% 区间重叠,因此需要更多数据才能有把握地断定这一差距。在 99% 精确率下的召回率为:微调模型 65.5% [49.8, 80.2],sonnet-5.5-max 为 49.9% [45.5, 83.2](对 637 个测试攻击进行 bootstrap)。若阈值改在留出划分而非测试集上选取,微调模型仍能在 67.7% 召回率下保持 98.6% 精确率。精确率的计算还假设所有邮件中有一半是攻击(该集合本身为 40%),远高于生产环境中的比例,因此这些数字应作为相对值来解读。
我们实时评分路径中 ML 模型的云成本(CPU 和 GPU),除以同一近期窗口内它们评分的邮件数。它不包括流水线的其余部分(摄取、解析、存储、门户)以及离线训练,而基于 LLM 的系统也同样需要这些。
来源:Hacker News · builders.abnormal.ai