Some checks failed
ci-cd / build-axolotl (<nil>, 128, 12.8.1, linux/amd64,linux/arm64, 3.11, 2.9.0) (push) Has been cancelled
ci-cd / build-axolotl (<nil>, 128, 12.8.1, linux/amd64,linux/arm64, 3.12, 2.10.0) (push) Has been cancelled
ci-cd / build-axolotl (<nil>, 128, 12.8.1, true, linux/amd64,linux/arm64, 3.11, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.11, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.10.0) (push) Has been cancelled
ci-cd / build-axolotl-uv (<nil>, 128, 12.8.1, linux/amd64,linux/arm64, 3.11, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl-uv (<nil>, 128, 12.8.1, linux/amd64,linux/arm64, 3.12, 2.10.0) (push) Has been cancelled
ci-cd / build-axolotl-uv (<nil>, 128, 12.8.1, true, linux/amd64,linux/arm64, 3.12, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.11, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.10.0) (push) Has been cancelled
publish pypi / Create Release (push) Has been cancelled
ci-cd / build-axolotl-cloud (<nil>, 128, 12.8.1, linux/amd64,linux/arm64, 3.11, 2.9.0) (push) Has been cancelled
ci-cd / build-axolotl-cloud (<nil>, 128, 12.8.1, linux/amd64,linux/arm64, 3.12, 2.10.0) (push) Has been cancelled
ci-cd / build-axolotl-cloud (<nil>, 128, 12.8.1, true, linux/amd64,linux/arm64, 3.11, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl-cloud (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.11, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl-cloud (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.10.0) (push) Has been cancelled
ci-cd / build-axolotl-cloud-uv (<nil>, 128, 12.8.1, linux/amd64,linux/arm64, 3.11, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl-cloud-uv (<nil>, 128, 12.8.1, linux/amd64,linux/arm64, 3.12, 2.10.0) (push) Has been cancelled
ci-cd / build-axolotl-cloud-uv (<nil>, 128, 12.8.1, true, linux/amd64,linux/arm64, 3.12, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl-cloud-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.11, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl-cloud-uv (<nil>, 130, 13.0.0, linux/amd64,linux/arm64, 3.12, 2.10.0) (push) Has been cancelled
ci-cd / build-axolotl-cloud-no-tmux (<nil>, 128, 12.8.1, true, 3.11, 2.9.1) (push) Has been cancelled
ci-cd / build-axolotl-cloud-no-tmux (<nil>, 130, 13.0.0, <nil>, 3.11, 2.9.1) (push) Has been cancelled
publish pypi / Upload release to PyPI (push) Has been cancelled
* gemma4 support * fixes * chore: lint
105 lines
2.7 KiB
YAML
105 lines
2.7 KiB
YAML
# Gemma 4 26B-A4B MoE QLoRA with ScatterMoE kernels
|
|
#
|
|
# Validated: 50 steps on FineTome-100k, loss 7.4 -> 2.4, single RTX 5090 (32GB)
|
|
#
|
|
# Key notes:
|
|
# - Flash Attention 2 is NOT supported (global_head_dim=512 > FA2 max of 256).
|
|
# Use sdp_attention instead.
|
|
# - Gemma 4 is multimodal (text+vision+audio). For text-only SFT, restrict
|
|
# LoRA to the text backbone via lora_target_linear_modules regex.
|
|
# - MoE experts use `experts_implementation: scattermoe` — Gemma 4 embeds MoE
|
|
# directly in the decoder layer (no SparseMoeBlock), so we register ScatterMoE
|
|
# via the transformers ExpertsInterface.
|
|
# - Expert LoRA targets are `experts.gate_up_proj` / `experts.down_proj`
|
|
# (no `mlp.` prefix, unlike Qwen/Mixtral).
|
|
# - micro_batch_size: 1 fits 2048 seq_len on 32GB GPU with SDP attention.
|
|
# Use micro_batch_size: 4 with 1024 seq_len, or on 48GB+ GPUs.
|
|
|
|
base_model: google/gemma-4-26B-A4B
|
|
|
|
plugins:
|
|
- axolotl.integrations.cut_cross_entropy.CutCrossEntropyPlugin
|
|
- axolotl.integrations.kernels.KernelsPlugin
|
|
- axolotl.integrations.liger.LigerPlugin
|
|
use_kernels: true
|
|
use_scattermoe: true
|
|
experts_implementation: scattermoe
|
|
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-26b-a4b-qlora
|
|
|
|
sequence_len: 2048
|
|
sample_packing: true
|
|
|
|
load_in_4bit: true
|
|
quantize_moe_experts: true
|
|
adapter: qlora
|
|
lora_r: 16
|
|
lora_alpha: 32
|
|
lora_dropout: 0
|
|
|
|
# Restrict LoRA to text backbone only (skip vision/audio encoders).
|
|
# lora_target_modules is intentionally empty — all module targeting is done
|
|
# via regex in lora_target_linear_modules below.
|
|
lora_target_modules: []
|
|
lora_target_linear_modules:
|
|
- language_model\.model\.layers\.\d+\.self_attn\.(q|k|v|o)_proj
|
|
|
|
# MoE expert LoRA (3D Parameter tensors, not nn.Linear)
|
|
lora_target_parameters:
|
|
- experts.gate_up_proj
|
|
- experts.down_proj
|
|
|
|
lora_mlp_kernel: false
|
|
lora_qkv_kernel: false
|
|
lora_o_kernel: false
|
|
|
|
bnb_config_kwargs:
|
|
bnb_4bit_use_double_quant: true
|
|
|
|
wandb_project: gemma4-qlora
|
|
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
|
|
|
|
# FA2 not supported — Gemma4 global_head_dim=512 exceeds FA2 max of 256
|
|
flash_attention: false
|
|
sdp_attention: true
|
|
|
|
warmup_ratio: 0.1
|
|
evals_per_epoch: 4
|
|
saves_per_epoch: 1
|
|
weight_decay: 0.0
|
|
special_tokens:
|