---
title: "Customization Job Reference"
description: ""
---

Use this page when you need field-level details for customization job specifications, the complete API schema, or integration options.

For concepts, see [Customization Job overview](/documentation/customizer-reference/manage-customization-jobs).

## Key Fields

A customization job is submitted with a backend-specific spec (`AutomodelJobInput` for the automodel backend, `UnslothJobInput` for the unsloth backend). Both specs share the same top-level envelope, but several field names differ between backends. The table below lists the common envelope; for the full per-backend field list, see [Training Configuration](/documentation/customizer-reference/manage-customization-jobs/training-configuration).

| Field | Required | Description |
|-------|----------|-------------|
| `name` | No | Name for this customization job. Auto-generated if not provided |
| `workspace` | Yes | Workspace where the job runs. Determines which datasets and models are authorized for the job. Passed to `jobs.create()`, not part of the spec |
| `spec.model` | Yes | Base Model Entity to fine-tune. Automodel takes a string (`workspace/name`); Unsloth takes an object (`{"name": "workspace/name", ...}`) |
| `spec.dataset` | Yes | Training data filesets. Automodel uses `{"training": "...", "validation": "..."}`; Unsloth uses `{"path": "..."}` |
| `spec.training` | Yes | Training method and hyperparameters (see [Training Configuration](/documentation/customizer-reference/manage-customization-jobs/training-configuration)) |
| `spec.training.training_type` | No | Training method. Automodel: `sft` or `distillation`. Unsloth: `sft`. Defaults to `sft` |
| `spec.training.finetuning_type` | No | Adapter regime. Automodel: `lora`, `lora_merged`, or `all_weights`. Unsloth: `lora` or `all_weights`. Defaults to `lora` |
| `spec.training.lora` | No | LoRA configuration (`{"rank": 16, "alpha": 32, ...}`). Auto-filled with defaults for LoRA regimes |
| `spec.output` | No | Output artifact configuration (`{"name": "..."}`). Auto-generated if not provided |
| `spec.integrations` | No | Optional W&B / MLflow tracking configuration (see below) |
| `spec.deployment_config` | No | **Unsloth only.** Auto-deploy the trained model. Pass a string to reference an existing config by name, or an object with inline NIM deployment parameters (e.g., `{"lora_enabled": true}`). Omit to skip deployment |

---

## Complete API Reference

For generated REST API details, see the [Customizer API Reference](/documentation/reference/api-reference) and search for `AutomodelJobInput` or `UnslothJobInput`.

---

## Weights & Biases Integration

Both backends accept the same `integrations` object on the job spec. Add a `wandb` block to request W&B tracking; the training runtime activates it when the required credentials are available.

```python
import os
from nemo_platform import NeMoPlatform
from nemo_automodel_plugin.schema import AutomodelJobInput

client = NeMoPlatform(base_url=os.environ.get("NMP_BASE_URL", "http://localhost:8080"), workspace="default")

spec = AutomodelJobInput(
    model="default/qwen3-1.7b",
    dataset={"training": "default/my-dataset"},
    training={"training_type": "sft", "finetuning_type": "lora"},
    schedule={"epochs": 3},
    integrations={
        "wandb": {
            "project": "my-finetuning-project",
            "entity": "my-team",
                "tags": ["fine-tuning", "qwen"],
            "api_key_secret": "my-wandb-key",
        }
    },
)

job = client.customization.automodel.jobs.create(spec=spec, workspace="default", name="my-job")
```

The `api_key_secret` field references a stored secret containing your `WANDB_API_KEY`. Use the secret name (e.g., `"my-wandb-key"`) to resolve it from the request workspace. To create the secret, see [Weights & Biases Keys](/documentation/get-started/core-concepts/manage-secrets).

| Field | Description |
|-------|-------------|
| `project` | W&B project name. Defaults to `output.name` if not set |
| `entity` | W&B entity (team or username) |
| `tags` | List of tags for filtering runs |
| `api_key_secret` | Reference to a secret containing `WANDB_API_KEY` |
| `name` | W&B run name. Defaults to the job ID if not provided |
| `notes` | Notes or description for the run |
| `base_url` | Base URL for self-hosted W&B servers (e.g., `https://wandb.mycompany.com`). Omit to use W&B cloud |

To view your training metrics in W&B after the job starts, see [ft-tut-metrics-wandb](/documentation/customizer-reference/tutorials/metrics).

---

## MLflow Integration

Add an `mlflow` block to the same `integrations` object to request MLflow tracking:

```python
spec = AutomodelJobInput(
    model="default/qwen3-1.7b",
    dataset={"training": "default/my-dataset"},
    training={"training_type": "sft", "finetuning_type": "lora"},
    schedule={"epochs": 3},
    integrations={
        "mlflow": {
            "experiment_name": "qwen-finetuning",
            "tracking_uri": "http://mlflow.example.com:5000",
        }
    },
)

job = client.customization.automodel.jobs.create(spec=spec, workspace="default", name="my-job")
```

| Field | Description |
|-------|-------------|
| `experiment_name` | MLflow experiment name. Defaults to `output.name` if not set |
| `tracking_uri` | The MLflow tracking server URI. Can also be set via `MLFLOW_TRACKING_URI` |
| `name` | MLflow run name. Defaults to the job ID if not provided |
| `tags` | Key-value pairs for filtering runs (e.g., `{"team": "nlp", "task": "sft"}`) |
| `description` | Description for the MLflow run |

## Next Steps

- [Create a customization job](/documentation/customizer-reference/manage-customization-jobs/create-a-customization-job): Start a job with a model, dataset, training configuration, and optional integrations.
- [Monitor training metrics](/documentation/customizer-reference/tutorials/metrics): View logs and metrics through MLflow or W&B.
- [Manage secrets](/documentation/get-started/core-concepts/manage-secrets): Store credentials such as W&B API keys and provider tokens.
- [Troubleshooting MLflow integrations](/documentation/reference/troubleshooting/customizer): Diagnose failed or misconfigured customization jobs.
