together-core-workflow-a
'Together AI core workflow a for inference, fine-tuning, and model deployment.
Allowed Tools
ReadWriteEditBash(pip:*)Grep
Provided by Plugin
together-pack
Claude Code skill pack for Together AI (18 skills)
Installation
This skill is included in the together-pack plugin:
/plugin install together-pack@claude-code-plugins-plus
Click to copy
Instructions
Together AI Core Workflow A
Overview
Fine-tune open-source models on your data with Together AI's fine-tuning API.
Instructions
Step 1: Prepare Training Data (JSONL)
import json
# Format: one JSON object per line with messages array
training_data = [
{"messages": [
{"role": "system", "content": "You are a customer support agent."},
{"role": "user", "content": "How do I reset my password?"},
{"role": "assistant", "content": "Go to Settings > Security > Reset Password."},
]},
{"messages": [
{"role": "user", "content": "What are your business hours?"},
{"role": "assistant", "content": "We're open Monday-Friday, 9 AM - 5 PM EST."},
]},
]
with open("training.jsonl", "w") as f:
for item in training_data:
f.write(json.dumps(item) + "\n")
Step 2: Upload Training File
from together import Together
client = Together()
# Upload file
file = client.files.upload(file="training.jsonl")
print(f"File ID: {file.id}")
Step 3: Create Fine-Tuning Job
job = client.fine_tuning.create(
training_file=file.id,
model="meta-llama/Llama-3.3-70B-Instruct-Turbo",
n_epochs=3,
learning_rate=1e-5,
batch_size=4,
suffix="my-support-bot",
)
print(f"Job ID: {job.id}, Status: {job.status}")
Step 4: Monitor Training
import time
while True:
status = client.fine_tuning.retrieve(job.id)
print(f"Status: {status.status}, Step: {status.training_steps_completed}")
if status.status in ("completed", "failed", "cancelled"):
break
time.sleep(30)
if status.status == "completed":
print(f"Fine-tuned model: {status.fine_tuned_model}")
Step 5: Use Fine-Tuned Model
response = client.chat.completions.create(
model=status.fine_tuned_model, # Your custom model ID
messages=[{"role": "user", "content": "How do I cancel my subscription?"}],
)
print(response.choices[0].message.content)
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Invalid JSONL | Wrong format | Each line must be valid JSON with messages array |
| Training OOM | Batch size too large | Reduce batch_size |
| Job failed | Data quality issue | Check training file format |
Resources
Next Steps
For batch inference and dedicated endpoints, see together-core-workflow-b.