Erreurs courantes lors de l'installation et du déploiement de modèles

Guide de dépannage pour les erreurs fréquentes rencontrées lors de l'installation et du déploiement de modèles en production.

kafu 20/04/2025 19 vues

Erreurs courantes lors de l'installation et du déploiement de modèles

Ce guide de résolution de problèmes couvre les erreurs les plus fréquemment rencontrées lors de l'installation de la plateforme Techsolut et du déploiement de modèles de vision par ordinateur en production. Pour chaque problème, nous proposons un diagnostic précis et des solutions étape par étape.

Problèmes d'installation

Erreur : "Dépendances Python manquantes"

Symptômes

  • Messages d'erreur du type ModuleNotFoundError: No module named 'X'
  • Installation qui s'interrompt avec des erreurs de dépendances
  • Conflits de versions entre packages

Solutions

  1. Utiliser l'environnement virtuel recommandé
    bash python -m venv techsolut_env source techsolut_env/bin/activate # Linux/Mac techsolut_env\Scripts\activate # Windows

  2. Installer toutes les dépendances avec le fichier requirements.txt
    bash pip install --upgrade pip setuptools wheel pip install -r requirements.txt

  3. En cas de conflit de versions

  4. Créez un nouvel environnement virtuel propre
  5. Installez les packages dans l'ordre spécifié dans la documentation
  6. Utilisez l'option --no-deps pour les packages problématiques puis installez leurs dépendances manuellement

  7. Pour les problèmes avec les binaires (PyTorch, TensorFlow)

  8. Vérifiez la compatibilité CUDA si vous utilisez un GPU
  9. Installez la version spécifique compatible avec votre matériel :
    bash pip install torch==X.X.X+cu11X -f https://download.pytorch.org/whl/torch_stable.html

Erreur : "CUDA non disponible"

Symptômes

  • Messages indiquant CUDA not available ou No CUDA GPUs are available
  • Performance très lente lors de l'entraînement
  • Erreurs lors du lancement de tâches GPU

Solutions

  1. Vérifier l'installation des pilotes NVIDIA
    bash nvidia-smi
    Si cette commande échoue, réinstallez les pilotes NVIDIA

  2. Vérifier la version de CUDA
    bash nvcc --version
    Assurez-vous qu'elle est compatible avec votre version de PyTorch/TensorFlow

  3. Réinstaller PyTorch avec le support CUDA approprié
    bash pip uninstall torch pip install torch==X.X.X+cuXXX -f https://download.pytorch.org/whl/torch_stable.html

  4. Tester la disponibilité de CUDA
    python import torch print(torch.cuda.is_available()) print(torch.cuda.device_count()) print(torch.cuda.get_device_name(0))

  5. Si CUDA n'est pas disponible sur votre machine

  6. Configurez Techsolut pour utiliser uniquement le CPU
  7. Ou utilisez notre option de calcul distant sur nos serveurs GPU

Erreur : "Échec de connexion à la base de données"

Symptômes

  • Messages d'erreur comme OperationalError: unable to open database file
  • Impossible de démarrer l'application
  • Échec lors de la création ou migration de la base de données

Solutions

  1. Vérifier les permissions sur le dossier de la base de données
    bash ls -la /chemin/vers/dossier/db chmod -R 755 /chemin/vers/dossier/db

  2. Vérifier la configuration de connexion

  3. Assurez-vous que les informations dans config.py sont correctes
  4. Pour PostgreSQL/MySQL, vérifiez que le service est actif et accessible

  5. Réinitialiser la base de données (si possible)
    bash flask db reset # Attention : cela supprime toutes les données existantes flask db upgrade

  6. Pour les bases de données distantes

  7. Vérifiez que le pare-feu autorise les connexions
  8. Testez la connexion avec un client SQL standard
  9. Vérifiez les limitations de votre hébergeur (quotas, nombre de connexions)

Problèmes de déploiement

Erreur : "Mémoire insuffisante lors de l'inférence"

Symptômes

  • Erreurs CUDA out of memory
  • Application qui plante lors du traitement d'images
  • Performances qui se dégradent avec le temps

Solutions

  1. Réduire la taille du batch
  2. Dans config.py, modifiez BATCH_SIZE à une valeur plus petite
  3. Pour l'API, limitez le nombre de requêtes simultanées

  4. Optimiser le modèle pour l'inférence

  5. Utilisez la quantification du modèle :
    python from techsolut.optimization import quantize_model quantized_model = quantize_model(model, quantization_type='dynamic')

  6. Utiliser le mode d'inférence efficace en mémoire

  7. Activez le mode gradient-free:
    python with torch.no_grad(): predictions = model(inputs)
  8. Utilisez notre fonction d'inférence optimisée :
    python from techsolut.inference import efficient_predict results = efficient_predict(model, data, max_batch_size=4)

  9. Libérer la mémoire GPU régulièrement

  10. Après chaque inférence de lot important :
    python torch.cuda.empty_cache()
  11. Pour les services à longue durée d'exécution, planifiez des redémarrages périodiques

Erreur : "Latence élevée en production"

Symptômes

  • Temps de réponse très lent en production
  • Performance acceptable en développement mais pas en production
  • Timeouts des requêtes

Solutions

  1. Mesurer et identifier le goulot d'étranglement
    python from techsolut.profiling import profile_inference profile_results = profile_inference(model, sample_input) print(profile_results)

  2. Optimiser le prétraitement des images

  3. Utilisez le redimensionnement GPU si possible
  4. Prétraitez les images par lots (batch processing)
  5. Utilisez notre pipeline optimisé :
    python from techsolut.preprocessing import FastImageProcessor processor = FastImageProcessor(device='cuda')

  6. Implémenter le batching de requêtes

  7. Collectez les requêtes pendant un court intervalle
  8. Traitez-les ensemble plutôt qu'individuellement
  9. Utilisez notre middleware de batching automatique :
    python from techsolut.serving import BatchingMiddleware app = BatchingMiddleware(app, batch_size=16, timeout=0.1)

  10. Utiliser la mise en cache des résultats

  11. Pour les entrées répétitives ou similaires
  12. Configurez la mise en cache dans config.py
  13. Ou utilisez une solution comme Redis pour le cache distribué

Erreur : "Format de modèle incompatible"

Symptômes

  • Erreurs lors du chargement du modèle en production
  • Messages comme Error loading model ou Unsupported op
  • Incohérences entre les résultats dev/prod

Solutions

  1. Vérifier la compatibilité des versions
  2. Assurez-vous que les versions de PyTorch/TensorFlow sont identiques
  3. Utilisez la même architecture CPU/GPU en dev et prod si possible

  4. Convertir le modèle dans un format standard

  5. Exportez en ONNX pour une meilleure portabilité :
    python from techsolut.export import convert_to_onnx convert_to_onnx(model, 'model.onnx', input_shape=[1, 3, 224, 224])

  6. Vérifier l'intégrité du modèle

  7. Comparez les checksums des fichiers de modèle
  8. Utilisez notre outil de vérification :
    bash techsolut-cli verify-model chemin/vers/model.pth

  9. Utiliser la version correcte du modèle

  10. Vérifiez que vous n'utilisez pas un checkpoint d'entraînement au lieu du modèle final
  11. Pour les modèles Techsolut, utilisez l'exportation dédiée :
    python model.export(format='production', optimized=True)

Problèmes d'intégration

Erreur : "Échec d'intégration avec les systèmes existants"

Symptômes

  • Erreurs lors de l'échange de données avec d'autres systèmes
  • Incompatibilités de format entre Techsolut et vos systèmes
  • Problèmes de synchronisation des données

Solutions

  1. Utiliser les adaptateurs d'intégration
  2. Consultez notre bibliothèque d'adaptateurs dans /techsolut/integrations/
  3. Installez l'adaptateur spécifique à votre système :
    bash pip install techsolut-adapter-erp

  4. Configurer correctement les webhooks

  5. Vérifiez les URL et les formats des webhooks
  6. Testez avec notre outil de diagnostic :
    bash techsolut-cli test-webhook http://votre-systeme.com/webhook

  7. Utiliser le mode compatibilité

  8. Activez-le dans les paramètres d'intégration
  9. Spécifiez la version de votre système externe
  10. Utilisez les convertisseurs de format automatiques

  11. Consulter les logs spécifiques à l'intégration

  12. Activez la journalisation détaillée dans config.py
  13. Examinez /logs/integration.log pour les messages d'erreur spécifiques
  14. Utilisez notre outil de diagnostic d'intégration :
    bash techsolut-cli diagnose-integration --system=SAP --level=verbose

Erreur : "Problèmes d'authentification API"

Symptômes

  • Erreurs 401 ou 403 lors des appels API
  • Jetons expirant de façon inattendue
  • Problèmes d'authentification intermittents

Solutions

  1. Vérifier la configuration des clés API
  2. Assurez-vous que les clés dans .env ou secrets.yaml sont correctes
  3. Regénérez les clés API si nécessaire via le portail admin

  4. Configurer correctement l'authentification

  5. Pour OAuth2, assurez-vous que le flux est correctement implémenté
  6. Utilisez notre helper d'authentification:
    python from techsolut.auth import OAuth2Helper auth = OAuth2Helper(client_id, client_secret, redirect_uri)

  7. Gérer le renouvellement des jetons

  8. Implémentez la logique de rafraîchissement automatique des jetons
  9. Utilisez notre middleware de gestion de jetons :
    python from techsolut.auth import TokenRefreshMiddleware app.wsgi_app = TokenRefreshMiddleware(app.wsgi_app)

  10. Tester l'authentification de bout en bout

  11. Utilisez notre outil de test API :
    bash techsolut-cli test-auth --endpoint=prediction --api-key=votre_cle

Solutions aux erreurs spécifiques

Erreur : "ImportError: libcudnn.so.X: cannot open shared object file"

Cette erreur indique que les bibliothèques CUDA Deep Neural Network ne sont pas trouvées.

Solution

# Vérifier la version de CUDA installée
nvcc --version

# Installer la version correspondante de cuDNN
# Téléchargez depuis le site NVIDIA et installez :
tar -xzvf cudnn-X.X-linux-x64-v8.X.X.X.tgz
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

# Mettre à jour les variables d'environnement
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

Erreur : "RuntimeError: CUDA error: device-side assert triggered"

Cette erreur souvent cryptique indique généralement un problème avec les dimensions d'entrée ou les indices.

Solution

# Activer les informations de débogage CUDA
import os
os.environ['CUDA_LAUNCH_BLOCKING'] = '1'

# Vérifier les dimensions des tenseurs d'entrée
print(f"Input shape: {input_tensor.shape}")

# Vérifier que les indices de classe sont valides
num_classes = model.module.num_classes if hasattr(model, 'module') else model.num_classes
if (targets >= num_classes).any():
    raise ValueError(f"Target class indices exceed number of classes ({num_classes})")

# Vérifier les valeurs NaN
if torch.isnan(input_tensor).any():
    raise ValueError("Input contains NaN values")

Erreur : "OSError: Unable to load weights from pytorch checkpoint file"

Cette erreur survient lorsque la structure du modèle chargé ne correspond pas à celle du checkpoint.

Solution

# Chargement avec strict=False pour ignorer les mismatches non critiques
state_dict = torch.load('model_checkpoint.pth')
model.load_state_dict(state_dict, strict=False)

# Afficher les différences de clés
pretrained_dict = torch.load('model_checkpoint.pth')
model_dict = model.state_dict()
pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict}
missing_keys = set(model_dict.keys()) - set(pretrained_dict.keys())
unexpected_keys = set(pretrained_dict.keys()) - set(model_dict.keys())
print(f"Missing keys: {missing_keys}")
print(f"Unexpected keys: {unexpected_keys}")

# Utiliser notre outil de réconciliation de modèles
from techsolut.utils import reconcile_state_dict
fixed_state_dict = reconcile_state_dict(state_dict, model.state_dict())
model.load_state_dict(fixed_state_dict)

Comment obtenir de l'aide supplémentaire

Si vous rencontrez un problème qui n'est pas couvert par ce guide :

  1. Consulter les logs détaillés
  2. Activez la journalisation de débogage dans config.py
  3. Examinez /logs/debug.log pour les messages d'erreur détaillés

  4. Générer un rapport de diagnostic
    bash techsolut-cli generate-diagnostic-report --output=diagnostic.zip

  5. Contacter notre support technique

  6. Envoyez le rapport de diagnostic à support@techsolut.fr
  7. Incluez une description détaillée du problème
  8. Mentionnez les étapes que vous avez déjà essayées

  9. Consulter notre base de connaissances

  10. Visitez support.techsolut.fr
  11. Recherchez des problèmes similaires
  12. Consultez les mises à jour récentes et les notes de version

  13. Rejoindre notre communauté

  14. Posez vos questions sur notre forum communautaire
  15. Participez aux webinaires hebdomadaires de dépannage
  16. Consultez les discussions précédentes sur des problèmes similaires
Dans cette page
Articles similaires
IA