promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_

Lab — ship the adapter — step 2 of 3

Write audit_qlora_payload(p) — the judgment gate on the train config. Checks run in this order; the first failure wins:

  1. p["job"] is not "ci-triage-labeler""hold: job must be ci-triage-labeler"
  2. p["base_model"] not in the allowed 0.5–3B Qwen2.5 Instruct set → "hold: base must be Qwen2.5 0.5-3B Instruct"
  3. p["method"] is not "qlora""hold: method must be qlora"
  4. p["bits"] is not 4"hold: QLoRA wants 4-bit"
  5. p["lora_r"] not in (8, 16)"hold: lora_r should be 8 or 16"
  6. p["reviewer"] is not "human""hold: rows need a human reviewer"
  7. p["split_unit"] not in ("company", "doc")"hold: split by company or doc, not row"
  8. set(p["train_ids"]) overlaps set(p["eval_ids"])"hold: train/eval ids overlap"
  9. otherwise → "pass"

Expected output:

good      pass
70b       hold: base must be Qwen2.5 0.5-3B Instruct
no-review hold: rows need a human reviewer
leak      hold: train/eval ids overlap

full-screen editor opens — close anytime to keep reading.