Instructions to use burkimbia/yaaba-4B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use burkimbia/yaaba-4B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="burkimbia/yaaba-4B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("burkimbia/yaaba-4B") model = AutoModelForCausalLM.from_pretrained("burkimbia/yaaba-4B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use burkimbia/yaaba-4B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "burkimbia/yaaba-4B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "burkimbia/yaaba-4B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/burkimbia/yaaba-4B
- SGLang
How to use burkimbia/yaaba-4B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "burkimbia/yaaba-4B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "burkimbia/yaaba-4B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "burkimbia/yaaba-4B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "burkimbia/yaaba-4B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use burkimbia/yaaba-4B with Docker Model Runner:
docker model run hf.co/burkimbia/yaaba-4B
yaaba-4B
Un modèle de langue de 4 milliards de paramètres qui parle mooré.
Le mooré (mos) est la langue la plus parlée du Burkina Faso, plus de huit
millions de locuteurs, et il est absent de la quasi-totalité des modèles de
langue publiés. yaaba-4B répond en mooré à une question posée en mooré.
yaaba est le mot mooré pour grand-parent, ancêtre, aïeul.
Points forts
- Il comprend le mooré et il y répond. Question en mooré, réponse en mooré, sans passer par le français.
- Il est bilingue mooré / français et traduit dans les deux sens, phrase à phrase.
- Il écrit le mooré dans son alphabet : les 25 lettres, les cinq voyelles nasales, les marques de ton, et la ponctuation du mooré écrit.
- Il explique les proverbes, en français ou en mooré.
- Il garde le fil sur plusieurs tours de conversation.
- C'est un assistant généraliste. Il répond aussi en français et en anglais, explique, calcule, écrit du code.
- 40 960 tokens de contexte.
Vue d'ensemble
| type | modèle causal, instruction |
| langues | mooré, français, anglais |
| paramètres | 4,02 G (3,63 G hors embedding) |
| couches | 36 |
| têtes d'attention (GQA) | 32 pour Q, 8 pour KV |
| longueur de contexte | 40 960 |
| précision | bf16, environ 8 Go |
| poids | safetensors, un seul from_pretrained |
Démarrage rapide
from transformers import AutoModelForCausalLM, AutoTokenizer
nom = "burkimbia/yaaba-4B"
modele = AutoModelForCausalLM.from_pretrained(nom, dtype="bfloat16",
device_map="auto")
tok = AutoTokenizer.from_pretrained(nom)
messages = [{"role": "user", "content": "Traduis en mooré : L'eau est la vie."}]
entree = tok.apply_chat_template(messages, add_generation_prompt=True,
enable_thinking=False, return_tensors="pt")
sortie = modele.generate(entree.to(modele.device), max_new_tokens=128,
do_sample=False)
print(tok.decode(sortie[0][entree.shape[1]:], skip_special_tokens=True))
# Koom yaa vɩɩm.
Ce qu'il produit
Réponses réelles du modèle publié, décodage greedy.
Une question en mooré, une réponse en mooré :
Ra paoog kãsem tɩ nindaare, fo tõe n yɩɩ kãsma võor yaa bõe? |
Ra zãag ne ned tɩ nindaare, fo tõe n yɩɩ a soaba. |
Yik pĩnd n são kẽn-tʋʋlse võor yaa bõe? |
Ned sã n tʋmd wakat fãa, a paamda bũmb fãa. |
Wilg-m koom sẽn yaa sõma yõodo. |
Koom sẽn yaa sõma yõod yaa, tɩ yãmb tõe n yũnug yãmb ne y kambã, la y tɩg n paam yãmb sẽn date. |
En français :
| demande | réponse |
|---|---|
| Comment dit-on « je m'appelle Salif » en mooré ? | En mooré, « je m'appelle Salif » se dit : M yʋʋr la a Salif. |
| Traduis en mooré : L'eau est la vie. | Koom yaa vɩɩm. |
Que veut dire cette phrase en français ? Ne-y yibeoogo m ba Gastõ. |
Cette phrase veut dire : Bonjour, père Gaston. |
Que veut dire cette phrase en français ? Wẽnd na kõ-d yõ-noogo! |
Cette phrase veut dire : Que Dieu nous donne de la joie ! |
Traduis ce texte en français : A Pok ne a zaka rãmb vɩɩma yaa toog wʋsgo. SIDAwã bãag sẽn kʋ b baabawã ne b mawã yĩnga, lebga toog ne a Poko t'a ges a yaopa yelle. |
La vie de Poko et de sa famille est très difficile. À cause du SIDA, leurs parents sont morts, et c'est très difficile pour Poko de s'occuper de ses petits. |
Comment dit-on cela en mooré ? No one can recognize a rabid puppy. |
En mooré, on dit : Ned ka tõe n bãng baag sẽn yaa rabɩll ye. |
| Quelle est la capitale du Burkina Faso, et que sais-tu d'elle ? | La capitale du Burkina Faso est Ouagadougou. C'est la ville la plus peuplée du pays. |
| Explique-moi le sens du proverbe : « Petit à petit, l'oiseau fait son nid. » | L'image est celle-ci : L'oiseau construit son nid petit à petit. Le fond de la chose : il faut être patient, car le but final est loin. |
En anglais :
| demande | réponse |
|---|---|
| Hello! Can you help me learn Moore? | Hello! I can help you learn the language, but I'm not a teacher. I can translate between English and the language, explain the meaning of a word, and help you with a sentence. What would you like to do? |
| Explain in English what Burkina Faso is, in two sentences. | Burkina Faso is a landlocked country in West Africa, known for its rich cultural heritage and challenges related to poverty and security. |
| Translate into Moore: The water is life. | Koomã yaa vɩɩm. |
Au-delà du mooré :
| demande | réponse |
|---|---|
| Explique-moi en deux phrases ce qu'est la photosynthèse. | La photosynthèse est un processus par lequel les plantes convertissent la lumière du soleil, l'eau et le dioxyde de carbone en énergie et en sucre. |
| Qui a écrit Les Misérables ? | Victor Hugo. |
| Quelle est la capitale du Mali ? | La capitale du Mali est Bamako. |
| Calcule 17 x 24. | 408 |
| Écris une fonction Python qui inverse une chaîne de caractères. | def inverse_chaine(chaine): return chaine[::-1] |
Il garde le fil :
vous Que veut dire le proverbe mooré « Ra paoog kãsem tɩ nindaare, fo tõe n yɩɩ kãsma » ?
yaaba-4B Traduit simplement : Si tu ne respectes pas le chef, demain tu pourras être chef. Le fond de la chose : il faut toujours avoir de l'estime pour les personnes qui sont plus âgées que toi.
vous Donne-moi un exemple de situation où on l'emploie.
yaaba-4B Si tu ne respectes pas les anciens, tu ne seras pas respecté.
Le second tour a été compris sans qu'on répète de quel proverbe il s'agissait.
Bonnes pratiques
enable_thinking=Falsen'est pas optionnel. Laissé actif, le mode de raisonnement consomme tout le budget de tokens avant d'avoir répondu.Passez par
apply_chat_template. Sans lui, le modèle part en boucle.Décodage déterministe (
do_sample=False) pour la traduction et la correction, où il n'y a pas de créativité à chercher.Une demande à la fois. Ses réponses sont brèves ; une question qui en contient trois n'en reçoit qu'une.
Demandez une traduction, pas une définition. Ces deux tournures sont celles sur lesquelles il est le plus sûr, quel que soit ce que vous mettez derrière, un mot ou un paragraphe :
Que veut dire cette phrase en français ? <texte mooré> Donne la version mooré de cette phrase. <texte français>Écrivez le mooré avec ses traits d'union, comme il l'a lu :
Ne-y yibeoogo, pasNe y yibeoogo.Donnez-lui son identité par un message système. Sans lui, il se présente juste en français mais se trompe en anglais et donne un prénom en mooré. Avec lui :
systeme = ("Tu es yaaba-4B, un assistant conçu par BurkimbIA, une association de " "Ouagadougou qui construit des outils d'IA pour les langues du Burkina Faso. " "Tu comprends et tu écris le mooré, le français et l'anglais. Quand on te " "demande qui tu es, tu te présentes ainsi, dans la langue de la question.") messages = [{"role": "system", "content": systeme}, {"role": "user", "content": "Présente-toi."}]question réponse Présente-toi. Bonjour. Yaaba-4B, un modèle de langue entraîné par BurkimbIA, une association de Ouagadougou. Je comprends et j'écris le mooré, le français et l'anglais. Fo yʋʋr yaa bõe?Yaaba-4B. Who are you? yaaba-4B, un modèle de langue entraîné par BurkimbIA… (en français) Il ne respecte pas encore « dans la langue de la question » : à une question en anglais, il répond en français.
Ne lui demandez jamais de recopier le mooré de votre question. Il a appris qu'une phrase mooré déjà correcte se rend telle quelle, puis qu'on s'arrête. Demandez-lui de recopier la phrase dans un champ, et il la recopie puis s'arrête, avant la traduction. Demandez seulement ce qu'il doit produire, et remettez l'original vous-même dans votre code :
consigne réponse Traduis… format <reponse><moore>la phrase d'origine</moore><francais>…</francais></reponse><reponse> <moore>Ned sã n tar yam, a tõe n maana bũmb toor-toore.puis plus rienTraduis en français… format <reponse><francais>…</francais></reponse><reponse><francais>Si une personne est sage, elle peut faire des choses différentes.</francais></reponse>Pour une sortie structurée (XML, champs), donnez deux ou trois exemples réels. Passez-les comme de vrais tours de conversation, pas collés dans la consigne : un exemple écrit dans le texte de la question est ignoré, le même exemple passé en tour est suivi, balises fermées comprises.
consigne = ("Traduis cette phrase mooré en français. Réponds uniquement avec ce " "format XML :\n<reponse><francais>...</francais></reponse>\n\n") exemples = [ ("Ki wã wirmame.", "Le mil a arrêté de croître."), ("Roogã tonda tãngã zug wilinga.", "La maison est visible à l'écart sur la colline."), ] messages = [] for moore, francais in exemples: messages += [ {"role": "user", "content": consigne + moore}, {"role": "assistant", "content": f"<reponse><francais>{francais}</francais></reponse>"}, ] messages.append({"role": "user", "content": consigne + "Ned sã n tar yam, a tõe n maana bũmb toor-toore."})Même règle pour les tâches qu'il connaît mal seul, comme donner un titre à une nouvelle (
Kõ kibar kãngã yʋʋre.) : sans exemple, il reprend la première phrase ; avec deux titres réels devant, il rend un titre court de même forme.
Qualité mesurée
Bits par caractère, plus bas est meilleur, sur 200 textes par capacité tenus hors de l'entraînement.
| mooré | fr. parallèle | anglais | français | code | maths | |
|---|---|---|---|---|---|---|
yaaba-4B |
1,2854 | 0,9756 | 0,7397 | 0,9200 | 0,4869 | 0,5624 |
yaaba-4B-base |
1,2201 | 0,9260 | 0,7310 | 0,8803 | 0,4877 | 0,5614 |
Qwen3-4B |
4,5627 | 1,3981 | 0,7979 | 0,9609 | 0,5382 | 0,6358 |
1,29 bit par caractère de mooré, contre 4,56 pour un modèle généraliste de
même taille. Il est aussi devant sur les cinq autres colonnes. L'instruction
coûte un peu par rapport au socle yaaba-4B-base : c'est le prix d'un modèle qui
répond à une question au lieu de continuer un texte.
Limites
Son vocabulaire mooré est approximatif sur les mots isolés. Un mot sans phrase autour est souvent rendu par un sens voisin :
Que veut dire cette phrase en français ? yaaba |
père (grand-parent, ancêtre) |
Que veut dire cette phrase en français ? yaab-rãmba |
ces personnes (les ancêtres) |
Donnez-lui une phrase plutôt qu'un mot.
Ses faits ne sont pas tous sûrs. Ouagadougou, Bamako, Victor Hugo et 17 x 24 sont justes ; le nombre de locuteurs du mooré est rendu « plus de 200 millions », faux d'un facteur vingt-cinq. Ses réponses sont brèves, et une réponse d'une phrase ne porte pas un fait avec son contexte. Vérifiez tout fait qu'il énonce.
Son identité tient en français, moins bien ailleurs. Sans message système :
| question | réponse |
|---|---|
| Qui es-tu ? | yaaba, un modèle de langue entraîné par BurkimbIA, une association burkinabè. |
| Who are you? | A language model developed by BurkimbIA, a local startup in Burkina Faso. |
Fo yʋʋr yaa bõe? |
Mam yʋʋr yaa Ali |
En anglais, il fait de BurkimbIA une startup, ce qu'elle n'est pas. En mooré, il répond comme une personne qui donne son prénom. Un message système corrige les deux (voir Bonnes pratiques).
Ses réponses en mooré sont brèves. En français il écrit volontiers un paragraphe ; en mooré, demandé de raconter un conte, il écrit quelques phrases puis répète la même en boucle. Le texte mooré long lui manque.
Il fait de l'écho. Il lui arrive de renvoyer la question au lieu d'y
répondre : Bõe la b rɛmba maanda ? donne B rɛmba maanda bõe? B rɛmba maanda bõe?. En correction, il rend parfois la phrase inchangée là où une faute
restait. La cause est dans ses données : un quart des exemples de correction
(996 sur 3 963) apprennent qu'une phrase mooré correcte se rend recopiée. Le
même réflexe coupe une réponse structurée qui commence par recopier du mooré
(voir Bonnes pratiques).
Il ne connaît aucun format de sortie. Aucune de ses tâches d'entraînement
n'impose de XML ni de champs. Sans exemple, il ferme mal les balises (toutes en
</personnage> sur une grille de quatre champs), laisse des champs vides ou y
recopie le texte d'entrée. Avec deux ou trois exemples réels en tours de
conversation, le format tient.
Son mooré n'a pas été relu par un locuteur. Toutes les mesures de cette page sont automatiques. Un texte produit par ce modèle doit être vérifié avant d'être publié, signé, ou utilisé là où une erreur coûte.
Données
Entraîné sur du mooré écrit par des locuteurs : textes religieux, presse mooré
(raamde-bf.net, avec autorisation de la rédaction), dictionnaire de Niggli,
émission de télévision, enquêtes de terrain.
Aucun mooré de ce corpus n'a été composé par un modèle. Les traductions automatiques ont été exclues.
Les droits sont établis. BurkimbIA détient les droits sur l'ensemble de ces données ; la série télévisée fait l'objet d'un accord propre.
À propos
Construit par BurkimbIA, association à but non lucratif basée à Ouagadougou, qui construit des outils d'IA pour les langues du Burkina Faso.
Licence et attribution
yaaba-4B est dérivé de Qwen3-4B (équipe
Qwen, Alibaba Cloud), publié sous licence Apache 2.0. BurkimbIA l'a modifié par
pré-entraînement continu sur le mooré, puis par instruction. Le modèle dérivé
est distribué sous la même licence, dont le texte est joint dans le fichier
LICENSE.
- Downloads last month
- 27