返回 文章 build CMS 文章

如何用17美元训练你自己的类Jev分类模型

用17美元和25分钟,基于 Qwen3.5 4B 微调并部署你自己的类 Jev 分类模型。

微调分类模型Qwen3.5Together AI
成长分 / 100 74 综合收获、行动、留存与影响

如何用17美元训练你自己的类Jev分类模型
为什么值得读了解如何以极低成本(约17美元)和短时间(约25分钟)微调一个专用分类模型。

获得从数据准备、微调、部署到查询的完整端到端操作指南。

关键洞察
  1. Jev 是一个快速且极其便宜的分类模型,接收状态和预定义问题,返回分数、布尔值或多选答案。
  2. 使用 38,340 个示例从六个数据集抽取并规范化,训练成本约 17 美元。
  3. 基于 Qwen3.5 4B 微调,训练任务约需 25 分钟完成。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:7679

摘要

我们刚刚在 Together 的无服务器平台上,基于 Qwen3.5 4B 推出了我们自己的类 Jev 分类器 together/Tev1-4B-experimental。在这篇博客文章中,我们将向你展示如何微调你自己的版本!

Jev 迅速成为 AI 领域最受关注的模型发布之一。它是一个强大的分类模型,运行起来既快速又极其便宜。

给 Jev 一段状态加上预定义的问题,它就会迅速以分数、布尔值或多选答案的形式返回结果。

这类分类模型有许多现实世界的应用,例如电商网站评估自动客户退货、对机器学习论文进行分类,甚至为一段文本提供情感评分。

今天我们将微调我们自己的类 Jev 分类模型,它接收状态并返回答案。我们的目标是创建一个能够快速高效地回答如下问题的模型:

在这篇博客文章中,我们将介绍如何微调和部署一个能够回答这类问题的分类模型。等我们完成时,你将拥有自己的模型,并部署好一个易于集成到任何软件中的 API 端点。

让我们先在你的电脑上设置好训练模型所需的一切。

*如果你更想直接使用分类器,而不想费心训练自己的模型,请查看 *together/Tev1-4B-experimental

  • 在 Together 的无服务器平台上。*

入门

我们需要做的第一件事是克隆 tev1 GitHub 仓库。

克隆仓库后,我们需要使用以下命令安装必要的依赖:

最后一步设置是创建一个 .env

文件,用于保存必要的环境变量。

复制 .env.example

编辑新的 .env

文件并添加你的 TOGETHER_API_KEY

。你暂时不需要添加 JEV_MODEL

。先留空即可。

就这样。我们现在准备好微调我们的模型了。

微调分类模型

下一步是拿一个现有的语言模型,把它变成一个专门用于分类的模型。为此,我们需要使用一个基础模型和若干现有数据集来创建一个微调。

对于基础模型,我们将使用 Qwen3.5 4B;对于数据集,我们将使用托管在 Hugging Face 上的几个数据集。

选择数据集

我们将从各种数据集中抽取 38,000 个问题,每个数据集专注于不同类型的分类。

以下是我们将使用的数据集及示例数量:

我们只使用 38,340 个示例,以保持微调成本较低。针对这种规模的数据集进行训练只需花费约 17.0 美元,而更大的数据集训练起来更昂贵且耗时。

规范化数据

现在我们已经选好了六个数据源,我们需要从中抽取有限数量的问题,并对这些问题进行规范化,使它们都采用相同的格式。

该仓库包含许多自动化此过程的 Python 脚本。

首先,下载数据集:

接下来,抽取并规范化我们将用于训练的问题:

对于这些命令,你应该会看到一些输出,并且没有错误。

现在我们已经有了训练数据集,可以进入下一步,微调分类模型了。

训练模型

我们可以使用 Together AI 的微调 服务来启动一个微调任务。

有一个 Python 脚本可以帮助自动化这个过程。使用以下命令运行它:

这个脚本处理了训练模型所需的多个步骤。首先,它将训练数据上传到 Together,然后使用数据集和适当的参数启动一个微调任务。

一旦微调任务启动,训练脚本将输出一个训练任务 ID。

你可以使用 Together CLI 检查训练状态:

你也可以通过 Together AI 上的 微调仪表板 检查训练任务的状态。

训练任务大约需要 25 分钟完成,完成后我们将拥有一个准备好进行分类的模型。

部署模型

在部署模型之前,我们首先需要从微调任务中获取其名称。运行以下命令:

此命令将打印模型的 model_output_name

。我们将使用此名称将模型部署到 Together AI 上的专用端点。

专用端点负责通过 HTTP 服务器暴露微调后的模型,以便我们可以向其发送查询。

运行此命令将返回有关新端点的信息:

创建后,你将在输出中看到端点的名称。你也可以通过 Together AI 上的 专用端点仪表板 找到有关端点的更多信息。

将端点的名称放入你的 .env

中作为 JEV_MODEL

。例如,如果你的端点名为 account_855c/Qwen3.5-4B-jev-efde5bd5-068f756b

那么你的 .env

应该包含:

就这样。你的模型现在已部署在 Together AI 上,并准备好回答任何分类问题。

在下一节中,我们将学习如何查询我们的模型。

查询模型

代码仓库包含许多测试用例,用于验证模型是否正常工作。让我们使用分类模型来找出客户关于其订阅的问题的意图:

Customer message: Hi, I checked my statement and your company charged my card twice for the October subscription. The amounts are both $19.99 on the same day. I have not changed my plan.

由于我们的模型是在 JSON 输入和输出上进行微调的,我们需要使用 JSON 数据结构来格式化该问题及其可能的答案,如下所示:

我们可以使用以下命令将此数据结构发送到我们的模型进行分类:

examples/charge-dispute.json

文件包含我们上面的 JSON 示例,而 decide.py

是一个 Python 脚本,将其发送到我们微调后的模型。

一旦我们发送请求,我们很快会看到模型响应:

这正是我们想要看到的。不仅是正确的答案,而且也是模型从我们的训练数据中学到的正确输出格式。

examples/

文件夹中还有更多示例。这些示例包括与意图、是/否理解、布尔策略检查和情感分析相关的问题。尝试更改这些示例,并针对你部署的模型运行它们。

注意:我们的示例脚本会自动提供系统提示和推理设置。当直接调用 API 或使用 Chat Playground 时,请显式设置 temperature=0、max_tokens=8 和 chat_template_kwargs={"enable_thinking": false}。当前的公共端点不会自动注入这些默认值。

使用此系统提示:

总结

在完成对新模型的实验后,您可以使用以下命令关闭专用端点:

要稍后再次使用您的模型,请重新启动专用端点,或在我们无服务器平台上使用 Together 托管的 together/Tev1-4B-experimental 版本。

只需约 17 美元的训练成本和二十五分钟的等待时间,您现在拥有了自己的微调分类模型,部署在 HTTP 端点后,能够以您的软件期望的格式进行响应。