Перейти к содержимому

Дообучение модели завершилось

Fine-tune может занять от 30 минут до нескольких суток. Открывать раз в час dashboard — пытка. Полл-функция раз в N минут, проверяющая статус job-а:

import os, json, requests, openai
JOB_ID = os.environ["FT_JOB_ID"]
STATE = "/tmp/ft-state.json"
def handler(event, context):
job = openai.fine_tuning.jobs.retrieve(JOB_ID)
cur = job.status # validating_files / running / succeeded / failed / cancelled
prev = (json.load(open(STATE)) if os.path.exists(STATE) else {}).get("status")
if cur != prev:
push(f"🎓 Fine-tune: {cur}",
f"Job: {JOB_ID}\nModel: {job.fine_tuned_model or ''}\n"
f"Trained tokens: {getattr(job,'trained_tokens',None)}",
10 if cur == "failed" else 5 if cur == "succeeded" else 4)
json.dump({"status": cur}, open(STATE, "w"))
return {"statusCode": 200}
def push(t, m, p):
requests.post(f"{os.environ['NOTIFLY_URL']}/message",
params={"token": os.environ["NOTIFLY_TOKEN"]},
json={"title": t, "message": m, "priority": p}, timeout=5)

Поставьте timer */5 * * * ? *. После succeeded сразу запустите eval-runner и сравните с базовой моделью.