ArzEn-LLM
Collection
Models trained on AraZn Dataset
โข
16 items
โข
Updated
โข
10
Just install peft, transformers and pytorch first.
pip install peft transformers torch
Then login with your huggingface token to get access to base models
huggingface-cli login --token <YOUR_HF_TOKEN>
Then load the model.
from peft import PeftConfig, PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
peft_model_id = "ahmedheakl/arazn-gemma1.1-7B-eng-extra"
peft_config = PeftConfig.from_pretrained(peft_model_id)
base_model_name = peft_config.base_model_name_or_path
base_model = AutoModelForCausalLM.from_pretrained(base_model_name)
model = PeftModel.from_pretrained(base_model, peft_model_id)
model = model.to("cuda")
tokenizer = AutoTokenizer.from_pretrained(peft_model_id)
Then do inference
import torch
raw_prompt = """<bos><start_of_turn>user
Translate the following code-switched Arabic-English-mixed text to English only.
{source}<end_of_turn>
<start_of_turn>model
"""
def inference(prompt) -> str:
prompt = raw_prompt.format(source=prompt)
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
generated_ids = model.generate(
**inputs,
use_cache=True,
num_return_sequences=1,
max_new_tokens=100,
do_sample=True,
num_beams=1,
temperature=0.7,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.pad_token_id,
)
outputs = tokenizer.batch_decode(generated_ids)[0]
torch.cuda.empty_cache()
torch.cuda.synchronize()
return outputs.split("<start_of_turn>model\n")[-1].split("<end_of_turn>")[0]
print(inference("ุฃูุง ุฃุญุจ ุงูbanana")) # I like bananas.
Please see paper & code for more information:
BibTeX:
@article{heakl2024arzen,
title={ArzEn-LLM: Code-Switched Egyptian Arabic-English Translation and Speech Recognition Using LLMs},
author={Heakl, Ahmed and Zaghloul, Youssef and Ali, Mennatullah and Hossam, Rania and Gomaa, Walid},
journal={arXiv preprint arXiv:2406.18120},
year={2024}
}