初始化项目,由ModelHub XC社区提供模型
Model: mamediarrafaye/qwen-senegal-generation Source: Original Platform
This commit is contained in:
106
README.md
Normal file
106
README.md
Normal file
@@ -0,0 +1,106 @@
|
||||
---
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user