lapp0's picture
End of training
86f60e4 verified
|
raw
history blame
No virus
7.72 kB
---
base_model: HuggingFaceTB/SmolLM-135M
datasets:
- HuggingFaceFW/fineweb
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 [HuggingFaceFW/fineweb](https://huggingface.co/datasets/HuggingFaceFW/fineweb).
<!-- 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
| Metric | distily_smollm_dataset_sweep/logs/dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=20231101.en, dataset_uri=wikimedia_wikipedia, per_device_train_batch_size=8 | distily_smollm_dataset_sweep/logs/dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=None, dataset_uri=distily_filtered_redpajama_en, per_device_train_batch_size=8 | distily_smollm_dataset_sweep/logs/dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=sample-10BT, dataset_uri=HuggingFaceFW_fineweb, per_device_train_batch_size=8 | distily_smollm_dataset_sweep/logs/dataset_max_seq_length=1024, dataset_sample_size=1000000, dataset_subset=sample-10BT, dataset_uri=HuggingFaceFW_fineweb-edu, per_device_train_batch_size=8 | logs/teacher |
| :--- | :--- | :--- | :--- | :--- | :--- |
| tinyArc.acc_norm,none | 0.303 | 0.295 | 0.26 | 0.302 | 0.37 |
| tinyGSM8k.exact_match,flexible-extract | 0.029 | 0.03 | 0.006 | 0.025 | 0.006 |
| tinyGSM8k.exact_match,strict-match | 0.006 | 0.006 | 0.006 | 0.006 | 0.006 |
| tinyHellaswag.acc_norm,none | 0.341 | 0.281 | 0.3 | 0.327 | 0.452 |
| tinyMMLU.acc_norm,none | 0.276 | 0.281 | 0.286 | 0.31 | 0.341 |
| tinyTruthfulQA.acc,none | 0.463 | 0.447 | 0.419 | 0.423 | 0.38 |
| tinyWinogrande.acc_norm,none | 0.466 | 0.436 | 0.492 | 0.46 | 0.509 |
# 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 501,164,413 tokens from the [HuggingFaceFW/fineweb](https://huggingface.co/datasets/HuggingFaceFW/fineweb) dataset.
- Num Samples: `998,000`
- Subset: `sample-10BT`
- 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 0x7205cc5db070>`
- 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: `HuggingFaceFW/fineweb`
- dataset_subset: `sample-10BT`
- dataset_split: `train`
- dataset_column_name: `text`
- dataset_sample_size: `1000000`
- 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