107 lines
3.3 KiB
Markdown
107 lines
3.3 KiB
Markdown
---
|
|
language:
|
|
- fr
|
|
- wo
|
|
tags:
|
|
- text-generation
|
|
- senegal
|
|
- wolof
|
|
- french
|
|
- code-switching
|
|
- qwen
|
|
- qwen2.5
|
|
license: apache-2.0
|
|
---
|
|
|
|
# Qwen2.5-3B Sénégal Generation
|
|
|
|
Modèle de génération de texte en **français sénégalais** avec code-switching Wolof-Français, spécialisé dans la conversation quotidienne sénégalaise.
|
|
|
|
## Description
|
|
|
|
Ce modèle est un fine-tuning de Qwen2.5-3B-Instruct sur un corpus de 9507 segments de français sénégalais authentique avec insertions naturelles de mots wolof. Il est spécialisé dans les conversations du quotidien : mobilité urbaine, mobile money, cybersécurité, vie universitaire sénégalaise, et interactions sociales au Sénégal.
|
|
|
|
## Utilisation
|
|
|
|
Le modèle suit le format Question/Réponse de son corpus d'entraînement :
|
|
|
|
\`\`\`python
|
|
from transformers import AutoTokenizer, AutoModelForCausalLM
|
|
import torch
|
|
|
|
model = AutoModelForCausalLM.from_pretrained(
|
|
"mamediarrafaye/qwen-senegal-generation",
|
|
torch_dtype=torch.float16,
|
|
device_map="auto",
|
|
)
|
|
tokenizer = AutoTokenizer.from_pretrained(
|
|
"mamediarrafaye/qwen-senegal-generation"
|
|
)
|
|
|
|
def generer(message, max_new_tokens=150):
|
|
# Format obligatoire : Question/Réponse (format du corpus)
|
|
formatted = f"Question : {message}\nRéponse :"
|
|
|
|
inputs = tokenizer(formatted, return_tensors="pt").to(model.device)
|
|
with torch.no_grad():
|
|
outputs = model.generate(
|
|
**inputs,
|
|
max_new_tokens=max_new_tokens,
|
|
temperature=0.7,
|
|
top_p=0.9,
|
|
do_sample=True,
|
|
repetition_penalty=1.2,
|
|
pad_token_id=tokenizer.eos_token_id,
|
|
)
|
|
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
|
return response.split("Réponse :")[-1].strip()
|
|
|
|
## Domaines couverts
|
|
|
|
- Vie universitaire sénégalaise (examens, mémoires, bourses, inscriptions)
|
|
- Mobile money (Wave, Orange Money, transferts)
|
|
- Cybersécurité et phishing
|
|
- Transport urbain (BRT, Car Rapide, TER)
|
|
- ASR et développement logiciel
|
|
- Interactions sociales quotidiennes au Sénégal
|
|
|
|
## Format d'entrée
|
|
|
|
Le modèle attend le format suivant :
|
|
\`\`\`
|
|
Question : [votre message]
|
|
Réponse :
|
|
\`\`\`
|
|
|
|
|
|
|
|
## Données
|
|
|
|
- 9507 segments de français sénégalais authentique
|
|
- 26% code-switching Wolof-Français
|
|
- 74% français sénégalais standard
|
|
- Sources : conversations simulées de contexte étudiant sénégalais
|
|
|
|
## Entraînement
|
|
|
|
- Modèle de base : Qwen2.5-3B-Instruct
|
|
- Méthode : LoRA fine-tuning (r=64)
|
|
- Epochs : 3
|
|
- Learning rate : 2e-4
|
|
- Framework : TRL/SFTTrainer
|
|
|
|
## Exemples de sorties
|
|
|
|
| Question | Réponse générée |
|
|
|----------|----------------|
|
|
| Gayi, qui a de la monnaie pour le taxi ? | Amoul problème, j'ai des billets cassés, je gère la course. |
|
|
| Lu bess ? Le guichet automatique est en panne ? | Ah dédet, amoul solo, il y a juste une queue interminable dehors. |
|
|
| Nanga def ? Les données sont bien anonymisées ? | Amoul problème, toutes les informations sensibles ont été effacées. |
|
|
| Gayi, on fait la réunion à quelle heure ? | On se capte sur Google Meet vers 18h, le temps que tout le monde rentre. |
|
|
|
|
## Limitations
|
|
|
|
- Spécialisé dans les conversations du quotidien sénégalais — ne pas utiliser pour des questions générales hors domaine
|
|
- Performances optimales avec le format Question/Réponse du corpus
|
|
|