UBC-NLP / toucan-1.2B

huggingface.co
Total runs: 1.3K
24-hour runs: 0
7-day runs: 0
30-day runs: 0
Model's Last Updated: January 22 2025
text-generation

Introduction of toucan-1.2B

Model Details of toucan-1.2B

This is the repository accompanying our ACL 2024 paper Toucan: Many-to-Many Translation for 150 African Language Pairs . We address a notable gap in Natural Language Processing (NLP) by introducing a collection of resources designed to improve Machine Translation (MT) for low-resource languages, with a specific focus on African languages. First, We introduce two language models (LMs), Cheetah-1.2B and Cheetah-3.7B, with 1.2 billion and 3.7 billion parameters respectively. Next, we finetune the aforementioned models to create Toucan, an Afrocentric machine translation model designed to support 156 African language pairs. To evaluate Toucan, we carefully develop an extensive machine translation benchmark, dubbed AfroLingu-MT, tailored for evaluating machine translation. Toucan significantly outperforms other models, showcasing its remarkable performance on MT for African languages. Finally, we train a new model, spBLEU_1K, to enhance translation evaluation metrics, covering 1K languages, including 614 African languages. This work aims to advance the field of NLP, fostering cross-cultural understanding and knowledge exchange, particularly in regions with limited language resources such as Africa.

Models

To effectively train a MT language model for African languages, it is crucial to start with a powerful, Afrocentric pretrained language model. For this purpose, we select Cheetah (Adebara et al., 2024), a recently introduced SoTA model with extensive coverage encompassing 517 African languages. One limitation of Cheetah, however, is that it is available only in a base architecture, featuring 580M parameters. Given our objective to develop a large-scale language model for machine translation capabale of serving 156 directions, this base model does not fully meet our requirements. To address this limitation, we embark on training larger and more expansive Afrocentric sequence-to-sequence models. We focus on two sizes: one model with 1.2B parameters and another with 3.7B parameters. We refer to the new models “Cheetah-1.2B” and “Cheetah-3.7B”, respectively, to reflect their enhanced capabilities and parameter scale. These models represent a significant advancement in our efforts to improve machine translation for African languages, offering greater capacities in handling the rich linguistic nuances of African languages. Cheetah Pertaining. To train the new Cheetah models, we utilize the same pre-training dataset employed in training the original Cheetah-base model (Adebara et al., 2024). This strategic choice ensures consistency in the foundational data across models, enabling the advanced Cheetah-1.2B and Cheetah-3.7B versions to build upon the rich linguistic diversity captured in the original dataset. We refer to (Adebara et al., 2024) for more information about the pretraining data of Cheetah models. We employ a learning rate of 0.01, a batch size of 1, 024 sequences, and a maximum sequence length of 1, 024. Each model undergoes pretraining for 1 million steps. The training process is conducted on Google Cloud TPU with 128 cores (v3 − 128) provided by the TensorFlow Research Cloud (TFRC). We provide additional details on pretraining in Section B in the Appendix.

Cheetah Models Link
🔥 Cheetah-base 🔥 https://huggingface.co/UBC-NLP/cheetah-base
🔥 Cheetah-1.2B 🔥 https://huggingface.co/UBC-NLP/cheetah-1.2B
Tocan Models Link
🔥 Toucan-base 🔥 https://huggingface.co/UBC-NLP/toucan-base
🔥 Toucan-1.2B 🔥 https://huggingface.co/UBC-NLP/toucan-1.2B

3. How to use Cheetah-1.2B model

Below is an example for using Cheetah-1.2B predict masked tokens.

from transformers import T5Tokenizer, AutoModelForSeq2SeqLM

tokenizer = T5Tokenizer.from_pretrained("UBC-NLP/cheetah-1.2B")
model = AutoModelForSeq2SeqLM.from_pretrained("UBC-NLP/cheetah-1.2B")

yor_prompt="ìròyìn kan nípa owó ìjọba <extra_id_0> kan"

input_ids = tokenizer(yor_prompt, return_tensors="pt").input_ids
outputs = model.generate(input_ids)
print("Cheetah-1.2B - Tokenized input:", tokenizer.tokenize(yor_prompt))
print("Cheetah-1.2B - Decoded output:", tokenizer.decode(outputs[0], skip_special_tokens=True))

Output:

Cheetah-1.2B - Tokenized input: ['▁ìròyìn', '▁kan', '▁nípa', '▁owó', '▁ìjọba', '<extra_id_0>', '▁kan']
Cheetah-1.2B - Decoded output: Nàìjíríà

3. How to use Toucan model

To translate using Toucan models, use the target language ISO-3 code as preix. Below the supported langauges

lang_names={
    "aar": "Afar",
    "ach": "Acholi",
    "afr": "Afrikaans",
    "aka": "Akan",
    "amh": "Amharic",
    "bam": "Bambara",
    "bas": "Basaa",
    "bem": "Bemba",
    "btg": "Bete Gagnoa",
    "eng": "English",
    "ewe": "Ewe",
    "fon": "Fon",
    "fra": "French",
    "hau": "Hausa",
    "ibo": "Igbo",
    "kbp": "Kabiye",
    "lgg": "Lugbara",
    "lug": "Luganda",
    "mlg": "Malagasy",
    "nyn": "Nyakore",
    "orm": "Oromo",
    "som": "Somali",
    "sot": "Sesotho",
    "swa": "Swahili",
    "tir": "Tigrinya",
    "yor": "Yoruba",
    "teo": "Ateso",
    "gez": "Geez",
    "wal": "Wolaytta",
    "fan": "Fang",
    "kau": "Kanuri",
    "kin": "Kinyawanda",
    "kon": "Kongo",
    "lin": "Lingala",
    "nya": "Chichewa",
    "pcm": "Nigerian Pidgin",
    "ssw": "Siswati",
    "tsn": "Setswana",
    "tso": "Tsonga",
    "twi": "Twi",
    "wol": "Wolof",
    "xho": "Xhosa",
    "zul": "Zulu",
    "nnb": "Nande",
    "swc": "Swahili Congo",
    "ara": "Arabic"
}

Below is an example for translating using Toucan-1.2B .

from transformers import AutoTokenizer, MT5ForConditionalGeneration
import torch
tokenizer = AutoTokenizer.from_pretrained("UBC-NLP/toucan-1.2B")
model = MT5ForConditionalGeneration.from_pretrained("UBC-NLP/toucan-1.2B", torch_dtype=torch.float16, device_map="auto")
model.eval()

#Translate from Enlglish to Zulu
text="zul: Clear all items from the recent documents list"
input_ids = tokenizer(text, return_tensors="pt", max_length=1024, truncation=True).to("cuda:0")
with torch.no_grad():
    generated_ids = model.generate(**input_ids, num_beams=5, max_new_tokens=len(text), do_sample=True, temperature=0.6, top_p=0.9)
print("Toucan-1.2B - translation:", tokenizer.batch_decode(generated_ids, skip_special_tokens=True,  skip_prompt=True)[0])

Output:

Toucan-1.2B - translation: Susa zonke izinto kuhlu lwamadokhumende oludlule
Citation

If you use the pre-trained model (Cheetah-1.2B) for your scientific publication, or if you find the resources in this repository useful, please cite our papers as follows (to be updated):

Toucan's Paper

@inproceedings{adebara-etal-2024-cheetah,
    title = "Cheetah: Natural Language Generation for 517 {A}frican Languages",
    author = "Adebara, Ife  and
      Elmadany, AbdelRahim  and
      Abdul-Mageed, Muhammad",
    editor = "Ku, Lun-Wei  and
      Martins, Andre  and
      Srikumar, Vivek",
    booktitle = "Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
    month = aug,
    year = "2024",
    address = "Bangkok, Thailand and virtual meeting",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.acl-long.691",
    pages = "12798--12823",
}

Cheetah's Paper

@inproceedings{elmadany-etal-2024-toucan,
    title = "Toucan: Many-to-Many Translation for 150 {A}frican Language Pairs",
    author = "Elmadany, AbdelRahim  and
      Adebara, Ife  and
      Abdul-Mageed, Muhammad",
    editor = "Ku, Lun-Wei  and
      Martins, Andre  and
      Srikumar, Vivek",
    booktitle = "Findings of the Association for Computational Linguistics ACL 2024",
    month = aug,
    year = "2024",
    address = "Bangkok, Thailand and virtual meeting",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.findings-acl.781",
    pages = "13189--13206",
}
Acknowledgments

We gratefully acknowledges support from Canada Research Chairs (CRC), the Natural Sciences and Engineering Research Council of Canada (NSERC; RGPIN-2018-04267), the Social Sciences and Humanities Research Council of Canada (SSHRC; 435-2018-0576; 895-2020-1004; 895-2021-1008), Canadian Foundation for Innovation (CFI; 37771), Digital Research Alliance of Canada , UBC ARC-Sockeye , Advanced Micro Devices, Inc. (AMD), and Google. Any opinions, conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of CRC, NSERC, SSHRC, CFI, the Alliance, AMD, Google, or UBC ARC-Sockeye.

Runs of UBC-NLP toucan-1.2B on huggingface.co

1.3K
Total runs
0
24-hour runs
0
3-day runs
0
7-day runs
0
30-day runs

More Information About toucan-1.2B huggingface.co Model

toucan-1.2B huggingface.co

toucan-1.2B huggingface.co is an AI model on huggingface.co that provides toucan-1.2B's model effect (), which can be used instantly with this UBC-NLP toucan-1.2B model. huggingface.co supports a free trial of the toucan-1.2B model, and also provides paid use of the toucan-1.2B. Support call toucan-1.2B model through api, including Node.js, Python, http.

toucan-1.2B huggingface.co Url

https://huggingface.co/UBC-NLP/toucan-1.2B

UBC-NLP toucan-1.2B online free

toucan-1.2B huggingface.co is an online trial and call api platform, which integrates toucan-1.2B's modeling effects, including api services, and provides a free online trial of toucan-1.2B, you can try toucan-1.2B online for free by clicking the link below.

UBC-NLP toucan-1.2B online free url in huggingface.co:

https://huggingface.co/UBC-NLP/toucan-1.2B

toucan-1.2B install

toucan-1.2B is an open source model from GitHub that offers a free installation service, and any user can find toucan-1.2B on GitHub to install. At the same time, huggingface.co provides the effect of toucan-1.2B install, users can directly use toucan-1.2B installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

toucan-1.2B install url in huggingface.co:

https://huggingface.co/UBC-NLP/toucan-1.2B

Url of toucan-1.2B

toucan-1.2B huggingface.co Url

Provider of toucan-1.2B huggingface.co

UBC-NLP
ORGANIZATIONS

Other API from UBC-NLP

huggingface.co

Total runs: 129.6K
Run Growth: 66.5K
Growth Rate: 51.31%
Updated:March 31 2022
huggingface.co

Total runs: 32.8K
Run Growth: 16.0K
Growth Rate: 48.67%
Updated:August 17 2022
huggingface.co

Total runs: 5.4K
Run Growth: 445
Growth Rate: 8.17%
Updated:April 24 2024
huggingface.co

Total runs: 3.9K
Run Growth: 589
Growth Rate: 15.13%
Updated:May 17 2024
huggingface.co

Total runs: 1.9K
Run Growth: 0
Growth Rate: 0.00%
Updated:November 11 2025
huggingface.co

Total runs: 1.8K
Run Growth: 703
Growth Rate: 39.76%
Updated:August 14 2024
huggingface.co

Total runs: 1.6K
Run Growth: 0
Growth Rate: 0.00%
Updated:February 20 2024
huggingface.co

Total runs: 1.3K
Run Growth: 450
Growth Rate: 33.51%
Updated:January 20 2022
huggingface.co

Total runs: 793
Run Growth: -307
Growth Rate: -38.71%
Updated:March 10 2026
huggingface.co

Total runs: 222
Run Growth: 180
Growth Rate: 81.08%
Updated:February 13 2026
huggingface.co

Total runs: 108
Run Growth: -23
Growth Rate: -21.30%
Updated:November 26 2024
huggingface.co

Total runs: 87
Run Growth: 41
Growth Rate: 47.13%
Updated:March 14 2025
huggingface.co

Total runs: 73
Run Growth: 0
Growth Rate: 0.00%
Updated:June 10 2022
huggingface.co

Total runs: 23
Run Growth: 16
Growth Rate: 69.57%
Updated:August 31 2021
huggingface.co

Total runs: 22
Run Growth: 3
Growth Rate: 13.64%
Updated:November 26 2024
huggingface.co

Total runs: 7
Run Growth: -4
Growth Rate: -57.14%
Updated:December 04 2023
huggingface.co

Total runs: 6
Run Growth: 0
Growth Rate: 0.00%
Updated:June 03 2022
huggingface.co

Total runs: 5
Run Growth: 0
Growth Rate: 0.00%
Updated:June 03 2022
huggingface.co

Total runs: 5
Run Growth: -10
Growth Rate: -200.00%
Updated:November 12 2024
huggingface.co

Total runs: 0
Run Growth: 0
Growth Rate: 0.00%
Updated:October 10 2023