|
Download README.md from AlihIng/TaxiLM: direct link, hf CLI and curl.
- Browser
- Download file 4.6 kB
-
https://huggingface.co/AlihIng/TaxiLM/resolve/main/README.md
- Command line
-
hf download hf://AlihIng/TaxiLM/README.md
-
curl -L -o README.md https://huggingface.co/AlihIng/TaxiLM/resolve/main/README.md
4.6 kB
| language: ar | |
| language_bcp47: | |
| - ar-MR | |
| tags: | |
| - taxi | |
| - nouakchott | |
| - mauritania | |
| - dialogue | |
| - small-model | |
| - langchain-agent | |
| license: mit | |
| # TaxiLM — Chauffeur de taxi Hassaniya (Nouakchott) | |
| Modele de langage de 8.7M parametres entraine pour dialoguer en Hassaniya comme un chauffeur de taxi a Nouakchott. Ce modele est utilise comme LLM principal dans un agent LangChain equipe d'outils vivants. | |
| --- | |
| ## Personnage | |
| | Attribut | Description | | |
| | :--- | :--- | | |
| | **Nom** | Mohamed Vall (محمد فال) | | |
| | **Role** | Chauffeur de taxi a Nouakchott depuis 20 ans | | |
| | **Langue** | Hassaniya avec quelques mots francais (clim, frein, carrefour, essence, match) | | |
| | **Ton** | Bavard, raleur mais bon coeur, philosophe de la route | | |
| | **Expressions** | ماشي امنين, ماني ماشي لهيه, يا راجل, لا إله إلا الله, اشواعد, إن شاء الله | | |
| | **Sagesse** | "ذا كامل يتخطا" (tout passe, meme les embouteillages) | | |
| --- | |
| ## Architecture | |
| | Parametre | Valeur | | |
| | :--- | :--- | | |
| | Parametres | 8 726 016 (8.7M) | | |
| | Couches | 6 | | |
| | Dimensions cachees | 384 | | |
| | Tetes d'attention | 6 | | |
| | FFN | 768 (ReLU) | | |
| | Vocabulaire | 4 096 tokens BPE | | |
| | Tokenizer | Metaspace (optimise pour l'arabe) | | |
| | Sequence max | 128 tokens | | |
| --- | |
| ## Outils de l'agent | |
| Le modele est utilise par un agent LangChain equipe de 5 outils : | |
| | Outil | API / Source | Role | | |
| | :--- | :--- | :--- | | |
| | Meteo | Open-Meteo | Temperature, vent, pluie a Nouakchott | | |
| | Geocodage | Nominatim (OpenStreetMap) | Localisation des quartiers | | |
| | Taux de change | Exchange Rate API | Conversion EUR/USD vers MRU | | |
| | Horaires de priere | AlAdhan | Heures de salat | | |
| | Proverbes | Dataset `ahmed02mk/amthal-hassaniya` | Sagesses et proverbes Hassaniya | | |
| --- | |
| ## Sources | |
| | Source | Type | Description | | |
| | :--- | :--- | :--- | | |
| | Dataset TP2 | Donnees synthetiques | 13 248 dialogues en Hassaniya (5 categories) | | |
| | amthal-hassaniya | Dataset Hugging Face | Proverbes Hassaniya avec explications en arabe | | |
| | Open-Meteo | API externe | Donnees meteo temps reel | | |
| | Nominatim | API externe | Geocodage gratuit | | |
| | Exchange Rate API | API externe | Taux de change quotidiens | | |
| | AlAdhan | API externe | Horaires de priere | | |
| --- | |
| ## Limites du personnage | |
| **Ce que Mohamed Vall ne sait pas et ne doit pas inventer :** | |
| - La politique internationale | |
| - La technologie moderne | |
| - Les prix officiels ou administratifs | |
| - Les itineraires precis qu'il ne connait pas | |
| - Les informations medicales ou legales | |
| **Comportement attendu :** | |
| Si une question sort de son univers, il repond : "والله ما عارف, اسأل اللي يعرف" (Je ne sais pas, demande a celui qui sait). | |
| --- | |
| ## Risques d'hallucination | |
| | Risque | Niveau | Mitigation | | |
| | :--- | :--- | :--- | | |
| | Invention de prix | Moyen | Utiliser l'outil taux de change | | |
| | Invention de lieux | Moyen | Utiliser l'outil geocodage | | |
| | Proverbe errone | Faible | Recherche dans le dataset amthal-hassaniya | | |
| | Meteo inventee | Faible | Appel API Open-Meteo | | |
| | Reponse incoherente | Eleve | Modele 9M, limite en raisonnement | | |
| --- | |
| ## Entrainement | |
| - **Dataset :** 13 248 dialogues synthetiques generes par templates et augmentation linguistique | |
| - **GPU :** Tesla T4 (Google Colab gratuit) | |
| - **Duree :** ~15 minutes | |
| - **Steps :** 10 000 avec cosine LR schedule | |
| - **Eval loss finale :** 0.409 | |
| - **Monitoring :** Weights & Biases | |
| --- | |
| ## Utilisation | |
| ```python | |
| from huggingface_hub import hf_hub_download | |
| import torch | |
| from tokenizers import Tokenizer | |
| import importlib.util, sys | |
| REPO_ID = "AlihIng/TaxiLM" | |
| # Charger config.py | |
| config_path = hf_hub_download(repo_id=REPO_ID, filename="config.py") | |
| spec = importlib.util.spec_from_file_location("config", config_path) | |
| config_module = importlib.util.module_from_spec(spec) | |
| sys.modules["config"] = config_module | |
| spec.loader.exec_module(config_module) | |
| # Charger model.py | |
| model_path = hf_hub_download(repo_id=REPO_ID, filename="model.py") | |
| spec = importlib.util.spec_from_file_location("model", model_path) | |
| model_module = importlib.util.module_from_spec(spec) | |
| sys.modules["model"] = model_module | |
| spec.loader.exec_module(model_module) | |
| # Charger les poids | |
| pt_path = hf_hub_download(repo_id=REPO_ID, filename="model.pt") | |
| checkpoint = torch.load(pt_path, map_location="cpu") | |
| config = config_module.TaxiConfig(**checkpoint["config"]) | |
| model = model_module.TaxiLM(config) | |
| model.load_state_dict(checkpoint["model_state_dict"]) | |
| model.eval() | |
| # Tokenizer | |
| tokenizer = Tokenizer.from_file(hf_hub_download(repo_id=REPO_ID, filename="tokenizer.json")) | |
| Licence | |
| MIT — Inspire de GuppyLM par Arman Hossain. | |