--- base_model: HuggingFaceTB/SmolLM-135M datasets: - wikimedia/wikipedia library_name: Distily license: creativeml-openrail-m tags: - generated_from_trainer - Distily base_model_relation: finetune model-index: - name: distily_smollm_dataset_sweep results: [] --- # Summary Distilled with [Distily](https://github.com/lapp0/distily) library using teacher model [HuggingFaceTB/SmolLM-135M](https://huggingface.co/HuggingFaceTB/SmolLM-135M) on dataset [wikimedia/wikipedia](https://huggingface.co/datasets/wikimedia/wikipedia). # Model Architecture: - **Architecture**: `LlamaForCausalLM` - **Total Parameters**: 81,413,568 - **Data Type (dtype)**: torch.float32 - **Model Size**: 0.30 GB
Student Model Details ``` LlamaForCausalLM( (model): LlamaModel( (embed_tokens): Embedding(49152, 576) (layers): ModuleList( (0-14): 15 x LlamaDecoderLayer( (self_attn): LlamaSdpaAttention( (q_proj): Linear(in_features=576, out_features=576, bias=False) (k_proj): Linear(in_features=576, out_features=192, bias=False) (v_proj): Linear(in_features=576, out_features=192, bias=False) (o_proj): Linear(in_features=576, out_features=576, bias=False) (rotary_emb): LlamaRotaryEmbedding() ) (mlp): LigerSwiGLUMLP( (gate_proj): Linear(in_features=576, out_features=1536, bias=False) (up_proj): Linear(in_features=576, out_features=1536, bias=False) (down_proj): Linear(in_features=1536, out_features=576, bias=False) ) (input_layernorm): LigerRMSNorm((576,), eps=1e-05, offset=0.0) (post_attention_layernorm): LigerRMSNorm((576,), eps=1e-05, offset=0.0) ) ) (norm): LigerRMSNorm((576,), eps=1e-05, offset=0.0) (rotary_emb): LlamaRotaryEmbedding() ) (lm_head): Linear(in_features=576, out_features=49152, bias=False) ) ```

# Benchmark Metrics Comparison - student 0: `dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=20231101.en, dataset_uri=wikimedia_wikipedia, per_device_train_batch_size=8` - student 1: `dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=None, dataset_uri=distily_filtered_redpajama_en, per_device_train_batch_size=8` - student 2: `dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=sample-10BT, dataset_uri=HuggingFaceFW_fineweb-edu, per_device_train_batch_size=8` - student 3: `dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=sample-10BT, dataset_uri=HuggingFaceFW_fineweb, per_device_train_batch_size=8` - student 4: `dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=sample-10BT, dataset_uri=HuggingFaceFW_fineweb, learning_rate=6e-05, per_device_train_batch_size=8` - student 5: `dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=sample-10BT, dataset_uri=HuggingFaceFW_fineweb-edu, learning_rate=6e-05, per_device_train_batch_size=8` - student 6: `dataset_max_seq_length=1024, dataset_sample_size=4000000, dataset_subset=20231101.en, dataset_uri=wikimedia_wikipedia, per_device_train_batch_size=8` | Metric | teacher | student 0 | student 1 | student 2 | student 3 | student 4 | student 5 | student 6 | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | tinyArc.acc_norm,none | 0.37 | 0.303 | 0.295 | 0.302 | 0.26 | 0.269 | **0.319** | 0.286 | | tinyGSM8k.exact_match,flexible-extract | 0.006 | 0.029 | **0.03** | 0.025 | 0.006 | 0.006 | 0.012 | 0.012 | | tinyGSM8k.exact_match,strict-match | 0.006 | **0.006** | **0.006** | **0.006** | **0.006** | **0.006** | **0.006** | **0.006** | | tinyHellaswag.acc_norm,none | 0.452 | 0.341 | 0.281 | 0.327 | 0.3 | 0.303 | 0.301 | **0.364** | | tinyMMLU.acc_norm,none | 0.341 | 0.276 | 0.281 | **0.31** | 0.286 | 0.279 | 0.292 | 0.295 | | tinyTruthfulQA.acc,none | 0.38 | **0.463** | 0.447 | 0.423 | 0.419 | 0.421 | 0.427 | 0.44 | | tinyWinogrande.acc_norm,none | 0.509 | 0.466 | 0.436 | 0.46 | **0.492** | 0.473 | 0.417 | 0.439 | # Resource Usage - Max Train VRAM Use: 13.1269 GB - Available VRAM: 23.4329 GB - GPUs: - 1x NVIDIA GeForce RTX 4090 - CPUs: 64 - CPU Memory: 251.7299 GB - CPU Memory Bandwidth: 1600 GB/s # Distillation (Teacher -> Student) Architecture Difference: - **Architecture**: `LlamaForCausalLM` -> `LlamaForCausalLM` - **Total Parameters**: 134,515,008 -> 81,413,568 - **Data Type (dtype)**: torch.float32 -> torch.float32 - **Model Size**: 0.25 GB -> 0.30 GB
Module Diff Details ```diff --- teacher model modules +++ student model modules @@ -2,7 +2,7 @@ (model): LlamaModel( (embed_tokens): Embedding(49152, 576) (layers): ModuleList( - (0-29): 30 x LlamaDecoderLayer( + (0-14): 15 x LlamaDecoderLayer( (self_attn): LlamaSdpaAttention( (q_proj): Linear(in_features=576, out_features=576, bias=False) (k_proj): Linear(in_features=576, out_features=192, bias=False) @@ -10,17 +10,16 @@ (o_proj): Linear(in_features=576, out_features=576, bias=False) (rotary_emb): LlamaRotaryEmbedding() ) - (mlp): LlamaMLP( + (mlp): LigerSwiGLUMLP( (gate_proj): Linear(in_features=576, out_features=1536, bias=False) (up_proj): Linear(in_features=576, out_features=1536, bias=False) (down_proj): Linear(in_features=1536, out_features=576, bias=False) - (act_fn): SiLU() ) - (input_layernorm): LlamaRMSNorm((576,), eps=1e-05) - (post_attention_layernorm): LlamaRMSNorm((576,), eps=1e-05) + (input_layernorm): LigerRMSNorm((576,), eps=1e-05, offset=0.0) + (post_attention_layernorm): LigerRMSNorm((576,), eps=1e-05, offset=0.0) ) ) - (norm): LlamaRMSNorm((576,), eps=1e-05) + (norm): LigerRMSNorm((576,), eps=1e-05, offset=0.0) (rotary_emb): LlamaRotaryEmbedding() ) (lm_head): Linear(in_features=576, out_features=49152, bias=False) ```

# Train Dataset Trained on 1,857,293,914 tokens from the [wikimedia/wikipedia](https://huggingface.co/datasets/wikimedia/wikipedia) dataset. - Num Samples: `3,992,000` - Subset: `20231101.en` - Split: `train` # Training Objective ``` DistillationObjective( logits_loss_component=LossComponent( weight=1, loss_fn='kl' ), hs_loss_component=LossComponent( weight=0 ), attn_loss_component=LossComponent( weight=0 ) ) ``` # Hyperparameters The following hyperparameters were used during training:
Expand - learning_rate: `0.0001` - train_batch_size: `8` - eval_batch_size: `4` - seed: `42` - optimizer: `Adam with betas=(0.9,0.999) and epsilon=1e-08` - lr_scheduler_type: `polynomial` - lr_scheduler_warmup_ratio: `0.1` - num_epochs: `1.0` - distillation_objective: `DistillationObjective( logits_loss_component=LossComponent( weight=1, loss_fn='kl' ), hs_loss_component=LossComponent( weight=0 ), attn_loss_component=LossComponent( weight=0 ) )` - lr_scheduler: `` - student_model_name_or_path: `None` - student_config_name_or_path: `None` - student_model_config: `{'num_hidden_layers': 15}` - reinitialize_weights: `None` - copy_teacher_modules: `[('lm_head', False)]` - student_model_as_bitnet: `False` - student_use_liger_kernel: `True` - teacher_model_name_or_path: `HuggingFaceTB/SmolLM-135M` - teacher_load_in_8bit: `False` - teacher_load_in_4bit: `False` - dataset_uri: `wikimedia/wikipedia` - dataset_subset: `20231101.en` - dataset_split: `train` - dataset_column_name: `text` - dataset_sample_size: `4000000` - dataset_max_seq_length: `1024` - dataset_test_size: `0.002` - dataset_shuffle: `False` - dataset_shuffle_seed: `42` - dataset_trust_remote_code: `False` - gradient_accumulation_steps: `1` - weight_decay: `0.0` - max_grad_norm: `1.0` - warmup_ratio: `0.1` - warmup_steps: `0` - gradient_checkpointing: `True`

# Framework Versions - Distily 0.5.0 - Transformers 4.45.0.dev0 - Pytorch 2.5.0.dev20240910+cu121 - Datasets 2.21.0