Tous les produits
Search
Centre de documentation

Platform For AI:Custom processors FAQ

Dernière mise à jour :Sep 06, 2026

Cette rubrique répond aux questions fréquentes concernant le déploiement et l'exécution de processeurs personnalisés sur Elastic Algorithm Service (EAS).

Problèmes de déploiement

Problèmes d'exécution

Authentification et configuration

Comment améliorer l'efficacité du téléchargement d'un package de processeur personnalisé ?

Utilisez des images Docker pour empaqueter votre environnement d'exécution et vos fichiers volumineux. Lorsque votre code change, seules les couches modifiées doivent être reconstruites et poussées, et non l'intégralité du package. Cette approche accélère considérablement les itérations pendant le développement.

Pour plus de détails, consultez la rubrique Développer des processeurs personnalisés à l'aide de Python.

Comment résoudre l'erreur « libSM.so.6: cannot open shared object file: No such file or directory » lors de l'importation de cv2 ?

Le package standard pip install opencv dépend des bibliothèques libXext, libSM et libXrender, qui ne sont pas préinstallées dans l'environnement d'exécution EAS. Le package peut fonctionner dans un environnement de test local, mais échouer lors du déploiement en ligne.

Résolvez ce problème en appliquant l'une des approches suivantes :

  • Recommandé : Installez plutôt opencv-python-headless. Cette variante ne dépend ni de libXext, ni de libSM, ni de libXrender.

    pip install opencv-python-headless
  • Alternative : Localisez les fichiers binaires de libXext, libSM et libXrender sur votre système local, copiez-les dans le répertoire ENV/lib au sein de votre package de processeur, puis téléchargez le package.

    Remarque : Cette approche peut introduire des problèmes de dépendance supplémentaires que vous devrez résoudre séparément.

Comment configurer les variables d'environnement dans un processeur Python EAS ?

EAS ajoute automatiquement tous les sous-répertoires du répertoire du processeur à LD_LIBRARY_PATH, de sorte que les bibliothèques de dépendances stockées n'importe où dans le répertoire du processeur sont détectées automatiquement.

Pour les autres variables d'environnement, définissez-les par programmation dans votre code Python :

import os
os.environ['key'] = 'val'

Comment empêcher un processus de s'arrêter en raison d'une exception non gérée ?

Entourez les sections critiques de la logique de votre service de blocs try-catch afin d'éviter que des exceptions non gérées ne terminent le processus.

Si le processus s'arrête pour une raison quelconque, EAS le redémarre automatiquement pour maintenir la disponibilité du service. La gestion des exceptions au niveau de l'application vous offre un contrôle plus fin et évite les redémarrages inutiles.

Comment configurer un AccessKey et un endpoint ?

Les services de prédiction EAS utilisent un AccessKey Alibaba Cloud pour l'authentification des identités. Configurez votre AccessKey ID, votre AccessKey Secret et votre endpoint à l'aide de la commande eascmd64 config :

./eascmd64 config -i <yourAccessKeyID> -k <yourAccessKeySecret> -e <endpoint>

L'endpoint par défaut se connecte à la région Chine (Shanghai). Pour déployer dans une autre région, spécifiez l'endpoint de cette région avec le paramètre -e. Par exemple, pour utiliser la région Chine (Pékin) :

./eascmd64 config -i <yourAccessKeyID> -k <yourAccessKeySecret> -e pai-eas.cn-beijing.aliyuncs.com

Pourquoi une tâche créée avec EASCMD reste-t-elle à l'état « [OK] Waiting [Total: 1, Pending: 1, Running: 0] » ?

La tâche est en attente car le groupe de ressources ne dispose pas de suffisamment de ressources disponibles pour démarrer les instances demandées.

Vérifiez les points suivants dans votre fichier de configuration de service :

  1. Région : Vérifiez que metadata.region correspond à la région où se trouve votre groupe de ressources.

  2. Nom du groupe de ressources : Vérifiez que metadata.resource indique le nom correct du groupe de ressources pour cette région (par exemple, EAS-LsFlrwBP56).

  3. Ressources disponibles : Vérifiez que le groupe de ressources dispose de suffisamment de GPU, de CPU et de mémoire libres pour satisfaire le nombre d'instance que vous avez configuré.

L'exemple de configuration suivant illustre les champs pertinents :

{
  "name": "service",
  "token": "[Authorization-token]",
  "data_image": "[your-public-docker-image-repo]",
  "processor_entry": "app.py",
  "processor_type": "python",
  "processor_path": "[oss://eas-model-shenzhen/xxxxxxxxx/codes.tar.gz]",
  "metadata": {
    "region": "cn-shenzhen",
    "resource": "resource-name",
    "gpu": 1,
    "cpu": 6,
    "memory": 2000,
    "instance": 2,
    "cuda": "10.0"
  }
}

Dans cet exemple, chaque instance nécessite 1 GPU, 6 CPU et 2 000 B de mémoire. Si le groupe de ressources ne peut pas satisfaire cette demande pour 2 instances simultanément, la tâche reste à l'état d'attente.

Que faire si un service EAS ne peut pas accéder au réseau public ?

Par défaut, les services EAS ne peuvent pas accéder au réseau public. Si le code de votre processeur télécharge des fichiers depuis Internet au démarrage, le déploiement échouera avec une erreur de chargement de fichier.

Pour résoudre ce problème, configurez une connexion au réseau public pour votre service EAS.

Conseil : Avant le déploiement, testez votre processeur localement pour confirmer qu'il ne dépend pas d'un accès au réseau public qui pourrait être indisponible dans l'environnement EAS.

Erreur : « Download processor files failed: forbidden to download file with size larger than 10G »

EAS limite la taille combinée du modèle et du package de processeur à 10 Go. Si votre package dépasse cette limite, utilisez plutôt le déploiement personnalisé basé sur une image via la console.