Skip to main content

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 Face TrainingArguments 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 decay
  • cosine: Cosine annealing
  • constant: 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 AdamW
  • adamw_hf: Hugging Face AdamW
  • adafactor: 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: Every save_steps
  • epoch: Every epoch
  • no: 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: Every eval_steps
  • epoch: Every epoch
  • no: 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:
  • tensorboard
  • wandb
  • none

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:

Complete Example