This streamlined tutorial guides you through the finetuning process with Together AI. While the official tutorial splits the process across different pages, this guide consolidates everything into a single, easy-to-follow resource.
Note:
- All commands should be entered in the terminal.
- The minimal training cost is $5, even with just one entry in the training data.
1. Authentication
Start by setting your Together AI API key:
export TOGETHER_API_KEY= <your_api>
2. Prepare Your Dataset
Construct your dataset according to the required data format. You can use either Conversational Data or Instruction Data formats.
Conversational Data Example
{
"messages": [
{"role": "system", "content": "This is a system prompt."},
{"role": "user", "content": "Hello, how are you?"},
{"role": "assistant", "content": "I'm doing well, thank you! How can I help you?"},
{"role": "user", "content": "Can you explain machine learning?"},
{"role": "assistant", "content": "Machine learning is..."}
]
}
Instruction Data Example
{"prompt": "...", "completion": "..."}
{"prompt": "...", "completion": "..."}
3. Upload Your Dataset and Obtain File ID
Upload your dataset using the following command:
together files upload <file_name>
Replace <file_name>
with the name of your dataset file (e.g., dataset.jsonl
).
Upon successful upload, you will receive a response similar to:
{
"id": "file-123456",
"object": "file",
"created_at": 1734574470,
"purpose": "fine-tune",
"filename": "filename.jsonl",
"bytes": 0,
"line_count": 0,
"processed": false,
"FileType": "jsonl"
}
Action: Note down the id
(e.g., file-123456
) for use in the next steps.
4. Select a Model to Fine-Tune
Fine-tuning ModelsA list of all the models available for fine-tuning.docs.together.ai
Use the name listed under the "Model String for API" column. For example: "meta-llama/Llama-3.3--70B-Instruct-Reference"
5. Create a Finetuning Task
Initiate the finetuning process with the following command:
together fine-tuning create - training-file file-123456 - model meta-llama/Llama-3.3–70B-Instruct-Reference
Replace:
file-123456
with your actual file ID.meta-llama/Llama-3.3--70B-Instruct-Reference
with your chosen model string.
If the submission is successful, you will see a response similar to:
Submitting a fine-tuning job with the following parameters:
FinetuneRequest(
training_file='file-123456',
validation_file='',
model='meta-llama/Llama-3.3–70B-Instruct-Reference',
n_epochs=1,
learning_rate=1e-05,
lr_scheduler=FinetuneLRScheduler(lr_scheduler_type='linear', lr_scheduler_args=FinetuneLinearLRSchedulerArgs(min_lr_ratio=0.0)),
warmup_ratio=0.0,
max_grad_norm=1.0,
weight_decay=0.0,
n_checkpoints=1,
n_evals=0,
batch_size=32,
suffix=None,
wandb_key=None,
wandb_base_url=None,
wandb_project_name=None,
wandb_name=None,
training_type=LoRATrainingType(type='Lora', lora_r=8, lora_alpha=16, lora_dropout=0.0, lora_trainable_modules='all-linear'),
train_on_inputs='auto'
)
Successfully submitted a fine-tuning job ft-c1cce2b0-1a90-47e4-8e84-46f76d2c3dcb at 12/19/2024, 10:16:38
Action: Note down the fine-tuning job ID (e.g., ft-c1cce2b0-1a90-47e4-8e84-46f76d2c3dcb
).
6. Monitor and Use Your Fine-Tuned Model
Once the finetuning job is complete, you can use your fine-tuned model as follows:
Example in Python
from together import Together
client = Together()
response = client.chat.completions.create(
model="check your model name in your together AI dashboard",
messages=[{"role": "user", "content": "Could you give me a like?"}],
)
print(response.choices[0].message.content)