Skip to main content

A language model fine-tuned for code and conversation.

Project description

🚀 Mimo Language Model

Mimo est un modèle de langage AI pour exceller à la fois en génération de code et en conversations naturelles.
Il est issu d'un mélange de datasets puissants.

Mimo


📑 Table des matières


✨ Points forts de Mimo

  • 🔧 Optimisé pour le code : génération fiable de scripts Python, JS, etc.
  • 💬 Excellente conversation : réponses naturelles et contextualisées.
  • Compatibilité multiplateforme : fonctionne sur Mac, PC et VSCode.
  • 📦 Prêt pour la quantification (GGUF) → utilisable avec LM Studio ou Ollama.

📦 Installation

Clonez le dépôt et installez les dépendances dans un environnement virtuel :

# Cloner le dépôt
git clone https://github.com/eurocybersecurite/Mimo-llm.git
cd Mimo-llm

# Créer et activer un environnement virtuel (recommandé)
python3 -m venv .venv
source .venv/bin/activate  # Sur Linux/macOS
# Ou sur Windows : .\.venv\Scripts\activate

# Installer les dépendances
pip install -r requirements.txt

⚠️ Assurez-vous d’avoir git-lfs installé pour gérer les poids du modèle.


🔑 Configuration

Avant toute utilisation, configurez votre Hugging Face Token :

export HF_TOKEN="votre_token_hugging_face"

(Remplacez "votre_token_hugging_face" par votre véritable token.)


🏋️ Fine-tuning

Lancez le fine-tuning avec :

python fine_tune_mimo.py

IMPORTANT : Remplacez example.jsonl par votre propre fichier de dataset avant d'exécuter ce script. Le fichier example.jsonl contient quelques exemples fictifs à des fins de démonstration.

  • Utilise vos données perso (example.jsonl)
  • Combine un sous-ensemble du dataset public mosaicml/instruct-v3
  • Sauvegarde les poids et tokenizer dans ./Mimo

🧑‍💻 Exemples d’utilisation

Génération de code

# Assurez-vous que le modèle et le tokenizer sont chargés correctement
# Exemple d'inférence pour la génération de code
prompt_code = "Écris une fonction Python pour calculer la somme des éléments d'une liste."
inputs_code = tokenizer(prompt_code, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs_code = model.generate(
        **inputs_code,
        max_new_tokens=100,
        pad_token_id=tokenizer.eos_token_id
    )
generated_code = tokenizer.decode(outputs_code[0], skip_special_tokens=True)
print("--- Génération de Code ---")
print(generated_code)

Conversation

# Exemple d'inférence pour la conversation
prompt_conversation = "Quelle est la meilleure façon d'apprendre une nouvelle langue ?"
inputs_conversation = tokenizer(prompt_conversation, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs_conversation = model.generate(
        **inputs_conversation,
        max_new_tokens=50,
        pad_token_id=tokenizer.eos_token_id
    )
generated_conversation = tokenizer.decode(outputs_conversation[0], skip_special_tokens=True)
print("\n--- Génération de Conversation ---")
print(generated_conversation)

📊 Performances comparatives

Modèle Code (Python) Conversation Mémoire requise
GPT-Neo 1.3B ⭐⭐ ⭐⭐ ~12 Go
DeepSeek-Qwen-1.5B (base) ⭐⭐⭐ ⭐⭐⭐ ~10 Go
Mimo-1.5B (fine-tuned) ⭐⭐⭐⭐ ⭐⭐⭐⭐ ~8 Go (quantisé)

➡️ Mimo surpasse la version de base sur les benchmarks internes (code + QA).

Mimo Performance


🧠 Visualisations comparatives

Afin d’illustrer les forces de Mimo par rapport aux autres modèles, plusieurs visualisations ont été générées à partir de benchmarks internes (Septembre 2025).

🔹 1. Radar de performance

Radar Performance

Ce diagramme radar compare les capacités globales (Code, Conversation, Mémoire, Raisonnement).
➡️ Mimo domine sur tous les axes, montrant son équilibre entre compréhension et génération.


🔹 2. Entraînement & efficacité

Entraînement

Comparaison des métriques d’entraînement :

  • ⏱ Temps d’entraînement plus court
  • 📉 Perte finale plus faible
  • 💾 Mémoire optimisée

➡️ Mimo apprend plus vite et avec moins de ressources.


🔹 3. Classification & Clustering

Classification & Clustering

Ce graphique montre comment chaque modèle regroupe les données en classes.
➡️ Les clusters prédits par Mimo sont plus nets et bien séparés, preuve de sa meilleure capacité de généralisation.


🔹 4. Précision en classification

Métriques de classification

Comparaison des scores : Accuracy, Recall, F1-score.
➡️ Mimo garde une avance claire sur la précision et la robustesse des prédictions.


🔹 5. Raisonnement avancé

Raisonnement Mimo

Testé sur des tâches de raisonnement logique et contextuel.
➡️ Mimo démontre une supériorité dans la résolution de problèmes complexes.


🔹 6. Conscience artificielle (concept)

Conscience artificielle

Visualisation heatmap sur 5 axes : Perception, Mémoire, Raisonnement, Créativité, Auto-adaptation.
➡️ Mimo émerge comme le modèle le plus “conscient”, avec des scores nettement supérieurs aux autres.


📂 Structure du dépôt

Mimo/
├── README.md
├── assets/mimo.png
├── mohamed.jsonl
├── fine_tune_mimo.py
├── requirements.txt
└── .gitignore

🛠️ Intégration dans VSCode

  1. Clonez le dépôt :
    git clone https://github.com/votre-utilisateur/mimo-llm.git
    cd mimo-llm
    
  2. Installez les dépendances :
    pip install -r requirements.txt
    
  3. Exécutez soit :
    • fine_tune_mimo.py → pour l’entraînement
    • un script d’inférence personnalisé

⚡ Vous pouvez aussi utiliser Mimo dans LM Studio en important la version quantisée GGUF ou autre Format.


📧 Auteur

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mimo_llm-0.1.4.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mimo_llm-0.1.4-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file mimo_llm-0.1.4.tar.gz.

File metadata

  • Download URL: mimo_llm-0.1.4.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for mimo_llm-0.1.4.tar.gz
Algorithm Hash digest
SHA256 8509248ac0858eebf08906d9da767c0ca276c1a021049853f9a7a5fc1b6fa424
MD5 66c2b20e29e7e0bb2d49ddac664a2e8f
BLAKE2b-256 9f0f4ad33d5ae9d08b67f5070ab29092cd67f37872e0d6fd892270e5d1134621

See more details on using hashes here.

File details

Details for the file mimo_llm-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: mimo_llm-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for mimo_llm-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 993caa5e359fef910ab7c8706f3b0654f0f7c55973446b47f4cd3c3e9a00ed29
MD5 eae70340ed0d229aae2e793c56d8a31a
BLAKE2b-256 16e41ad3335b7bb3ef160550ded6d9936a0dfd54c551ce637d7513fce4dc07b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page