|
--- |
|
license: mit |
|
datasets: |
|
- Slim205/Barka_data_2B |
|
language: |
|
- ar |
|
base_model: |
|
- google/gemma-2-2b-it |
|
--- |
|
|
|
![Alt text](photo.png) |
|
|
|
# Welcome to Barka-2b-it : The best 2B Arabic LLM |
|
|
|
# Motivation : |
|
|
|
The goal of this project was to adapt large language models for the Arabic language and create a new state-of-the-art Arabic LLM. Due to the scarcity of Arabic instruction fine-tuning data, not many LLMs have been trained specifically in Arabic, which is surprising given the large number of Arabic speakers. |
|
Our final model was trained on a high-quality instruction fine-tuning (IFT) dataset, generated synthetically and then evaluated using the Hugging Face Arabic leaderboard. |
|
|
|
# Training : |
|
This model is the 2B version. It was trained for 2 days on 1 A100 GPU using LoRA with a rank of 128, a learning rate of 1e-4, and a cosine learning rate schedule. |
|
|
|
# Evaluation : |
|
My model is now on the Arabic leaderboard. |
|
|
|
| Metric | Slim205/Barka-2b-it | |
|
|----------------------|---------------------| |
|
| Average | 46.98 | |
|
| ACVA | 39.5 | |
|
| AlGhafa | 46.5 | |
|
| MMLU | 37.06 | |
|
| EXAMS | 38.73 | |
|
| ARC Challenge | 35.78 | |
|
| ARC Easy | 36.97 | |
|
| BOOLQ | 73.77 | |
|
| COPA | 50 | |
|
| HELLAWSWAG | 28.98 | |
|
| OPENBOOK QA | 43.84 | |
|
| PIQA | 56.36 | |
|
| RACE | 36.19 | |
|
| SCIQ | 55.78 | |
|
| TOXIGEN | 78.29 | |
|
|
|
Please refer to https://github.com/Slim205/Arabicllm/ for more details. |
|
|
|
# Using the Model |
|
|
|
The model uses `transformers` to generate responses based on the provided inputs. Here’s an example code to use the model: |
|
|
|
```python |
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
from peft import PeftModel |
|
import torch |
|
|
|
model_id = "google/gemma-2-2b-it" |
|
peft_model_id = "Slim205/Barka-2b-it" |
|
|
|
model = AutoModelForCausalLM.from_pretrained(model_id).to("cuda") |
|
tokenizer = AutoTokenizer.from_pretrained("Slim205/Barka-2b-it") |
|
model1 = PeftModel.from_pretrained(model, peft_model_id) |
|
|
|
input_text = "ما هي عاصمة تونس؟" # "What is the capital of Tunisia?" |
|
chat = [ |
|
{ "role": "user", "content": input_text }, |
|
] |
|
|
|
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True) |
|
inputs = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt") |
|
outputs = model.generate( |
|
input_ids=inputs.to(model.device), |
|
max_new_tokens=32, |
|
top_p=0.9, |
|
do_sample=True |
|
) |
|
|
|
print(tokenizer.decode(outputs[0], skip_special_tokens=True)) |
|
``` |
|
``` |
|
user |
|
ما هي عاصمة تونس؟ |
|
model |
|
عاصمة تونس هي تونس. يشار إليها عادة باسم مدينة تونس. المدينة لديها حوالي 2،500،000 نسمة |
|
``` |
|
|
|
# Feel free to use this model and send me your feedback. |
|
# Together, we can advance Arabic LLM development! |