WritingTogether AITogether AIpublished Sep 23, 2026seen 2w

How to train your own Jev for $17

Open original ↗

Captured source

source ↗
published Sep 23, 2026seen 2wcaptured 2whttp 200method plain

How to train your own Jev for $17 Webflow Analyze/Optimize tracking bridge -->

The Open Source AI Stack: models, inference, routers, harnesses & tools →

📈 GLM-5.3 vs. GLM 5.3 Flash on DeepSWE →

🚀 DeepSeek V4 Pro 0813 vs. GPT-5.6 Sol on DeepSWE →

⚡ On-demand B200s now available on Together GPU Clusters →

All blog posts

Fine-Tuning

Published 9/23/2026

How to train your own Jev for $17

Authors

Hassan El Mghari

Table of contents

40+ Models Chosen for Production...40+ Models Chosen for Production...40+ Models Chosen for Production...

Summary

We just launched our own Jev-like classifier, together/Tev1-4B-experimental , on top of Qwen3.5 4B on Together’s serverless platform. In this blog post we’ll show you how to fine-tune your own version!

Jev has quickly become one of the most talked about model releases in the AI space. It’s a powerful classification model that’s both fast and incredibly cheap to run. Give Jev a piece of state plus predefined questions and it will quickly give back a result in the form of a score, boolean value, or multiple choice answer. This sort of classification model has many real-world applications, such as an e-commerce site evaluating automated customer returns, categorizing ML papers, or even providing a sentiment rating for a piece of text. Today we’re going to fine-tune our own Jev-like classification model that takes state and returns an answer. Our goal is to create a model that can quickly and efficiently answer questions like:

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.

Which listed support intent best matches this customer's message?

A. The customer reports being charged more than once. B. The customer wants to end or downgrade a subscription. C. The customer reports a payment that failed or was declined. D. None of the listed intents matches.

In this blog post we’ll cover how to fine-tune and deploy a classification model that can answer these types of questions. By the time we’re done, you’ll have your own model deployed with an API endpoint that’s easy to integrate into any piece of software. Let’s get started by setting up your computer with everything needed to train the model. If you would rather jump straight into using the classifier, and not bother with training your own model, check out together/Tev1-4B-experimental on Together’s serverless platform. Getting started The first thing we need to do is clone the tev1 GitHub repository.

git clone https://github.com/togethercomputer/tev1

Once the repository is cloned, we’ll need to install the necessary dependencies using:

uv sync --locked

The final setup step is to create an .env file that will hold the necessary environment variables. Copy .env.example :

cp .env.example .env

Edit the new .env file and add your TOGETHER_API_KEY . You do not need to add a JEV_MODEL just yet. Leave it blank for now. And that’s it. We’re now ready to fine-tune our model. Fine-tuning a classification model The next step is to take an existing language model and turn it into a model that specializes in classification. In order to do that we’ll need to create a fine-tune using a base model and a number of existing datasets. For the base model we’ll use Qwen3.5 4B and for the datasets we’ll use a handful that are hosted on Hugging Face. Picking datasets We’ll sample 38,000 questions from various datasets, each one specializing in a different type of classification. Here are the datasets and the number of examples we’ll use: Source Decision Training examples MultiNLI Support, contradict, or neutral 5,000 BoolQ Yes or no, using a passage 3,000 Banking77 Pick a banking intent 3,000 AG News Classify a news item 1,500 SST-5 Pick a sentiment level 2,000 Programmatic policies Apply a rule 13,500 Routing Rule decisions 6,000 Research taxonomy Paper classification 3,840 Total 37,840

We only use 38,340 examples to keep our fine-tuning costs low. Training against a dataset of this size will only cost about $17.0, while larger datasets are more expensive and time-consuming to train against. Normalizing the data Now that we have picked our six data sources, we need to sample a limited number of questions from them as well as normalize these questions so they are all in the same format. The repository contains a number of Python scripts that automate this process. First, download the datasets:

uv run python fetch_sources.py

Next, sample and normalize the questions that we will use for training:

uv run python build_all.py

For these commands you should see some output and no errors. Now that we have our training datasets, we’re ready to move on to the next step and fine-tune the classification model. Training the model We can launch a fine-tuning job using Together AI’s Fine-tuning service. There is a Python script that will help automate this process. Run it using:

uv run --with together --env-file .env python examples/train_together.py --launch

This script takes care of a number of steps needed to train a model. First, it uploads the training data to Together and then it launches a fine-tuning job using the dataset and appropriate parameters. Once the fine-tuning job launches, the training script will output a training job ID.

Uploaded train.jsonl: file-81f6cdf1-6bc0-4e61-9aaa-bace7eb0a50a Uploaded dev.jsonl: file-5e61eb67-d4a1-474c-9871-f9d8307a2dc6 Training job: ft-f3e14f1e-a0ce

You can check on the status of the training using the Together CLI:

tg fine-tuning retrieve ft-f3e14f1e-a0ce

You can also check on the status of the training job using the Fine-tuning dashboard over on Together AI.

The training job will take roughly 25 minutes to complete, and once it does we’ll have a model that is ready to do classification. Deploying the model Before we can deploy our model, we’ll first need its name from the fine-tuning job. Run the following command:

tg fine-tuning retrieve ft-f3e14f1e-a0ce --json | jq -r '.model_output_name'

This command will print the model’s model_output_name . We’ll use this name to deploy the model to a dedicated endpoint on Together AI. Dedicated endpoints are responsible for exposing a fine-tuned model over an HTTP server so that we can send queries to it.

tg endpoints create MODEL_OUTPUT_NAME --hardware 1x_nvidia_h100_80gb_sxm --display-name jev-v1-4b --wait

Running this command will return information about your new...

Excerpt shown — open the source for the full document.

Notability

notability 6.0/10

Substantive tutorial from Together AI on low-cost model training.