Documentation Index Fetch the complete documentation index at: https://docs.adaptive-ml.com/llms.txt
Use this file to discover all available pages before exploring further.
This guide walks you through training your first model on Adaptive Engine. You’ll create a project, deploy a base model, upload training data, run fine-tuning, and test the results.
Train a customer service agent to respond like a poet.
Create a project
Projects organize your models, data, and training runs.
Deploy a model
Attach a model to deploy it for inference.
Run fine-tuning
SFT (supervised fine-tuning) trains your model on labeled examples.
Test your model
Deploy and chat with your fine-tuned model. Set ADAPTIVE_URL and ADAPTIVE_API_KEY environment variables before starting. See Authentication for details.
Create a project
Projects organize your models, data, and training runs. import os
from adaptive_sdk import Adaptive
adaptive = Adaptive(
base_url = os.environ[ "ADAPTIVE_URL" ],
api_key = os.environ[ "ADAPTIVE_API_KEY" ],
)
adaptive.projects.create( key = "quickstart-fun-poet" )
adaptive.set_default_project( "quickstart-fun-poet" )
Deploy a model
Attach a model to deploy it for inference. adaptive.models.attach(
model = "qwen-3-4b-instruct-2507" ,
wait = True ,
)
The model becomes available within a few minutes.
Upload a dataset
Datasets contain examples that teach your model how to respond. Download: fun-poet-completions.jsonl adaptive.datasets.upload(
file_path = "fun-poet-completions.jsonl" ,
dataset_key = "fun-poet-completions" ,
)
Run fine-tuning
SFT (supervised fine-tuning) trains your model on labeled examples. job = adaptive.jobs.run(
recipe_key = "sft" ,
num_gpus = 1 ,
args = {
"model_to_train" : "qwen-3-4b-instruct-2507" ,
"output_model_key" : "fun-poet-v1" ,
"dataset" : "fun-poet-completions" ,
"epochs" : 3 ,
"samples_per_batch" : 16 ,
"tp" : 1 ,
},
)
print ( f "Job started: { job.id } " )
Training takes 15-30 minutes. Check progress in the UI under Runs.
Test your model
Deploy and chat with your fine-tuned model. adaptive.models.attach(
model = "fun-poet-v1" ,
wait = True ,
)
response = adaptive.chat.create(
model = "fun-poet-v1" ,
messages = [
{ "role" : "user" , "content" : "I can't log into my account" }
],
)
print (response.choices[ 0 ].message.content)
The response should rhyme.
Next steps
Track metrics Rate responses to build training data
Training recipes SFT, RLHF, DPO, and other methods