See axolotl config
axolotl version: 0.11.0
# Name 0713-sft_query_generation-qwen3_8b_base
# axolotl train red_team_agent/run/t0713/sft_query_generation-qwen3_8b_base.yaml
base_model: Qwen/Qwen3-8B-Base
model_type: AutoModelForCausalLM
tokenizer_type: AutoTokenizer
trust_remote_code: false
# --- Dataset Configuration ---
datasets:
- path: nate-rahn/0713-user_query_data-query_sft
type: chat_template # Use the chat_template processing strategy
# --- Custom Template & Role Mapping ---
chat_template: chatml # Specify we are using a custom jinja template below
field_messages: messages # Assumes your dataset has a "messages" key with a list of dicts
message_property_mappings: # Assumes each dict in the list has "role" and "content" keys
role: role
content: content
roles: # Define the roles expected in your dataset for mapping
user: ["user"] # Map "user" role in data to internal "user"
assistant: ["assistant"] # Map "assistant" role in data to internal "assistant"
system: ["system"] # Map "system" role in data to internal "system"
# --- Training Target ---
roles_to_train: ["assistant"]
train_on_eos: turn # Train on the EOS token at the end of each 'user' turn
dataset_prepared_path: /scratch/tmp/0713_query_sft/last_run_prepared
dataset_processes: 128
# --- Training Hyperparameters ---
sequence_len: 4096 # Adjust based on your dataset and GPU memory
sample_packing: true # Pack multiple sequences into one example for efficiency
eval_sample_packing: true
pad_to_sequence_len: true # Pad sequences to sequence_len
# Full Parameter Finetuning (No adapter specified)
# adapter: # This is intentionally left blank/removed for full finetuning
# Performance & Precision (H100s excel with bf16)
bf16: true
tf32: true
flash_attention: true # for qwen
# Batching (Adjust based on GPU memory)
# Effective global batch size = micro_batch_size * gradient_accumulation_steps * num_gpus (4)
# Start low for full finetuning, e.g., 1 * 16 * 4 = 64
micro_batch_size: 2
gradient_accumulation_steps: 32
eval_batch_size: 16 # Can often be slightly higher than micro_batch_size
# Optimizer & Scheduler
optimizer: adamw_torch_fused # Good choice for newer GPUs
learning_rate: 1e-5 # Common starting point for full SFT
weight_decay: 0.01
lr_scheduler: cosine # Standard scheduler
warmup_steps: 50
max_grad_norm: 1.0
# Training Duration & Evaluation/Saving
num_epochs: 1 # Train for 1 epoch as requested
val_set_size: 0.001
logging_steps: 1
evals_per_epoch: 20
saves_per_epoch: 2 # Save 2 times per epoch
save_total_limit: 1 # Keep only the last 1 checkpoints
# Memory Saving
# gradient_checkpointing: true # Essential for full finetuning
# gradient_checkpointing_kwargs:
# use_reentrant: false # Prefer non-reentrant if possible
# --- FSDP Configuration (for 4xH100) ---
fsdp:
- full_shard
- auto_wrap
fsdp_config:
fsdp_offload_params: false # Should not be needed with H100 VRAM
fsdp_sync_module_states: true # Important for correctness
fsdp_use_orig_params: false # Recommended for memory saving with FSDP
fsdp_state_dict_type: SHARDED_STATE_DICT # Options: FULL_STATE_DICT or SHARDED_STATE_DICT (saves disk space)
fsdp_transformer_layer_cls_to_wrap: 'Qwen3DecoderLayer'
fsdp_activation_checkpointing: true # Alternative way to enable activation checkpointing for FSDP
# --- Special Tokens ---
# Define based on your custom template's terminators. Qwen already uses <|im_end|>
special_tokens:
eos_token: "<|im_end|>"
# --- Logging & Saving ---
output_dir: /scratch/out/red-team-agent/runs/0713-sft_query_generation-qwen3_8b_base # Local output directory
# W&B Logging
wandb_project: "red-team-agent" # Name your W&B project
wandb_entity: "nate" # IMPORTANT: Replace with your W&B username or team name
wandb_name: "0713-sft_query_generation-qwen3_8b_base" # Descriptive run name
# wandb_log_model: "checkpoint" # Log model checkpoints to W&B Artifacts
# Hugging Face Hub Upload
hub_model_id: "nate-rahn/0713-sft_query_generation-qwen3_8b_base" # IMPORTANT: Replace with your desired HF repo ID
hub_strategy: "end" # Push checkpoints to the Hub (`"end"` pushes only the final model)
hf_use_auth_token: true # Required for pushing to the Hub (ensure you're logged in)
# --- Misc ---
seed: 42
0713-sft_query_generation-qwen3_8b_base
This model is a fine-tuned version of Qwen/Qwen3-8B-Base on the nate-rahn/0713-user_query_data-query_sft dataset. It achieves the following results on the evaluation set:
- Loss: 0.8750
Model description
More information needed
Intended uses & limitations
More information needed
Training and evaluation data
More information needed
Training procedure
Training hyperparameters
The following hyperparameters were used during training:
- learning_rate: 1e-05
- train_batch_size: 2
- eval_batch_size: 16
- seed: 42
- distributed_type: multi-GPU
- num_devices: 8
- gradient_accumulation_steps: 32
- total_train_batch_size: 512
- total_eval_batch_size: 128
- optimizer: Use OptimizerNames.ADAMW_TORCH_FUSED with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
- lr_scheduler_type: cosine
- lr_scheduler_warmup_steps: 50
- training_steps: 1521
Training results
| Training Loss | Epoch | Step | Validation Loss |
|---|---|---|---|
| No log | 0 | 0 | 1.9164 |
| 1.4395 | 0.0506 | 77 | 1.4450 |
| 1.2841 | 0.1012 | 154 | 1.3080 |
| 1.1829 | 0.1518 | 231 | 1.2192 |
| 1.1489 | 0.2024 | 308 | 1.1554 |
| 1.0528 | 0.2531 | 385 | 1.1048 |
| 1.0585 | 0.3037 | 462 | 1.0644 |
| 0.9879 | 0.3543 | 539 | 1.0277 |
| 0.9572 | 0.4049 | 616 | 0.9978 |
| 0.9898 | 0.4555 | 693 | 0.9730 |
| 0.9209 | 0.5061 | 770 | 0.9509 |
| 0.9304 | 0.5567 | 847 | 0.9313 |
| 0.9236 | 0.6073 | 924 | 0.9154 |
| 0.8525 | 0.6579 | 1001 | 0.9032 |
| 0.8546 | 0.7086 | 1078 | 0.8929 |
| 0.8356 | 0.7592 | 1155 | 0.8858 |
| 0.8217 | 0.8098 | 1232 | 0.8804 |
| 0.8625 | 0.8604 | 1309 | 0.8772 |
| 0.8668 | 0.9110 | 1386 | 0.8756 |
| 0.8557 | 0.9616 | 1463 | 0.8750 |
Framework versions
- Transformers 4.53.1
- Pytorch 2.6.0+cu126
- Datasets 3.6.0
- Tokenizers 0.21.2
- Downloads last month
- 21
Model tree for nate-rahn/0713-sft_query_generation-qwen3_8b_base
Base model
Qwen/Qwen3-8B-Base