好文集ChatGPT Plus¥119

有人把 Jev 开源复刻了,还给出了「自己微调」的完整闭环

作者:Jared Palmer(Cognition;此前在 Vercel,Formik 与 Turborepo 的作者)

一句话:Kev 是一族可以自己训练、自己部署的 Jev 式决策模型,7,547 星,Apache-2.0。

最值得注意的是:它跟 Jev 正面对比,而且作者自己说清了哪些地方比不上。

一、它是什么

Kev 是建在 Qwen3.5 / Qwen3.8 之上的一族小型决策模型,架构依据是《Jev's Architecture Unmasked》这篇文章所述的设计。

API 与 TypeSafe 的 System One 对齐——意味着你可以把 TypeSafe 的 Python SDK 直接指向本地的 Kev 服务器,不用改代码。

作者列的几个要点:

· 一次请求里同时问是否(noul)、多选(choice)和评分(score)。这些问题共享文本,但彼此读不到对方

· 默认带校准的概率:每个 checkpoint 都附带一个在留出数据上拟合出来的温度

· 四个尺寸:从能在笔记本上跑的 0.8B,到单张数据中心 GPU 的 27B

· 可以在自己的标注样本上微调

· 一条命令部署自己的 HTTPS 端点,空闲时缩容到零

二、四个模型与 Jev 的对比

这是全文最有价值的一张表。每个格子是「开发集 / 测试集」的准确率:

模型 基座 新数据源准确率 已训数据源准确率

Kev-0.8B Qwen3.5-0.8B-Base 0.648 / 0.697 0.827 / 0.838

Kev-4B Qwen3.5-4B-Base 0.817 / 0.838 0.873 / 0.865

Kev-9B Qwen3.5-9B-Base 0.822 / 0.852 0.872 / 0.874

Kev-27B Qwen3.8-27B(后训练) 0.848 / 0.896 0.866 / 0.870

Jev 托管 0.857 / – 0.845 / –

「新数据源」是指 Kev 训练时从未见过的数据集和策略规则——作者说这是「这里最接近你自己问题的那种设置」。

「已训数据源」是指来自训练数据集的留出样本。

关于方法论,有三点是作者主动交代的:

我们用开发集挑 checkpoint,每个发布模型只读一次测试集。Jev 只在开发集上跑过。

Brier 分数评估的是整个概率分布,不只是最高分那个答案;越低越好。

以及最关键的那段自我限制:

在「新数据源」上,Kev-27B 与 Jev 相差一个点以内(0.848 对 0.857),Kev-4B 和 Kev-9B 相差四个点以内。

我们不知道 Jev 是用什么训练的,所以这不是两个架构之间的受控比较。

最后那句很重要——他们没有把「追平 Jev」说成一个已经证明的结论。

三、微调闭环:这才是我认为最有价值的部分

Kev 给了一条完整的「在你自己的数据上微调」的路径,而且是用 coding agent 跑的。

三步

第一步:装 skill

npx skills add jaredpalmer/kev@kev-finetune

第二步:跟你的 agent 说一句话

「帮我在我的客服工单上微调 Kev」

第三步:它自己做完全部

那个 skill 会做的事,作者列得很具体:

它会采访你,找到你代码里已经在问 Jev 或 TypeSafe 的那些问题,把你已有的标签转换过来(或者用任何 LLM 生成足够多的数据来测出增益),在 Modal 上从一个已发布的 checkpoint 开始微调,在留出切片上拟合温度,把结果和未动过的模型对比打分,部署一个端点,最后把一切拆干净。

「你不需要本地 GPU,也不需要克隆这个仓库。一次 Kev-4B 训练在 H100 上大约花 1 美元。」

微调到底能带来多少

这段数字给得很实在,而且作者主动说了什么时候没用:

在一个示例客服负载上(三个问题、1,050 条生成记录、H100 上 15 分钟),微调把 Kev-4B 从 67.7% 提到 73.6%,并把「在 5% 错误预算下能自动化的决策比例」从 34% 提到 48%。

在真实数据上,用 5,219 条标注过的消费金融投诉训一个 epoch,把 Kev-4B 从未见过的投诉上的准确率从 0.804 提到 0.904。

但紧接着是那句必须说的:

这样的增益是分布内的:它们告诉你 Kev 学你的任务学得有多好,不是它在其他一切上表现如何。

先把你的数据集规模估好。在 400 条记录时,示例负载上的增益在噪声范围之内。

我特别欣赏这一点——大多数项目会把 0.804→0.904 当卖点,而这个作者主动说明了它不意味着什么。

四、部署

想要 HTTPS 端点,你不需要这个仓库,只要一个 Modal 账号:

pip install modal && modal setup

curl -LO https://raw.githubusercontent.com/jaredpalmer/kev/main/skills/kev-deploy/scripts/kev_serve.py

KEV_API_KEY=$(openssl rand -hex 24) modal deploy kev_serve.py

它会把 Kev-4B 部署在 L40S 上,空闲时缩容到零,所以没用到的端点不花钱。

一个实际要留意的:空闲后的第一个请求要等大约 35 秒让容器启动。

想换模型就设 KEV_MODEL;Kev-27B 会去 B200,回退到 H200 或 H100。

五、几个工程细节

① 本地运行支持三种后端

uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009

有 GPU 走 CUDA 或 ROCm,Apple Silicon 走 MLX。 4B 和 9B 都能跑在 32GB 的 Mac 上。

② 一起问还是分开问,结果几乎一样

一起提问或分开提问,fp32 测试中概率差异在 4e-6 以内。

这个数字说明了「问题之间互相隔离」这个设计是真的。 如果它们能互相影响,批量提问和逐个提问就不可能得到同样的答案。

③ 每个 checkpoint 都带一个校准温度

Kev-0.8B T=2.41

Kev-4B T=2.14

Kev-9B T=2.30

温度是「在分布内开发数据上拟合」的,存在 head.pt 里——所以开箱即得的概率是有校准的,不是原始 softmax。

④ 训练细节

decision-v7 训练套件 = 10,000 条公开记录(每个来源 1,000 条)+ 896 条 policy 记录 + 来自 60 个规则结构的 1,680 条记录。两个 epoch,LoRA rank 16,对正确答案做交叉熵。

学习率:0.8B 用 1e-4(OneCycle),4B/9B 用 5e-5。

并且明确声明:训练中未使用任何 Jev 的输出。

六、我的判断

这条补上了 Jev 生态里一直缺的一块:一个能自己训练、自己部署、还带完整微调闭环的开源实现。

我们写过 Jev 是什么、写过有人用 25 行 Python 复现机制、写过 von/Reflex/Eikos 这些替代、写过 OpenJev 做到 4,000 星。 但那些基本停在「推理」这一层——怎么拿到概率。

Kev 往前走了一步:它把「在你自己的数据上把它训得更好」也变成了一条能跟着走的路径,而且成本是 H100 上约 1 美元。

三个我认为最值得记的东西:

① 那个 skill 的工作流设计。 「采访你 → 找到你代码里已经在问的问题 → 转换你已有的标签 → 微调 → 对比未动过的模型 → 部署 → 拆干净」——这七步里最巧的是第二步:它从你现在的代码里找问题,而不是让你从零想。

② 那个「增益是分布内的」的自我限制。 它把「微调能提升多少」这个问题的答案限定了范围。

③ Kev-27B 与 Jev 相差一个点,但作者说这不是受控比较。 因为他们不知道 Jev 用什么训练的。

诚实的边界:所有性能数字都来自项目自带的 model card,没有外部评测。作者自己也说了这不是受控对比。而且 Kev 的训练数据里「没有使用任何 Jev 的输出」——这句话的另一面是,它的训练套件是自己构造的,所以「新数据源」上的表现依赖那份构造的质量。

链接

仓库:https://github.com/jaredpalmer/kev

Kev-4B:https://huggingface.co/jaredpalmer/kev-4b

Kev-27B:https://huggingface.co/jaredpalmer/kev-27b

浏览器里试(HF Space):https://huggingface.co/spaces/jaredpalmer/kev

微调 skill:https://github.com/jaredpalmer/kev/tree/main/skills/kev-finetune

架构依据(Jev's Architecture Unmasked):https://archerhume.com/posts/jevs-architecture-unmasked

#Jev #开源 #微调

全文完
查看原文

沿着这个主题继续读

从一篇文章,找到相关的教程、经验和阅读路径。

JevJev 入门与使用方法,从任务表达、结果评价到 Codex 和 Claude Code 接入。