Skip to main content

Managed recipe parameters

Use the managed request, not a user-controlled optimizer loop. Supported inputs include max_steps, max_length, per_device_train_batch_size, gradient_accumulation_steps, seed, labels and bounded records; the Qwen/Qwen3.8-27B text recipe also takes hyperparams, parent_checkpoint and loss_on (below). Discovery returns the current request schema and the limits of each recipe. Unknown fields are rejected.

GLM uses the frozen glm53_unsloth attention QLoRA recipe, revision and resource template. Arbitrary LoRA rank/optimizer configuration, forward-only custom loss, RL, and optimizer-state resume are unsupported. Saved state does not add these capabilities. Read actual loss/metrics and final artifacts through the monitoring APIs. Retry an identical submission using its original request_id; never replay an uncertain optimizer update.

Qwen3.8-27B options​

On Qwen/Qwen3.8-27B text SFT (inline records, no recipe) a request can continue an earlier run, set the optimisation and tag the Job. Every field is optional. A request that omits them trains exactly as before: learning rate 1e-4, rank 16, linear schedule, no warmup. Discovery (GET /v1/job/training-models) lists the allowed ranges under features and limits.

{
"request_id": "rsi-7-round-2",
"base_model": "Qwen/Qwen3.8-27B",
"records": [{"messages": [
{"role": "user", "content": "What is 1 + 1?"},
{"role": "assistant", "content": "2"}
]}],
"parent_checkpoint": "envloop://job_01M5KPXGHTRDW4NTWDVSPJE0SN/adapter-final",
"hyperparams": {"learning_rate": 5e-5, "epochs": 2, "lora_rank": 16, "batch_size": 8,
"warmup_ratio": 0.1, "lr_scheduler": "cosine"},
"max_length": 4096,
"loss_on": "last_assistant_turn",
"labels": {"source": "rsi-loop-dsh", "rsi_run": "rsi-7", "rsi_round": "2", "purpose": "sft"}
}
FieldRule
labelsAt most 16 string pairs. Keys match [A-Za-z0-9_][A-Za-z0-9_.-]{0,63}; values are text of at most 256 characters without control characters. Allowed on every managed text recipe. The Job returns them as labels (and in user_metadata) in status, list and result. They never affect billing.
parent_checkpointAn envloop://<job>/<checkpoint> path of a succeeded managed Job in your own project, from the same recipe and with the same lora_rank. Its adapter weights initialise the new adapter; the optimizer, schedule and step count start fresh. A path that does not exist, belongs to another project or is not durable yet returns 422 PARENT_CHECKPOINT_UNAVAILABLE; a different base model, recipe or rank returns 422 PARENT_CHECKPOINT_INCOMPATIBLE.
hyperparams.learning_rate1e-7 to 1e-2.
hyperparams.epochs or hyperparams.max_stepsThe run length, one of them (also not together with top-level max_steps). epochs up to 100, max_steps up to 100,000. The platform converts epochs to optimizer steps (ceil(epochs × records ÷ batch_size)) at admission and returns the steps it will run.
hyperparams.lora_rank8, 16, 32 or 64 (default 16), the ranks the qwen38-27b@1 serving profile can load.
hyperparams.batch_sizeExamples per optimizer step, 1 to 256 (not together with per_device_train_batch_size or gradient_accumulation_steps).
hyperparams.warmup_ratio0 to 0.5 of the run.
hyperparams.lr_schedulercosine, linear (default) or constant.
max_lengthUp to 32,768 tokens (default 8,192). Only 8,192 is a validated envelope.
loss_onlast_assistant_turn, the only mode and the default: the loss is computed on the final assistant message; earlier turns, including earlier assistant turns, are context.

The Job returns the values it trains with as hyperparameters. Continue a chain by passing the checkpoint.path of one round as parent_checkpoint of the next. These options are validated at admission: an out-of-range value is 422 INVALID_TRAIN_JOB_SPEC, never silently clamped. Other models and recipes reject parent_checkpoint, hyperparams and loss_on.