pythonadvanced

Prepare Fine-Tuning Dataset for OpenAI

Build, validate, and upload a JSONL fine-tuning dataset for OpenAI GPT fine-tuning.

python
import json
from openai import OpenAI
from pathlib import Path

# Create training examples
examples = [
    {'messages': [{'role':'system','content':'You are a SQL expert.'}, {'role':'user','content':'How do I select distinct values?'}, {'role':'assistant','content':'Use SELECT DISTINCT column FROM table;'}]},
    {'messages': [{'role':'system','content':'You are a SQL expert.'}, {'role':'user','content':'How do I count rows?'}, {'role':'assistant','content':'Use SELECT COUNT(*) FROM table;'}]},
]

output = Path('finetune_train.jsonl')
output.write_text('\n'.join(json.dumps(ex) for ex in examples))

client = OpenAI()
with open(output, 'rb') as f:
    file_obj = client.files.create(file=f, purpose='fine-tune')

job = client.fine_tuning.jobs.create(training_file=file_obj.id, model='gpt-4o-mini-2024-07-18')
print(f'Fine-tune job: {job.id}, status: {job.status}')

Use Cases

  • model customization
  • domain adaptation
  • task-specific tuning

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.