跳到正文
Hacker News· nico·· 6 天前AI 评分30

用 Jeffy 从自有样本构建分类器(EP.51)[日语]

Building classifiers from your own examples with Jeffy (EP.51) [Japanese]

AI 导读

Jeffy 是一个在本地运行的小型 Python 工具,可用自己标注的正解样本训练专用分类器,本次通过 PyPI 上的 jeffy-classify 0.1.0a9 试用。

正文 · AI 翻译

想把咨询分为“账单”“配送”“登录”时,除了每次向 AI 说明判断标准的方法之外,还有根据自己标注的正解示例,制作该工作专用分类器的方法。就是这样一个用于在手头的上运行此类分类器的小型 Python 工具。

Jeffy 可以使用 2026 年 10 月 3 日发布到 PyPI 的 jeffy-classify 来试用。本次固定的版本是 0.1.0a9。它与名称相似的是不同的项目,如果把它理解为像那样,只要给出选项或判断标准就能当场处理未学习任务的产品,就会误用。官方仓库・本次使用的发布版

本文将介绍从自行制作的虚构英文 36 句学习 3 分类,并用另外保留的 12 句进行确认的步骤。未验证日语分类质量。也没有将公开的性能表用作本次咨询业务中的精度。

Jeffy 拥有按用途划分的正解示例

官方发布中包含银行咨询意图、SMS 垃圾消息判定、新闻话题等 13 种已学习分类器。不过,使用用途由用户指定。并不是那种只替换说明、比如“今天用账单紧急度,明天用合同风险”的方式。官方也说明,不包含未学习的通用分类,或将对象外的工作转交给另一个大型 AI 的功能。支持范围

其机制是使用现有英文模型 BAAI/bge-large-en-v1.5 将文章转换为,再用计算每个分类的值。用自己的数据学习的是这个分类部分。并不是用 36 句从头重建读取文章的整个大型模型。固定版的学习代码

选择场景使用 Jeffy 所需的准备
试用已发布的用途确认该用途的分类器、标签和使用条件
分流到自家窗口准备对应各窗口的文章和正解标签
增加新窗口添加示例进行学习,并用其他句子重新确认
每次传入不同的自由选项不属于本次处理的按用途分类器范围

如果想详细比较与 Jev 或 Jeff 的区别,也可以参考判断模型与执行工具的整理。本次重点不是产品之间的胜负,而是在可以自行管理正解示例的工作中,如何验收分类器。

首先,用日语确定分类边界

教材中设想了面向海外的小型虚构电商客服。以下 3 类作为学习对象,每类准备 12 句英文,共 36 句。未使用真实客户的咨询。教材 ZIP中收录了文章和标签。

标签负责内容例
billing账单金额、收据、支付、退款希望修正重复扣款
delivery配送地址、到达状态、包裹内容已显示送达却没有包裹
account_access登录、密码、认证验证码发到了旧电话号码

接下来,制作不用于学习的验收用句子。本次在每类 3 句、共 9 条明确样本之外,还各加入 1 条包含多个咨询的句子、信息不足的句子、以及关于招聘的咨询,共 12 条。验收侧将后 3 条设为 human_review,但这是人为决定的期望条件,并不是教给模型的第 4 个分类。

例如“请修正重复扣款,并告诉我未送达包裹的位置”这句话同时包含账单和配送。如果是只返回单一分类的机制,即使选择了其中一方,另一方的咨询仍会残留。事先加入这样的例子,可以避免仅因返回值正常就判断自动化已经完成。

学习句和验收句在执行前已固定内容和校验值。没有混入相同文章。不过,两者都是编辑部制作的小型虚构教材。并不代表现实客户的措辞、分布、错字和长度的独立数据集。

首次准备,以及不通信的教材检查

Jeffy 本体本次的发布文件约为 1.61MB,但推理需要另一个模型。本次获取的文章模型权重约为 1.34GB。最好不要认为“因为是小型的 Python 包,所以下载也只需几 MB”。官方给出的所需内存参考约为 2GB,但设备上的余量和处理时间需要另行确认。模型发布与条件

展开教材,首先只执行以下内容。这是使用 Python 标准库进行的教材检查,不会安装 Jeffy,也不会获取模型。

检查学习 36 条、验收 12 条的数量、ID、输入校验值,以及文章完全一致是否混入。这个 PASS 表示教材格式齐备,并不是分类精度的评估。想不看结果只确认步骤的人,到这里也可以阅读教材。

如果要尝试实际学习,请按照 README 的步骤创建专用虚拟环境,安装固定版本的 Jeffy 和依赖库,并获取官方模型。这个准备阶段需要外部通信和磁盘容量。不使用付费 API 合约或 API 密钥。获取模型后,如下指定新的输出文件夹。

教材脚本在学习、推理时不使用外部连接,而是使用现有的本地权重。官方学习函数没有指定模型版本的参数,因此教材中只将引用目标切换为已固定的本地模型。没有随意更改分类器的学习方法或权重。重新执行时指定另一个输出文件夹,不会覆盖之前的结果。

未用于学习的 12 条结果

2026年10月4日07:14 JST,在 Apple M2 Ultra、内存192GiB、macOS 27.0 环境下,将 CPU 指定为 4 线程执行。使用 Python 3.12.10 的专用环境,模型获取后在 OS 侧也拒绝网络连接。训练 1 次,验收句的推理也各 1 次。没有在看到结果后调整文章或设置再重新执行。

明确的 9 件,与人事先决定的分类 9 件全部一致。不过,这些是与训练文相近的改写。这是“学习了请款的例子后,能够区分相似的请款句子”这一小测验的结果,并不意味着在实际业务中 100% 正确。

另一方面,需要人工确认的 3 件,返回了如下任一分类。

验收句的内容人的预期实际分类confidence
同时咨询重复请款和未送达的货物人工确认多个事项delivery0.5900
订单有什么问题,但详情不明人工询问详情delivery0.5506
想应聘设计师招聘人工确认为对象外billing0.4416

后半 3 件并未表明已具备退回人工的机制。无法给出所学 3 个分类之外的答案,连招聘咨询都被分配到了请款。有必要将模型能够阅读文章,与作为工作能否采用其返回值分开考虑。未修正的全部输出和汇总已随教材一同附带。

本次训练使用了官方的 train_classifier,并设为 C=0.01。验收句从一开始就在单独文件中,因此禁用了训练函数内的再分割和内部评估,将训练 36 件与验收 12 件分开。没有把命中训练文的成绩计为对未知文章的精度。

confidence 不是可以放心交给该文章的概率

Jeffy 本次训练好的对象返回的 confidence 是分类器输出概率的最大值。可以读出 3 个中强烈选择了哪一个,但仅凭该值并不能说“现实中也会以该比例正确”。官方也记载概率未经校准。返回值的实现

例如,招聘咨询对本次分类器来说也是从 3 个中选择一个的输入。仅凭标签列表,没有余地表达它不适合请款、配送、登录中的任何一个。即使要构建仅在值低时退回人工的机制,也需要在实际业务数据中调查边界。本文未设置自动处理的阈值。

要调查的话,需要充分增加验收句,查看每个概率区间有多少错误。包括混合请求和对象外请求,分别统计能够分类的件数和应重新人工阅读的件数。不能根据本次的少数例子制定全公司通用的阈值。

也不能将该数值与 Jev 或 Jeff 返回的同名值直接互换。即使 API 的字段名相同,只要计算方法、训练数据、选项不同,相同数值的含义就不会一致。比较时,要从准备相同的输入和判定标准开始。

区分代码的 MIT 与已分发分类器的条件

Jeffy 的代码和本次使用的英语文章模型是。另一方面,附带的 13 种分类器分别从不同的公开数据训练而来。不能仅看代码的许可证,就判断所有分类器都能以相同条件用于任何用途。代码的 LICENSE・出处与使用条件的记录

官方详细记录中,并列着有显示和继承条件的、有学术・研究用途表述的、明示许可证不明的。也有项目将原始数据的条件如何适用于所分发的数值参数列为未解决。不要仅凭 README 的简短表格一概判定能否商用,需要按所使用的分类器逐一回溯出处。

本次未加载附带的分类器,而是仅用编辑部制作的虚构英语创建了新的分类器。教材中也没有附带第三方的分类器或权重。在自己公司试用时,请确认准备文章的权限、所含信息、标签定义,并保留所使用数据的版本。

Jeffy 的共享模型面向英语。能够输入日语,与能够以业务上足够质量分类日语的含义是两回事。首先在海外英语咨询等对象明确的工作中,测量制作示例的工夫和人工修正的工夫。增加少量正确答案示例后即使得到好结果,也要保留未使用的验收句进行确认。这一顺序将成为选择该工具的判断材料。

来源:Hacker News · hukuhuku.co.jp