|
--- |
|
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). |
|
|
|
<!-- This model card has been generated automatically according to the information the Trainer had access to. You |
|
should probably proofread and complete it, then remove this comment. |
|
|
|
# Model description |
|
|
|
More information needed |
|
|
|
# Intended uses & limitations |
|
|
|
More information needed |
|
--> |
|
|
|
# Model Architecture: |
|
- **Architecture**: `LlamaForCausalLM` |
|
- **Total Parameters**: 81,413,568 |
|
- **Data Type (dtype)**: torch.float32 |
|
- **Model Size**: 0.30 GB |
|
|
|
<details> |
|
<summary>Student Model Details</summary> |
|
|
|
``` |
|
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) |
|
) |
|
``` |
|
|
|
</details> |
|
<br/> |
|
|
|
# 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 |
|
|
|
<details> |
|
<summary>Module Diff Details</summary> |
|
|
|
```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) |
|
|
|
``` |
|
|
|
</details> |
|
<br/> |
|
|
|
# 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: |
|
|
|
<details> |
|
<summary>Expand</summary> |
|
|
|
- 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: `<torch.optim.lr_scheduler.LambdaLR object at 0x766de39d92d0>` |
|
- 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` |
|
|
|
</details> |
|
<br/> |
|
|
|
|
|
# Framework Versions |
|
- Distily 0.5.0 |
|
- Transformers 4.45.0.dev0 |
|
- Pytorch 2.5.0.dev20240910+cu121 |
|
- Datasets 2.21.0 |
|
|