gguf axolotl generated_from_trainer base_model:meta-llama/Meta-Llama-3-8B base_model:quantized:meta-llama/Meta-Llama-3-8B license:llama3 endpoints_compatible region:us
---
base_model: meta-llama/Meta-Llama-3-8B
license: llama3
tags:
- axolotl
- generated_from_trainer
model-index:
- name: Egyptian-Arabic-Translator-Llama-3-8B
  results: []
---

[<img src="https://raw.githubusercontent.com/OpenAccess-AI-Collective/axolotl/main/image/axolotl-badge-web.png" alt="Built with Axolotl" width="200" height="32"/>](https://github.com/OpenAccess-AI-Collective/axolotl)
<details><summary>See axolotl config</summary>

axolotl version: `0.4.1`
```yaml
base_model: meta-llama/Meta-Llama-3-8B
model_type: LlamaForCausalLM
tokenizer_type: AutoTokenizer

load_in_8bit: true
load_in_4bit: false
strict: false

datasets:
  - path: translation-dataset-v3-train.hf
    type: alpaca
    train_on_split: train

test_datasets:
  - path: translation-dataset-v3-test.hf
    type: alpaca
    split: train

dataset_prepared_path: ./last_run_prepared
output_dir: ./llama_3_translator
hub_model_id: ahmedsamirio/llama_3_translator_v3


sequence_len: 2048
sample_packing: true
pad_to_sequence_len: true
eval_sample_packing: false

adapter: lora
lora_r: 32
lora_alpha: 16
lora_dropout: 0.05
lora_target_linear: true
lora_fan_in_fan_out:
lora_target_modules:
  - gate_proj
  - down_proj
  - up_proj
  - q_proj
  - v_proj
  - k_proj
  - o_proj

wandb_project: en_eg_translator
wandb_entity: ahmedsamirio
wandb_name: llama_3_en_eg_translator_v3

gradient_accumulation_steps: 4
micro_batch_size: 2
num_epochs: 2
optimizer: paged_adamw_32bit
lr_scheduler: cosine
learning_rate: 2e-5

train_on_inputs: false
group_by_length: false
bf16: auto
fp16:
tf32: false

gradient_checkpointing: true
early_stopping_patience:
resume_from_checkpoint:
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true

warmup_steps: 10
evals_per_epoch: 10
eval_table_size:
eval_max_new_tokens: 128
saves_per_epoch: 1
debug:
deepspeed:
weight_decay: 0.0
fsdp:
fsdp_config:
special_tokens:
  pad_token: <|end_of_text|>
```

</details><br>

[<img src="https://raw.githubusercontent.com/wandb/assets/main/wandb-github-badge-28.svg" alt="Visualize in Weights & Biases" width="200" height="32"/>](https://wandb.ai/ahmedsamirio/en_eg_translator/runs/hwzxxt0r)

# Egyptian Arabic Translator Llama-3 8B

This model is a fine-tuned version of [meta-llama/Meta-Llama-3-8B](https://huggingface.co/meta-llama/Meta-Llama-3-8B) on the [ahmedsamirio/oasst2-9k-translation](https://huggingface.co/datasets/ahmedsamirio/oasst2-9k-translation) dataset.

## Model description

This model is an attempt to create a small translation model from English to Egyptian Arabic.

## Intended uses & limitations

- Translating instruction finetuning and text generation datasets

## Inference code

```python
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline

tokenizer = AutoTokenizer.from_pretrained("ahmedsamirio/Egyptian-Arabic-Translator-Llama-3-8B")
model = AutoModelForCausalLM.from_pretrained("ahmedsamirio/Egyptian-Arabic-Translator-Llama-3-8B")
pipe = pipeline(task='text-generation', model=model, tokenizer=tokenizer)


en_template = """<|begin_of_text|>Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.

### Instruction:
Translate the following text to English.

### Input:
{text}

### Response:
"""

ar_template = """<|begin_of_text|>Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.

### Instruction:
Translate the following text to Arabic.

### Input:
{text}

### Response:
"""

eg_template = """<|begin_of_text|>Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.

### Instruction:
Translate the following text to Egyptian Arabic.

### Input:
{text}

### Response:
"""

text = """Some habits are known as "keystone habits," and these influence the formation of other habits. \
For example, identifying as the type of person who takes care of their body and is in the habit of exercising regularly, \
can also influence eating better and using credit cards less. In business, \
safety can be a keystone habit that influences other habits that result in greater productivity.[17]"""

ar_text = pipe(ar_template.format(text=text), 
               max_new_tokens=256, 
               do_sample=True, 
               temperature=0.3, 
               top_p=0.5)


eg_text = pipe(eg_template.format(text=ar_text), 
               max_new_tokens=256, 
               do_sample=True, 
               temperature=0.3, 
               top_p=0.5)

print("Original Text:" text)
print("\nArabic Translation:", ar_text)
print("\nEgyptian Arabic Translation:", eg_text)
```

## Training and evaluation data

[ahmedsamirio/oasst2-9k-translation](https://huggingface.co/datasets/ahmedsamirio/oasst2-9k-translation)

## Training procedure

### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 2e-05
- train_batch_size: 2
- eval_batch_size: 2
- seed: 42
- gradient_accumulation_steps: 4
- total_train_batch_size: 8
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: cosine
- lr_scheduler_warmup_steps: 10
- num_epochs: 2

### Training results

| Training Loss | Epoch  | Step | Validation Loss |
|:-------------:|:------:|:----:|:---------------:|
| 0.9661        | 0.0008 | 1    | 1.3816          |
| 0.5611        | 0.1002 | 123  | 0.9894          |
| 0.6739        | 0.2004 | 246  | 0.8820          |
| 0.5168        | 0.3006 | 369  | 0.8229          |
| 0.5582        | 0.4008 | 492  | 0.7931          |
| 0.552         | 0.5010 | 615  | 0.7814          |
| 0.5129        | 0.6012 | 738  | 0.7591          |
| 0.5887        | 0.7014 | 861  | 0.7444          |
| 0.6359        | 0.8016 | 984  | 0.7293          |
| 0.613         | 0.9018 | 1107 | 0.7179          |
| 0.5671        | 1.0020 | 1230 | 0.7126          |
| 0.4956        | 1.0847 | 1353 | 0.7034          |
| 0.5055        | 1.1849 | 1476 | 0.6980          |
| 0.4863        | 1.2851 | 1599 | 0.6877          |
| 0.4538        | 1.3853 | 1722 | 0.6845          |
| 0.4362        | 1.4855 | 1845 | 0.6803          |
| 0.4291        | 1.5857 | 1968 | 0.6834          |
| 0.6208        | 1.6859 | 2091 | 0.6830          |
| 0.582         | 1.7862 | 2214 | 0.6781          |
| 0.5001        | 1.8864 | 2337 | 0.6798          |


### Framework versions

- PEFT 0.11.1
- Transformers 4.42.3
- Pytorch 2.1.2+cu118
- Datasets 2.19.1
- Tokenizers 0.19.1