gemma3-4B-sanskrit-ocr-lora
This model is a fine-tuned version of google/gemma-3-4b-it on the diabolic6045/sanskrit-ocr-parallel-corpus-chat-template dataset. This data is converted from snskrt/Sanskrit_OCR_Parallel_Corpus by Sanskrit Datasets. It achieves the following results on the evaluation set:
- Loss: 3.3256
- Memory/max Mem Active(gib): 11.52
- Memory/max Mem Allocated(gib): 11.52
- Memory/device Mem Reserved(gib): 12.26
Model description
#Todo
Training
Training Dataset
The model was trained on the diabolic6045/sanskrit-ocr-parallel-corpus-chat-template dataset, which contains Sanskrit text images paired with their corresponding transcriptions. The dataset was converted from the original snskrt/Sanskrit_OCR_Parallel_Corpus and formatted with chat templates for vision-language training.
Training procedure
Training hyperparameters
The following hyperparameters were used during training:
- learning_rate: 0.0002
- train_batch_size: 4
- eval_batch_size: 4
- seed: 42
- distributed_type: multi-GPU
- num_devices: 2
- gradient_accumulation_steps: 4
- total_train_batch_size: 32
- total_eval_batch_size: 8
- optimizer: Use OptimizerNames.ADAMW_BNB 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: 55
- training_steps: 553
Training results
| Training Loss | Epoch | Step | Validation Loss | Mem Active(gib) | Mem Allocated(gib) | Mem Reserved(gib) |
|---|---|---|---|---|---|---|
| No log | 0 | 0 | 8.3469 | 9.34 | 9.34 | 9.42 |
| 3.5606 | 1.0 | 185 | 3.4639 | 11.52 | 11.52 | 12.26 |
| 2.839 | 2.0 | 370 | 3.3256 | 11.52 | 11.52 | 12.26 |
See axolotl config
axolotl version: 0.12.2
base_model: google/gemma-3-4b-it
# load_in_4bit: true # Disabled for LoRA training
# gemma3 doesn't seem to play nice with ddp
ddp_find_unused_parameters: true
chat_template: gemma3
eot_tokens:
- <end_of_turn>
datasets:
- path: sanskrit_multimodal_train.json
type: chat_template
field_messages: messages
dataset_prepared_path: last_run_prepared
val_set_size: 0.01
output_dir: ./outputs/out-gemma3-4B
adapter: lora
lora_model_dir:
sequence_len: 2048
sample_packing: false
lora_r: 32
lora_alpha: 16
lora_dropout: 0.05
lora_target_modules: 'model.language_model.layers.[\d]+.(mlp|cross_attn|self_attn).(up|down|gate|q|k|v|o)_proj'
wandb_project: Sanskrit-OCR
wandb_entity:
wandb_watch:
wandb_name: gemma3-4B-sanskrit-ocr
wandb_log_model:
hub_model_id: diabolic6045/gemma3-4B-sanskrit-ocr-lora
gradient_accumulation_steps: 4
micro_batch_size: 4
num_epochs: 3
optimizer: adamw_bnb_8bit
lr_scheduler: cosine
learning_rate: 0.0002
bf16: true
fp16:
tf32: true
gradient_checkpointing: true
gradient_checkpointing_kwargs:
use_reentrant: false
logging_steps: 1
flash_attention: true
eager_attention:
warmup_ratio: 0.1
evals_per_epoch: 1
saves_per_epoch: 1
weight_decay: 0.0
# save_first_step: true # uncomment this to validate checkpoint saving works with your config
Framework versions
- PEFT 0.17.0
- Transformers 4.55.2
- Pytorch 2.7.1+cu128
- Datasets 4.0.0
- Tokenizers 0.21.2
- Downloads last month
- 26