Overview
Qwen fine-tuning uses Hugging Face Transformers’TrainingArguments with additional custom arguments for model loading, data processing, and LoRA training.
Argument Classes
Four argument classes configure different aspects of training:ModelArguments
Specify which model to fine-tune.str
default:"Qwen/Qwen-7B"
Hugging Face model ID or local path to model checkpoint:
DataArguments
Configure training and evaluation data.str
required
Path to training data JSON file:
str
default:"None"
Path to evaluation data JSON file (optional):
bool
default:"False"
Use lazy data loading to reduce memory usage:Enable for very large datasets that don’t fit in memory.
TrainingArguments
Extends standard Hugging FaceTrainingArguments with Qwen-specific options.
Core Training Parameters
str
required
Directory for saving model checkpoints and outputs:
int
default:"3"
Number of training epochs:
int
default:"8"
Batch size per GPU during training:
int
default:"8"
Batch size per GPU during evaluation:
int
default:"1"
Number of steps to accumulate gradients before updating:Effective batch size = batch_size × gradient_accumulation_steps × num_gpus
Learning Rate
float
default:"5e-5"
Initial learning rate:
str
default:"linear"
Learning rate schedule:
linear: Linear decaycosine: Cosine annealingconstant: No decay
int
default:"0"
Number of warmup steps:
float
default:"0.0"
Warmup ratio (alternative to warmup_steps):
Optimization
str
default:"adamw_torch"
Optimizer to use:
adamw_torch: PyTorch AdamWadamw_hf: Hugging Face AdamWadafactor: Adafactor (memory efficient)
float
default:"0.0"
Weight decay coefficient:
float
default:"0.9"
Adam beta1 parameter
float
default:"0.999"
Adam beta2 parameter
float
default:"1.0"
Maximum gradient norm for clipping:
Model Configuration
int
default:"8192"
Maximum sequence length (input + output):
bool
default:"False"
Enable LoRA fine-tuning:
str
default:"None"
Directory for caching downloaded models:
Checkpointing
str
default:"steps"
When to save checkpoints:
steps: Everysave_stepsepoch: Every epochno: No saving
int
default:"500"
Save checkpoint every N steps:
int
default:"None"
Maximum number of checkpoints to keep:
Evaluation
str
default:"no"
When to run evaluation:
steps: Everyeval_stepsepoch: Every epochno: No evaluation
int
default:"None"
Evaluate every N steps:
Logging
int
default:"500"
Log metrics every N steps:
str
default:"None"
TensorBoard log directory:
str | list
default:"all"
Reporting integrations:
tensorboardwandbnone
Performance
bool
default:"False"
Use FP16 mixed precision:
bool
default:"False"
Use BF16 mixed precision (recommended for modern GPUs):
bool
default:"False"
Enable gradient checkpointing to reduce memory:
str
default:"None"
Path to DeepSpeed config file:
Distributed Training
int
default:"-1"
Local rank for distributed training (set automatically)
bool
default:"False"
Find unused parameters in DDP: