Implementation:Axolotl ai cloud Axolotl Validate Config
| Knowledge Sources | |
|---|---|
| Domains | Configuration, Validation |
| Last Updated | 2026-02-06 23:00 GMT |
Overview
Concrete tool for validating and normalizing Axolotl training configurations using Pydantic schemas.
Description
The validate_config function validates a raw configuration dictionary against the AxolotlInputConfig Pydantic schema. It performs type coercion, applies defaults, validates cross-field constraints, and incorporates hardware capability information. Dataset entries are typed into SFTDataset, DPODataset, or KTODataset based on the training type. The function also runs through AxolotlConfigWCapabilities which merges hardware-aware defaults.
Usage
Import this function after loading a raw config via load_cfg and before model/data loading. It is automatically called within the training pipeline but can also be invoked directly for config validation tooling.
Code Reference
Source Location
- Repository: axolotl
- File: src/axolotl/utils/config/__init__.py
- Lines: L264-310
Signature
def validate_config(
cfg: DictDefault,
capabilities: Optional[dict] = None,
env_capabilities: Optional[dict] = None,
) -> DictDefault:
"""Validate and normalize an Axolotl configuration.
Args:
cfg: Raw configuration dictionary from load_cfg.
capabilities: Hardware capabilities dict (GPU type, VRAM, etc.).
env_capabilities: Environment capabilities dict (distributed setup info).
Returns:
DictDefault: Pydantic-validated config with defaults applied and
dataset entries typed as SFTDataset/DPODataset/KTODataset.
"""
Import
from axolotl.utils.config import validate_config
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| cfg | DictDefault | Yes | Raw configuration dictionary from load_cfg |
| capabilities | Optional[dict] | No | Hardware capabilities (GPU type, VRAM, compute capability) |
| env_capabilities | Optional[dict] | No | Environment capabilities (distributed setup, number of GPUs) |
Outputs
| Name | Type | Description |
|---|---|---|
| return | DictDefault | Validated config with Pydantic defaults applied, dataset entries typed, and cross-field constraints enforced |
Usage Examples
Basic Validation
from axolotl.cli.config import load_cfg
from axolotl.utils.config import validate_config
# Load raw config
cfg = load_cfg("examples/llama-3/qlora-1b.yml")
# Validate with auto-detected capabilities
validated_cfg = validate_config(cfg)
# Config now has defaults applied and datasets typed
print(type(validated_cfg.datasets[0])) # SFTDataset
Validation with Explicit Capabilities
from axolotl.cli.config import load_cfg
from axolotl.utils.config import validate_config
cfg = load_cfg("examples/llama-3/qlora-1b.yml")
capabilities = {
"gpu": "NVIDIA A100",
"vram": 80,
"compute_capability": (8, 0),
}
env_capabilities = {
"num_gpus": 4,
"distributed": True,
}
validated_cfg = validate_config(cfg, capabilities, env_capabilities)