Skip to main content

Overview

The following defines the configuration schema used for training models in Oumi. The configuration includes:
  • Model loading configuration
  • Dataset configuration
  • Training parameters
  • Logging and evaluation settings
  • Parameter-efficient fine-tuning (PEFT)
Fields marked with (*) are required.

Schema structure

{
  "model": {},
  "data": {},
  "training": {},
  "peft": {}
}

model *

Defines the model and tokenizer configuration.
FieldTypeRequiredDescription
modelNamestringHuggingFace model name or path
tokenizerNamestringTokenizer name (defaults to model name)
tokenizerPadTokenstringOverride pad token for tokenizer
modelMaxLengthnumberMaximum sequence length
torchDtypestringPyTorch dtype (e.g. float16, bfloat16)
trustRemoteCodebooleanAllow execution of custom model repo code
attnImplementationstringAttention implementation (e.g. flash_attention_2)
chatTemplatestringCustom Jinja chat template
enableLigerKernelbooleanEnable Liger fused kernel optimizations

Constraints

FieldConstraint
modelNameMinimum length: 1

Example

{
  "model": {
    "modelName": "meta-llama/Llama-3-8B",
    "tokenizerName": "meta-llama/Llama-3-8B",
    "torchDtype": "bfloat16",
    "modelMaxLength": 4096
  }
}

data *

Defines datasets used for training and evaluation.
FieldTypeRequiredDescription
trainobjectTraining dataset configuration
validationobjectValidation dataset configuration
testobjectTest dataset configuration

train *

Training dataset definition.
FieldTypeRequiredDescription
datasetsobject[]List of datasets

Constraints

FieldConstraint
datasetsExactly 1 item

Dataset object

FieldTypeRequiredDescription
datasetIdintegerDataset identifier

Range

FieldRange
datasetId(0..9007199254740991]

validation

Validation dataset configuration.
FieldTypeDescription
datasetsobject[]Validation datasets

test

Test dataset configuration.
FieldTypeDescription
datasetsobject[]Test datasets

training *

Defines model training parameters.
FieldTypeDescription
maxStepsnumberStop training after this many steps (-1 = unlimited)
numTrainEpochsintegerNumber of full passes over the dataset
learningRatenumberPeak learning rate
lrSchedulerTypeenumLearning rate scheduler
warmupRationumberFraction of warmup steps
warmupStepsnumberWarmup steps (overrides ratio)
optimizerstringOptimizer name
weightDecaynumberL2 regularization
adamBeta1numberAdam optimizer beta1
adamBeta2numberAdam optimizer beta2
maxGradNormnumberGradient clipping value
mixedPrecisionDtypeenumMixed precision training dtype
enableGradientCheckpointingbooleanReduce memory usage
loggingStepsnumberLog every N steps
evalStrategyenumEvaluation schedule
evalStepsnumberEval interval
saveStepsnumberCheckpoint interval
saveFinalModelbooleanSave model after training
trainerTypeenumTraining algorithm
seednumberRandom seed
enableWandbbooleanEnable Weights & Biases logging
enableTensorboardbooleanEnable TensorBoard logging
runNamestringDisplay name for training run

Parameter constraints

FieldRange
numTrainEpochs1–30
learningRate0.000001–0.001
runNamelength 1–128
optimizerlength 1–128

lrSchedulerType

Allowed Values
linear
cosine
cosine_with_restarts
cosine_with_min_lr
constant

mixedPrecisionDtype

Allowed Values
none
fp16
bf16

evalStrategy

Allowed Values
no
steps
epoch

trainerType

Allowed Values
sft
opd

onPolicyDistillation

Optional configuration for on-policy distillation.
Requires trainerType = "opd".

peft *

Parameter-efficient fine-tuning configuration.
FieldTypeRequiredDescription
usePeftbooleanEnable PEFT
peftMethodstringPEFT method (e.g. lora)
loraRnum