SambaLingo-Arabic-Chat is a human aligned chat model trained in Arabic and English. It is trained using direct preference optimization on top the base model SambaLingo-Arabic-Base. The base model adapts Llama-2-7b to Arabic by training on 63 billion tokens from the Arabic split of the Cultura-X dataset. Try This Model at SambaLingo-chat-space.
Please make sure to set use_fast=False when loading the tokenizer.
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat", device_map="auto", torch_dtype="auto")
Please make sure to set use_fast=False when loading the tokenizer.
from transformers import pipeline
pipe = pipeline("text-generation", model="sambanovasystems/SambaLingo-Arabic-Chat", device_map="auto", use_fast=False)
messages = [
{"role": "user", "content": {YOUR_QUESTION}},
]
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipe(prompt)[0]
outputs = outputs["generated_text"]
To prompt this model, please use the following chat template:
<|user|>\n{question}</s>\n<|assistant|>\n
<|user|>
ูู
ููุ ูู ุงูุงุญุณู ุฃู ุชููู ู
ุญุจูุจ ุฃู ู
ุฎูู</s>
<|assistant|>
ูุง ุฃุณุชุทูุน ุฅุจุฏุงุก ุงูุฑุฃู ุฃู ุงู
ุชูุงู ุงูู
ุดุงุนุฑุ ููู ูู
ูููู ุชูุฏูู
ุฅุฌุงุจุฉ ู
ูุถูุนูุฉ ุนูู ูุฐุง ุงูุณุคุงู. ูู ุญูู ุฃู ูููู ู
ุญุจูุจูุง ูู
ูู ุฃู ูุฌูุจ ุงูุณุนุงุฏุฉ ูุงูุฑุถุงุ ูุฅู ูููู ู
ุฎูููุง ูู
ูู ุฃู ูููู ูู ุฃูุถูุง ููุงุฆุฏู. ุนูู ุณุจูู ุงูู
ุซุงูุ ูู
ูู ุฃู ูููู ุงูุดุฎุต ุงูู
ุฎูู ูุนุงูุงู ูู ุฑุฏุน ุงูุณููููุงุช ุฃู ุงูู
ูุงูู ุบูุฑ ุงูู
ุฑุบูุจ ูููุงุ ู
ุซู ุงูุชุฎุฑูุจ ุฃู ุงูุชูู
ุฑ. ูู
ุน ุฐููุ ู
ู ุงูู
ูู
ุฃู ูุชุฐูุฑ ุฃู ุงูุญุจ ูุงููุจูู ูู
ุง ููู
ุชุงู ู
ูู
ุชุงู ูุฌุจ ุงูุณุนู ูุชุญููููู
ุงุ ูุฃู ูููู ู
ุญุจูุจูุง ูุง ููุจุบู ุฃู ูููู ุงููุฏู ุงูููุงุฆู. ูุจุฏูุงู ู
ู ุฐููุ ูุฌุจ ุฃู ูุณุนู ุฌุงูุฏูู ููููู ุทูุจูู ูุฑุญูู
ูู ู
ุน ุงูุขุฎุฑููุ ู
ุน ุงูุงุนุชุฑุงู ุฃูุถูุง ุจุฃู ูู ุดุฎุต ูุฏูู ููุงุท ุงูููุฉ ูุงูุถุนู ุงูุฎุงุตุฉ ุจู.
The alignment phase follows the recipe for Zephyr-7B, and comprises two stages: supervised fine-tuning (SFT) and Direct Performance Optimization (DPO).
The SFT phase was done on the ultrachat_200k dataset mixed with the Google translated version of the ultrachat_200k dataset. It was trained for one epoch with global batch size 512 and max sequence length 2048 tokens. We used a linear decay learning rate of 2e-5 and 10% warmup.
The DPO phase was done on the ultrafeedback dataset and cai-conversation-harmless dataset, mixed with 10% of the data Google translated. It was trained with global batch size 32 and for three epochs. We used a linear decay learning rate of 5e-7, 10% warmup and ฮฒ=0.1 as the regularization factor for DPO.
We extended the vocabulary of the base llama model from 32,000 tokens to 57,000 tokens by adding up to 25,000 non-overlapping tokens from the new language.
For evaluation results see our paper: SambaLingo: Teaching Large Language Models New Languages
Use of this model is governed by the Metaโs Llama 2 Community License Agreement. Please review and accept the license before downloading the model weights.
SambaLingo should NOT be used for:
Like all LLMs, SambaLingo has certain limitations:
We extend our heartfelt gratitude to the open-source AI community; this endeavor would not have been possible without open source. SambaNova embraces the open-source community and aspires to actively contribute to this initiative.
We would like to give a special thanks to the following groups:
@misc{csaki2024sambalingo,
title={SambaLingo: Teaching Large Language Models New Languages},
author={Zoltan Csaki and Bo Li and Jonathan Li and Qiantong Xu and Pian Pawakapan and Leon Zhang and Yun Du and Hengyu Zhao and Changran Hu and Urmish Thakker},
year={2024},
eprint={2404.05829},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
SambaLingo-Arabic-Chat is a human aligned chat model trained in Arabic and English. It is trained using direct preference optimization on top the base model SambaLingo-Arabic-Base. The base model adapts Llama-2-7b to Arabic by training on 63 billion tokens from the Arabic split of the Cultura-X dataset. Try This Model at SambaLingo-chat-space.
Please make sure to set use_fast=False when loading the tokenizer.
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("sambanovasystems/SambaLingo-Arabic-Chat", device_map="auto", torch_dtype="auto")
Please make sure to set use_fast=False when loading the tokenizer.
from transformers import pipeline
pipe = pipeline("text-generation", model="sambanovasystems/SambaLingo-Arabic-Chat", device_map="auto", use_fast=False)
messages = [
{"role": "user", "content": {YOUR_QUESTION}},
]
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipe(prompt)[0]
outputs = outputs["generated_text"]
To prompt this model, please use the following chat template:
<|user|>\n{question}</s>\n<|assistant|>\n
<|user|>
ูู
ููุ ูู ุงูุงุญุณู ุฃู ุชููู ู
ุญุจูุจ ุฃู ู
ุฎูู</s>
<|assistant|>
ูุง ุฃุณุชุทูุน ุฅุจุฏุงุก ุงูุฑุฃู ุฃู ุงู
ุชูุงู ุงูู
ุดุงุนุฑุ ููู ูู
ูููู ุชูุฏูู
ุฅุฌุงุจุฉ ู
ูุถูุนูุฉ ุนูู ูุฐุง ุงูุณุคุงู. ูู ุญูู ุฃู ูููู ู
ุญุจูุจูุง ูู
ูู ุฃู ูุฌูุจ ุงูุณุนุงุฏุฉ ูุงูุฑุถุงุ ูุฅู ูููู ู
ุฎูููุง ูู
ูู ุฃู ูููู ูู ุฃูุถูุง ููุงุฆุฏู. ุนูู ุณุจูู ุงูู
ุซุงูุ ูู
ูู ุฃู ูููู ุงูุดุฎุต ุงูู
ุฎูู ูุนุงูุงู ูู ุฑุฏุน ุงูุณููููุงุช ุฃู ุงูู
ูุงูู ุบูุฑ ุงูู
ุฑุบูุจ ูููุงุ ู
ุซู ุงูุชุฎุฑูุจ ุฃู ุงูุชูู
ุฑ. ูู
ุน ุฐููุ ู
ู ุงูู
ูู
ุฃู ูุชุฐูุฑ ุฃู ุงูุญุจ ูุงููุจูู ูู
ุง ููู
ุชุงู ู
ูู
ุชุงู ูุฌุจ ุงูุณุนู ูุชุญููููู
ุงุ ูุฃู ูููู ู
ุญุจูุจูุง ูุง ููุจุบู ุฃู ูููู ุงููุฏู ุงูููุงุฆู. ูุจุฏูุงู ู
ู ุฐููุ ูุฌุจ ุฃู ูุณุนู ุฌุงูุฏูู ููููู ุทูุจูู ูุฑุญูู
ูู ู
ุน ุงูุขุฎุฑููุ ู
ุน ุงูุงุนุชุฑุงู ุฃูุถูุง ุจุฃู ูู ุดุฎุต ูุฏูู ููุงุท ุงูููุฉ ูุงูุถุนู ุงูุฎุงุตุฉ ุจู.
The alignment phase follows the recipe for Zephyr-7B, and comprises two stages: supervised fine-tuning (SFT) and Direct Performance Optimization (DPO).
The SFT phase was done on the ultrachat_200k dataset mixed with the Google translated version of the ultrachat_200k dataset. It was trained for one epoch with global batch size 512 and max sequence length 2048 tokens. We used a linear decay learning rate of 2e-5 and 10% warmup.
The DPO phase was done on the ultrafeedback dataset and cai-conversation-harmless dataset, mixed with 10% of the data Google translated. It was trained with global batch size 32 and for three epochs. We used a linear decay learning rate of 5e-7, 10% warmup and ฮฒ=0.1 as the regularization factor for DPO.
We extended the vocabulary of the base llama model from 32,000 tokens to 57,000 tokens by adding up to 25,000 non-overlapping tokens from the new language.
For evaluation results see our paper: SambaLingo: Teaching Large Language Models New Languages
Use of this model is governed by the Metaโs Llama 2 Community License Agreement. Please review and accept the license before downloading the model weights.
SambaLingo should NOT be used for:
Like all LLMs, SambaLingo has certain limitations:
We extend our heartfelt gratitude to the open-source AI community; this endeavor would not have been possible without open source. SambaNova embraces the open-source community and aspires to actively contribute to this initiative.
We would like to give a special thanks to the following groups:
@misc{csaki2024sambalingo,
title={SambaLingo: Teaching Large Language Models New Languages},
author={Zoltan Csaki and Bo Li and Jonathan Li and Qiantong Xu and Pian Pawakapan and Leon Zhang and Yun Du and Hengyu Zhao and Changran Hu and Urmish Thakker},
year={2024},
eprint={2404.05829},
archivePrefix={arXiv},
primaryClass={cs.CL}
}