🤖 Déploiement Apertus-8B sur Ollama
Guide POC : Déployer Apertus-8B sur Ollama
📋 Analyse du document original
Corrections importantes identifiées :
- ✅ Le modèle Apertus-8B existe bien sur HuggingFace
- ❌ Le contexte n'est pas 65k tokens mais 65,536 tokens (valeur correcte)
- ❌ Le Modelfile proposé contient des erreurs de syntaxe
- ⚠️ Architecture xIELU + AdEMAMix : nécessite vérification de compatibilité avec llama.cpp
🎯 Approche POC Simplifiée
Option 1 : Import direct Safetensors (Recommandé pour POC)
# 1. Télécharger le modèle
huggingface-cli download swiss-ai/Apertus-8B-2509 --local-dir ./apertus-8b
# 2. Créer le Modelfile
echo "FROM ./apertus-8b" > Modelfile
# 3. Importer dans Ollama
ollama create apertus-8b -f Modelfile
# 4. Tester
ollama run apertus-8b
Option 2 : Via Hugging Face Hub (Plus simple)
# Import direct depuis HF (si disponible en GGUF)
ollama run hf.co/swiss-ai/Apertus-8B-2509
Option 3 : Conversion manuelle vers GGUF
# Installation des dépendances
pip install transformers torch sentencepiece
# Clone du repo llama.cpp
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
make
# Téléchargement du modèle
huggingface-cli download swiss-ai/Apertus-8B-2509 --local-dir ../apertus-8b
# Conversion vers GGUF
python convert_hf_to_gguf.py ../apertus-8b --outdir ../apertus-8b-gguf --outtype f16
# Création du Modelfile
echo "FROM ../apertus-8b-gguf/ggml-model-f16.gguf" > ../Modelfile
# Import dans Ollama
cd ..
ollama create apertus-8b -f Modelfile
🔧 Modelfile correct pour Ollama
# Modelfile corrigé
FROM /path/to/apertus-8b
# Paramètres recommandés pour Apertus
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER top_k 40
PARAMETER num_ctx 65536
# Template de chat (à adapter selon les besoins)
TEMPLATE """<|system|>
{{ .System }}</s>
<|user|>
{{ .Prompt }}</s>
<|assistant|>
"""
# Message système par défaut
SYSTEM """Vous êtes Apertus, un assistant IA multilingue développé par les institutions suisses EPFL, ETH Zurich et CSCS. Vous supportez plus de 1000 langues et êtes conçu pour être transparent, conforme et utile."""
⚠️ Points d'attention techniques
Architecture spécifique
- xIELU activation : fonction d'activation custom
- AdEMAMix optimizer : optimiseur spécialisé
- Ces éléments pourraient nécessiter des adaptations dans llama.cpp
Vérifications de compatibilité
# Test de base après import
ollama run apertus-8b "Bonjour, peux-tu me parler en français ?"
# Test multilingue
ollama run apertus-8b "Can you respond in Swiss German?"
# Test de contexte long
ollama run apertus-8b "Résume ce long texte..." # (avec un texte de plusieurs milliers de tokens)
🚀 Script automatisé POC
#!/bin/bash
# poc_apertus_ollama.sh
set -e
echo "🚀 Déploiement POC Apertus-8B sur Ollama"
# Variables
MODEL_NAME="apertus-8b-poc"
HF_REPO="swiss-ai/Apertus-8B-2509"
WORK_DIR="./apertus_poc"
# Création du répertoire de travail
mkdir -p $WORK_DIR
cd $WORK_DIR
# Téléchargement du modèle
echo "📥 Téléchargement du modèle..."
huggingface-cli download $HF_REPO --local-dir ./model
# Création du Modelfile
echo "📝 Création du Modelfile..."
cat > Modelfile << EOF
FROM ./model
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 65536
SYSTEM """Vous êtes Apertus, un assistant IA multilingue développé par les institutions suisses. Vous supportez plus de 1000 langues."""
EOF
# Import dans Ollama
echo "🔧 Import dans Ollama..."
ollama create $MODEL_NAME -f Modelfile
# Tests basiques
echo "🧪 Tests de base..."
echo "Test français:"
ollama run $MODEL_NAME "Bonjour ! Peux-tu te présenter en français ?"
echo -e "\nTest multilingue:"
ollama run $MODEL_NAME "Please introduce yourself in English"
echo -e "\n✅ POC terminé ! Utilisez: ollama run $MODEL_NAME"
📊 Tests de validation
Tests fonctionnels
- Réponse multilingue : vérifier le support des 1000+ langues
- Contexte long : tester avec des prompts approchant 65k tokens
- Performance : mesurer les temps de réponse
- Cohérence : comparer avec le modèle original sur HF
Commandes de test
# Test de performance
time ollama run apertus-8b "Explain quantum computing"
# Test de mémoire
ollama run apertus-8b "Remember this: [long context]. Now answer: [question]"
# Test multilingue spécifique Suisse
ollama run apertus-8b "Chuchichäschtli" # Test en suisse-allemand
🎯 Résultats attendus
Si le POC fonctionne :
- ✅ Import réussi dans Ollama
- ✅ Réponses multilingues cohérentes
- ✅ Support du contexte long (65k tokens)
- ✅ Performance acceptable
Limitations potentielles :
- ⚠️ Architecture xIELU pourrait ne pas être totalement compatible
- ⚠️ Certaines optimisations AdEMAMix pourraient être perdues
- ⚠️ Performance variable selon le hardware
Note importante : Ce guide est optimisé pour un POC rapide. Pour une utilisation en production, une conversion GGUF native et des optimisations supplémentaires seraient recommandées.
🛠️ Recommandations Techniques Spécifiques
Configuration Modelfile Optimisée :
modelfile
FROM apertus-8b-q4_K_M.gguf
TEMPLATE """<|begin_of_text|><|start_header_id|>system<|/start_header_id|>
{{ .System }}<|eot_id|><|start_header_id|>user<|/start_header_id|>
{{ .Prompt }}<|eot_id|><|start_header_id|>assistant<|/start_header_id|>
"""
PARAMETER temperature 0.7
PARAMETER top_k 40
PARAMETER top_p 0.9
PARAMETER repeat_penalty 1.1
PARAMETER num_ctx 32768 # Exploiter contexte étendu
PARAMETER stop "<|eot_id|>"
Option A : Modèles Pré-Configurés
bash
# Modèles déjà optimisés pour contexte business
ollama pull codellama:13b-instruct # Code + analyse
ollama pull vicuna:13b-v1.5 # Conversations longues
ollama pull nous-hermes2:34b # Reasoning avancé
Cette approche vous permet de tester l'IA locale tout en gardant votre solution opérationnelle !
swiss-ai/Apertus-8B-2509 · Hugging Face
https://huggingface.co/swiss-ai/Apertus-8B-2509
Tu peux maintenant interagir avec le modèle via l’interface Ollama ou en ligne de commande :
ollama run apertus
Teste avec des prompts multilingues ou longs contextes (jusqu’à 65k tokens pris en charge).
Je dois dire que cette solution Suisse me semble très intéressant
je vais tester https://huggingface.co/swiss-ai/Apertus-8B-2509
Mais les LLM sont instable, il faut une gouvernance de la cybersécurité voir https://clubsp2013.blogspot.com/2025/09/tableau-de-synthese-qui-integre-laxe-de.html
---
**📌 Structure du pipeline :**
2. **Chargement du modèle**
3. **Utilisation de `llama.cpp`**
4. **Inférence**
---
Aucun commentaire:
Enregistrer un commentaire
Merci pour ce commentaire