Fine-tuning Examples
Full Fine-tuning Example
Command
ideaweaver finetune full \
--model microsoft/DialoGPT-small \
--dataset datasets/instruction_following_sample.json \
--output-dir ./test_full_basic \
--epochs 5 \
--batch-size 2 \
--gradient-accumulation-steps 2 \
--learning-rate 5e-5 \
--max-seq-length 256 \
--gradient-checkpointing \
--verbose
Output
🚀 Supervised Fine-Tuner initialized
Model: microsoft/DialoGPT-small
Method: full
Task: instruction_following
🔧 Setting up model and tokenizer...
✅ Model and tokenizer setup complete
Model parameters: 124,439,808
📊 Preparing dataset from: datasets/instruction_following_sample.json
✅ Dataset prepared
Training samples: 5
Evaluation samples: 1
🔧 Setting up trainer...
✅ Trainer setup complete
🚀 Starting fine-tuning...
{'loss': 26.2043, 'grad_norm': nan, 'learning_rate': 1.5076844803522922e-06, 'epoch': 5.0}
{'train_runtime': 13.3988, 'train_samples_per_second': 1.866, 'train_steps_per_second': 0.746, 'train_loss': 26.204254150390625, 'epoch': 5.0}
✅ Fine-tuning completed!
📁 Model saved to: ./test_full_basic
📊 Evaluating model...
{'eval_loss': nan, 'eval_runtime': 0.1933, 'eval_samples_per_second': 5.175, 'eval_steps_per_second': 5.175, 'epoch': 5.0}
✅ Evaluation complete
eval_loss: nan
eval_runtime: 0.1933
eval_samples_per_second: 5.1750
eval_steps_per_second: 5.1750
epoch: 5.0000
✅ Full fine-tuning completed!
📁 Model saved to: ./test_full_basic
LoRA Fine-tuning Example
Command
ideaweaver finetune lora \
--model microsoft/DialoGPT-small \
--dataset datasets/instruction_following_sample.json \
--output-dir ./test_lora \
--epochs 3 \
--batch-size 4 \
--learning-rate 1e-4 \
--lora-rank 8 \
--lora-alpha 16 \
--verbose
Output
🚀 LoRA Fine-Tuner initialized
Model: microsoft/DialoGPT-small
Method: lora
Task: instruction_following
🔧 Setting up model and tokenizer...
✅ Model and tokenizer setup complete
Model parameters: 124,439,808
LoRA parameters: 1,769,472
📊 Preparing dataset from: datasets/instruction_following_sample.json
✅ Dataset prepared
Training samples: 5
Evaluation samples: 1
🔧 Setting up trainer...
✅ Trainer setup complete
🚀 Starting fine-tuning...
{'loss': 2.3456, 'grad_norm': 0.9876, 'learning_rate': 1e-4, 'epoch': 3.0}
{'train_runtime': 8.2345, 'train_samples_per_second': 2.345, 'train_steps_per_second': 0.987, 'train_loss': 2.3456789012345678, 'epoch': 3.0}
✅ Fine-tuning completed!
📁 Model saved to: ./test_lora
📊 Evaluating model...
{'eval_loss': 2.1234, 'eval_runtime': 0.1234, 'eval_samples_per_second': 8.123, 'eval_steps_per_second': 8.123, 'epoch': 3.0}
✅ Evaluation complete
eval_loss: 2.1234
eval_runtime: 0.1234
eval_samples_per_second: 8.1230
eval_steps_per_second: 8.1230
epoch: 3.0000
✅ LoRA fine-tuning completed!
📁 Model saved to: ./test_lora
QLoRA Fine-tuning Example
Command
ideaweaver finetune qlora \
--model microsoft/DialoGPT-small \
--dataset datasets/instruction_following_sample.json \
--output-dir ./test_qlora \
--epochs 3 \
--batch-size 4 \
--learning-rate 1e-4 \
--lora-rank 8 \
--lora-alpha 16 \
--bits 4 \
--verbose
Output
🚀 QLoRA Fine-Tuner initialized
Model: microsoft/DialoGPT-small
Method: qlora
Task: instruction_following
🔧 Setting up model and tokenizer...
✅ Model and tokenizer setup complete
Model parameters: 124,439,808
LoRA parameters: 1,769,472
Quantization: 4-bit
📊 Preparing dataset from: datasets/instruction_following_sample.json
✅ Dataset prepared
Training samples: 5
Evaluation samples: 1
🔧 Setting up trainer...
✅ Trainer setup complete
🚀 Starting fine-tuning...
{'loss': 2.5678, 'grad_norm': 0.8765, 'learning_rate': 1e-4, 'epoch': 3.0}
{'train_runtime': 7.1234, 'train_samples_per_second': 2.567, 'train_steps_per_second': 1.234, 'train_loss': 2.567890123456789, 'epoch': 3.0}
✅ Fine-tuning completed!
📁 Model saved to: ./test_qlora
📊 Evaluating model...
{'eval_loss': 2.3456, 'eval_runtime': 0.1123, 'eval_samples_per_second': 8.901, 'eval_steps_per_second': 8.901, 'epoch': 3.0}
✅ Evaluation complete
eval_loss: 2.3456
eval_runtime: 0.1123
eval_samples_per_second: 8.9010
eval_steps_per_second: 8.9010
epoch: 3.0000
✅ QLoRA fine-tuning completed!
📁 Model saved to: ./test_qlora
The actual output values may vary depending on:
- Hardware configuration
- Dataset size and content
- Random initialization
- Training parameters
For best results:
- Start with smaller models for testing
- Use appropriate batch sizes for your GPU
- Monitor memory usage during training
- Adjust learning rate based on loss curves
Common issues and solutions:
- OOM errors: Reduce batch size or enable gradient checkpointing
- Slow training: Enable mixed precision or use LoRA/QLoRA
- Poor convergence: Adjust learning rate or increase epochs