base_model: google/gemma-4-31B plugins: - axolotl.integrations.cut_cross_entropy.CutCrossEntropyPlugin - axolotl.integrations.liger.LigerPlugin torch_compile: false liger_layer_norm: true liger_rope: true liger_rms_norm: true liger_glu_activation: true liger_rms_norm_gated: true strict: false chat_template: gemma4 datasets: - path: mlabonne/FineTome-100k type: chat_template split: train[:10%] field_messages: conversations message_property_mappings: role: from content: value val_set_size: 0.05 output_dir: ./outputs/gemma4-31b-qlora sequence_len: 2048 sample_packing: true load_in_4bit: true adapter: qlora lora_r: 16 lora_alpha: 32 lora_dropout: 0 # Restrict LoRA to text backbone only (skip vision/audio encoders) # using regex to match only the text decoder attention projections. lora_target_modules: 'model.language_model.layers.[\d]+.(_checkpoint_wrapped_module.)?(mlp|self_attn).(up|down|gate|q|k|v|o)_proj' bnb_config_kwargs: bnb_4bit_use_double_quant: true wandb_project: wandb_entity: wandb_watch: wandb_name: wandb_log_model: gradient_accumulation_steps: 4 micro_batch_size: 1 num_epochs: 1 optimizer: adamw_torch_8bit lr_scheduler: cosine learning_rate: 0.0002 bf16: auto tf32: true gradient_checkpointing: true activation_offloading: true logging_steps: 1 # FA not supported sdp_attention: true warmup_ratio: 0.1 evals_per_epoch: 4 saves_per_epoch: 1 weight_decay: 0.0 special_tokens: