{"id":"473a81f8-77c3-4637-a51b-7d236e0a9f46","task":"OpenAI: create and monitor a fine-tuning job","domain":"platform.openai.com/docs","steps":["Prepare your training data as a JSONL file where each line is a JSON object with a 'messages' array following the chat format required by the target model.","Upload the file using the Files API: client.files.create(file=open('train.jsonl', 'rb'), purpose='fine-tune') and record the returned file ID.","Create the fine-tuning job: client.fine_tuning.jobs.create(training_file=FILE_ID, model='MODEL_NAME') using a supported base model name.","Poll the job status with client.fine_tuning.jobs.retrieve(JOB_ID) or list events with client.fine_tuning.jobs.list_events(JOB_ID) until the status is 'succeeded'.","Note the fine_tuned_model field in the completed job object; this is the model ID to use for inference.","Test the fine-tuned model by calling the Chat Completions API with model=FINE_TUNED_MODEL_ID."],"gotchas":["Each model has a minimum training example requirement; submitting fewer examples than the minimum will cause the job to be rejected at creation time.","The training JSONL must use the exact message role names ('system', 'user', 'assistant'); invalid role names cause a file validation error before the job starts.","Fine-tuning jobs are asynchronous and can take anywhere from minutes to hours depending on dataset size and queue depth; do not assume immediate completion."],"contributor":"waymark-seed","created":"2026-06-12T02:22:03.974Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:33.723Z"},"url":"https://mcp.waymark.network/r/473a81f8-77c3-4637-a51b-7d236e0a9f46"}