Trouvez les réponses aux questions fréquentes sur les services d'inférence en ligne EAS, notamment les problèmes de déploiement, les stratégies de mise à l'échelle et les étapes de dépannage.
Interrogez d'abord l'assistant PAI
L'assistant IA PAI (Xiao PAI) couvre toute la suite de produits PAI : il fournit des conseils d'utilisation et offre des capacités de diagnostic pour les instances DSW, les tâches DLC et les services EAS. Il identifie automatiquement les causes d'échec et recommande les prochaines étapes ainsi que les outils appropriés.

Problèmes de déploiement et d'état des services
Après le déploiement d'un service, consultez l'état des instances, les journaux et les événements dans la liste Overview de la page Service instances pour résoudre les problèmes.
Q : Le service reste bloqué à l'état Waiting pendant une longue période. Comment résoudre ce problème ?
Lorsque vous déployez un service, celui-ci passe à l'état Waiting pendant la planification des ressources et le démarrage des instances. Lorsque toutes les instances ont démarré avec succès, le service passe à l'état Running. Les scénarios suivants peuvent provoquer un état Waiting prolongé :
Q : Le service est à l'état Failed. Comment résoudre ce problème ?
Un service passe à l'état Failed dans deux situations :
Pendant le déploiement : Si une ressource spécifiée au moment du déploiement (comme un chemin de modèle) n'existe pas, l'état du service affiche la raison de l'erreur. Le message d'erreur indique généralement pourquoi le déploiement a échoué.
-
Pendant le démarrage : Si le service échoue après la réussite du déploiement et le début de la planification, l'état affiche :
Instance <network-test-5ff76448fd-h9dsn> not healthy: Instance crashed, please inspect instance log.Ce message signifie qu'une ou plusieurs instances n'ont pas pu démarrer. Consultez la liste Service instances sur la page Overview du service pour identifier la cause spécifique. Les causes d'échec courantes incluent :
L'instance a manqué de mémoire pendant le démarrage et le système l'a arrêtée (OOMKilled). Redéployez le service avec une allocation de mémoire plus élevée. Dans la liste des instances, la colonne Last exit reason affiche OOMKilled(247), indiquant que le conteneur a été arrêté pour avoir dépassé la limite de mémoire. Vérifiez les colonnes Restart count et Last exit reason pour une confirmation supplémentaire.
Une erreur de code a provoqué un crash pendant le démarrage. Dans ce cas, Last status affiche Error(code d'erreur). Cliquez sur Log dans la colonne Actions de l'instance pour consulter les journaux du service et identifier l'échec du démarrage.
L'image du service n'a pas pu être extraite. Consultez la section Que faire si l'extraction d'image échoue (ImagePullBackOff) ?
Q : Que faire si l'extraction d'image échoue (ImagePullBackOff) ?
Si la colonne Last exit reason de la liste des instances de service affiche ImagePullBackOff, l'extraction de l'image a échoué. Si une icône apparaît dans la colonne Status , cliquez dessus pour afficher la raison spécifique.
Les causes courantes d'échec de l'extraction d'image sont répertoriées ci-dessous :
Cause | Message d'erreur | Solution |
Espace disque système insuffisant |
| |
Contrôle d'accès ACR non configuré |
| Pour utiliser une adresse d'image publique, activez l'accès public pour ACR. Pour utiliser une adresse d'image privée :
|
Mauvaise configuration du réseau EAS |
| Pour utiliser une adresse d'image publique, configurez l'accès Internet pour EAS. |
Identifiants manquants ou invalides |
| Si votre instance ACR Enterprise Edition n'autorise pas les extractions anonymes et que vous effectuez une extraction interrégionale via Internet, configurez le nom d'utilisateur et le mot de passe du registre d'images dans la configuration du service EAS. Consultez la rubrique Configurer les identifiants d'accès. |
En fonction des régions où se trouvent le registre d'images et le service EAS, suivez les instructions suivantes :
Même région : Extrayez les images à l'aide de l'adresse d'image privée.
-
Régions différentes : ACR Personal Edition prend uniquement en charge les adresses d'images publiques. Pour ACR Enterprise Edition, choisissez en fonction de vos besoins :
Pour une sécurité et une fiabilité accrues, utilisez une adresse d'image privée. Cela nécessite de connecter les VPC via CEN. Consultez la rubrique Accéder aux instances ACR Enterprise Edition entre régions ou depuis un centre de données.
Pour des scénarios plus simples ou lorsque la connectivité au réseau privé n'est pas encore disponible, utilisez une adresse d'image publique comme solution temporaire. Les téléchargements via le réseau public sont plus lents.
Notes supplémentaires pour ACR Enterprise Edition :
Configurez le contrôle d'accès pour l'accès VPC et l'accès au réseau public selon vos besoins.
Si le dépôt n'autorise pas les extractions anonymes, les extractions interrégionales via l'adresse publique nécessitent la configuration du nom d'utilisateur et du mot de passe du registre d'images dans le service EAS.
Q : Le service EAS redémarre automatiquement après avoir été arrêté. Que se passe-t-il ?
Description du problème : Un service EAS redémarre tout seul après avoir été arrêté pendant une certaine période.
Cause racine :
Le service est configuré avec une mise à l'échelle automatique dont le nombre minimal d'instances est de 0. Lorsque le trafic s'arrête pendant une certaine période, le nombre d'instances revient automatiquement à 0. Si une requête arrive alors qu'aucune instance n'est disponible en raison de cette réduction, EAS déclenche automatiquement une augmentation de la capacité — cela ne nécessite pas que le seuil de mise à l'échelle configuré soit atteint.
Vérifiez les événements de déploiement pour les messages auto scaling afin de confirmer si une mise à l'échelle automatique a eu lieu. Une entrée Service is now auto scaling dans la colonne d'informations indique que le service a été déclenché pour augmenter sa capacité automatiquement, après quoi l'état de l'événement passe de Waiting à Scaling, puis à Running, et le nombre d'instances disponibles passe de 0 à 1.
Solution :
Si le service n'est plus nécessaire, supprimez-le.
Pour conserver le service mais empêcher le redémarrage automatique, arrêtez-le via la console ou en appelant l'API
StopService. Un service arrêté manuellement ne sera pas mis à l'échelle lorsque du trafic arrivera.Pour empêcher la mise à l'échelle automatique d'arrêter le service, ne définissez pas le nombre minimal d'instances sur 0.
Désactivez entièrement la mise à l'échelle automatique si vous craignez qu'un trafic inattendu ne déclenche une augmentation de la capacité.
Q : Le démarrage de PAI-EAS échoue avec IoError(Os { code: 28, kind: StorageFull, message: "No space left on device" })
Description du problème :
[2024-10-21 20:59:33] serialize_file(_flatten(tensors), filename, metadata=metadata)
[2024-10-21 20:59:33] safetensors_rust.SafetensorError: Error while serializing: IoError(Os { code: 28, kind: StorageFull, message: "No space left on device" })
[2024-10-21 20:59:35] time="2024-10-21T12:59:35Z" level=info msg="program stopped with status:exit status 1" program=/bin/sh
Cause racine : Le disque système de l'instance EAS est plein en raison de fichiers de modèle volumineux. Cela empêche le service de démarrer.
Solutions :
Option 1 : Étendez le disque système de l'instance EAS.
Option 2 : Si les fichiers de modèle sont trop volumineux, stockez-les dans un stockage externe (OSS, NAS ou similaire) et lisez-les à l'aide des montages de stockage .
Q : Le déploiement échoue avec fail to start program with error: fork/exec /bin/sh: exec format error
L'erreur exec format error signifie que le système d'exploitation ne peut pas exécuter le binaire cible. La cause la plus fréquente est une incompatibilité d'architecture CPU entre l'exécutable ou l'image de conteneur et la machine hôte.
Essayez une spécification de ressource différente.
Q : Erreur : Invalid GPU count 6, only supported: [0 1 2 4 8 16]
Le nombre de GPU par service doit être une puissance de 2 pour maximiser l'efficacité de la communication inter-GPU.
Nombre de GPU pris en charge par service : 0, 1, 2, 4, 8 ou 16.
Problèmes de ressources
Pour les questions relatives aux ressources de calcul et à l'utilisation du disque système, consultez la rubrique FAQ sur la configuration des ressources .
Mises à jour et mise à l'échelle des services
Q : Quelles stratégies de mise à l'échelle EAS prend-il en charge ?
Choisissez une stratégie de mise à l'échelle en fonction des besoins de votre charge de travail. EAS prend en charge la mise à l'échelle automatique horizontale et la mise à l'échelle planifiée.
Pour la mise à l'échelle automatique horizontale, configurez-la en fonction de métriques personnalisées telles que les QPS ou l'utilisation du CPU. Pour les méthodes de calcul des métriques et les détails de configuration, consultez la rubrique Mise à l'échelle automatique horizontale .
Pour éviter les oscillations dues aux fluctuations des métriques, EAS applique une bande de tolérance de 10 % aux seuils. Par exemple, avec un seuil QPS de 10, la mise à l'échelle vers le haut se déclenche lorsque les QPS dépassent constamment 11 (10 × 1,1). Cela signifie que :
Les pics brefs de QPS entre 10 et 11 ne déclenchent pas immédiatement la mise à l'échelle vers le haut.
La mise à l'échelle vers le haut ne se déclenche que lorsque les QPS restent à 11–12 ou plus pendant une période soutenue.
Cette bande de tolérance réduit les modifications de ressources inutiles et améliore la stabilité et l'efficacité des coûts.
Q : Où s'exécutent les instances mises à l'échelle vers le haut ?
Si vous utilisez un groupe de ressources dédié avec un pool de ressources élastique configuré, les instances sont mises à l'échelle vers le groupe de ressources public lorsque le groupe de ressources dédié ne dispose d'aucun nœud disponible.
Q : Comment mettre à jour un service sans interruption ?
Scénario : Mettre à jour le service sans interruption. Lorsque le groupe de ressources dédié ne dispose pas d'une capacité suffisante, exécutez temporairement de nouvelles instances sur des ressources publiques, puis replanifiez-les vers le groupe de ressources dédié après la mise à jour.
-
Solution : Combinez les mises à jour progressives, la déscheduling des ressources à haute priorité et un pool de ressources élastique.
Configurez les mises à jour progressives : Cela permet d'éviter les interruptions de service. Sous , configurez la stratégie de mise à jour progressive. Pour plus de détails, consultez la rubrique Mises à jour progressives et arrêt gracieux . Sur la page de déploiement personnalisé, dans la section Stability assurance, activez Rolling update, puis définissez les paramètres Max surge et Max unavailable dans la boîte de dialogue de configuration et cliquez sur OK.
Activez un pool de ressources élastique : Cela permet aux instances qui dépassent la capacité des ressources dédiées de s'exécuter sur des ressources publiques à la demande. Pour plus de détails, consultez la rubrique Pool de ressources élastique .
Activez high-priority resource descheduling : Lorsque le groupe de ressources dédié libère de la capacité (par exemple, après la suppression des anciennes instances), EAS replanifie automatiquement les instances exécutées sur des ressources publiques vers le groupe de ressources dédié afin de réduire les coûts.
Problèmes d'appel de service
Erreurs d'appel
Effectuez le dépannage en fonction du code d'état HTTP renvoyé. Pour plus de détails, consultez la rubrique Codes d'état et erreurs des services .
HTTPS et domaines personnalisés
Q : EAS prend-il en charge les appels HTTPS ?
Oui. Remplacez http:// par https:// dans l'URL du endpoint du service pour activer le transport chiffré. Si le client (tel que la bibliothèque Python requests ) signale une erreur de vérification du certificat SSL, il s'agit d'un problème de configuration côté client, et non d'un problème EAS.
Q : Comment forcer l'accès HTTPS uniquement ?
Passerelle partagée : La redirection HTTPS n'est pas prise en charge.
Passerelle dédiée : Pris en charge. Activez HTTPS redirect dans la configuration de la passerelle dédiée. Une fois activée, toutes les requêtes HTTP sont automatiquement redirigées vers HTTPS.
Q : Puis-je appeler un service à l'aide d'un domaine personnalisé ?
Oui. Créez et utilisez une passerelle dédiée entièrement gérée, puis configurez votre domaine personnalisé dans les paramètres de la passerelle. Pour plus de détails, consultez la rubrique Utiliser une passerelle dédiée .
Gestion des jetons
Q : Le jeton du service expire-t-il ou change-t-il ?
Non. Le Token généré lors du déploiement d'un service est de longue durée. Le redémarrage, la mise à jour (sauf si vous modifiez manuellement la méthode d'authentification) ou la mise à l'échelle du service ne modifient pas le Token. Le Token n'est invalidé que lorsque vous le réinitialisez manuellement ou que vous supprimez le service.
Q : Puis-je créer plusieurs jetons pour un seul service ?
Non. Chaque instance de service EAS prend en charge un seul Token d'authentification. Pour la gestion des autorisations multi-utilisateurs ou le suivi distinct de l'utilisation, utilisez l'authentification basée sur Alibaba Cloud RAM ou une solution de contrôle d'accès similaire.
Autres problèmes d'appel
Q : Comment activer les réponses en streaming pour un service LLM ?
EAS ne dispose pas de commutateur global pour le streaming. Spécifiez le streaming individuellement dans le corps de chaque requête API. Par exemple, lors de l'appel d'un service LLM compatible OpenAI, incluez "stream": true dans le corps de la requête JSON.
Q : Quelle est la différence entre les appels via l'adresse VPC et la connexion directe VPC ?
Appels via l'adresse VPC : Les requêtes passent par un SLB interne plus une passerelle (les appels via l'adresse publique passent par un SLB public plus une passerelle). Il s'agit du chemin de requête standard. Chaque requête passe par le transfert de couche 4 au niveau du SLB et le transfert de couche 7 au niveau de la passerelle avant d'atteindre l'instance de service. En cas de forte concurrence et de trafic intense, ce transfert ajoute une surcharge de latence. La passerelle possède également un plafond de bande passante (1 Gbps par défaut).
-
Connexion directe VPC : EAS propose un mode de connexion directe à haute vitesse qui répond aux exigences de performance et d'évolutivité sans coût supplémentaire. L'activation de la connexion directe VPC établit un chemin réseau entre votre VPC et le VPC du service EAS. Vos requêtes utilisent la découverte de service EAS pour localiser le service, puis effectuent un équilibrage de charge logiciel côté client. Cela nécessite le SDK EAS et le réglage de endpoint_type sur DIRECT.
Par exemple, dans le scénario du SDK Python , ajoutez la ligne suivante à votre code pour passer des appels via la passerelle à la connexion directe :
-
client = PredictClient('http://pai-eas-vpc.cn-hangzhou.aliyuncs.com', 'mnist_saved_model_example') client.set_token('M2FhNjJlZDBmMzBmMzE4NjFiNzZhMmUxY2IxZjkyMDczNzAzYjFi****') client.set_endpoint_type(ENDPOINT_TYPE_DIRECT) # Direct link client.init()
-
Autorisations et mise en réseau
Q : Pourquoi un utilisateur RAM ne peut-il pas créer ou supprimer automatiquement le rôle lié au service EAS ?
Seuls les utilisateurs disposant d'autorisations spécifiques peuvent créer ou supprimer automatiquement AliyunServiceRoleForPaiEas . Si un utilisateur RAM ne peut pas effectuer cette action, accordez-lui la stratégie requise comme suit :
-
Créez la stratégie suivante en tant que stratégie personnalisée à l'aide de la méthode de configuration basée sur des scripts. Pour plus de détails, consultez la rubrique Créer une stratégie personnalisée .
Attachez la stratégie personnalisée créée à l'étape précédente à l'utilisateur RAM cible. Pour plus de détails, consultez la rubrique Gérer les autorisations des utilisateurs RAM .
Q : Comment un service EAS accède-t-il à Internet ?
Les services EAS n'ont pas accès à Internet par défaut. Pour activer l'accès à Internet, configurez un VPC avec connectivité Internet pour le service EAS. Consultez la rubrique Accès EAS aux ressources publiques et privées .
Gestion des services
Q : EAS prend-il en charge l'accès SSH aux instances ?
Non. EAS est un service géré et ne fournit pas d'accès SSH aux conteneurs. Pour exécuter des commandes spécifiques au démarrage du conteneur, spécifiez-les dans le champ Run Command de la configuration du service.
Q : Quels sont les états des services EAS ?
Les services EAS présentent les états suivants. Vous pouvez également consulter l'état dans la colonne d'état sur la page Model Serving (EAS) .
Creating
Waiting — en attente du démarrage des instances
Stopped
Failed
Updating — les instances sont en cours de mise à jour
Stopping
HotUpdate — mise à jour sans remplacement des instances
Starting
DeleteFailed
Running
Scaling — les instances sont en cours de mise à l'échelle
Pending — en attente de traitement
Deleting
Completed
Preparing
Q : Comment savoir quel utilisateur RAM a créé un service ?
Interrogez les événements dans la console ActionTrail . Définissez le filtre de nom d'événement sur CreateService . Pour plus de détails, consultez la rubrique Interroger les événements dans la console ActionTrail .
Q : Puis-je télécharger les images officielles PAI depuis Internet ?
Non. Les images officielles PAI sont des images internes à la plateforme et ne peuvent être utilisées qu'au sein de la plateforme PAI. Elles ne peuvent pas être téléchargées en dehors des conteneurs de la plateforme.
Q : Quelles sont les règles d'unicité pour les noms de service PAI-EAS et les ID de service ?
Unicité du nom de service : Les noms de service EAS sont uniques au niveau mondial dans une seule région. Si vous voyez une erreur « le nom de service existe déjà » lors de la création d'un service, mais que le nom n'apparaît pas dans la liste Model Serving (EAS) , un autre utilisateur de la même région a pris ce nom. Choisissez un nom différent et réessayez.
Unicité de l'ID de service : Les ID de service PAI-EAS sont uniques au niveau mondial et attribués automatiquement par le système. Vous ne pouvez pas les spécifier manuellement.
Q : Le nom du service peut-il être modifié après le déploiement du service ?
Non. Le nom du service ne peut pas être modifié après sa création. En tant qu'identifiant unique pour les appels API et les opérations de gestion, le champ du nom du service est désactivé dans le formulaire Update de la console. Si vous devez modifier le nom du service, créez un nouveau service et supprimez le service d'origine. Notez que cela entraînera une interruption de service et un changement d'adresse IP.
Q : Dois-je racheter EAS après avoir désactivé le module ? Que faire si je ne trouve pas mes instances de service ?
Aucun rachat nécessaire : Une fois activé, PAI-EAS reste disponible indéfiniment. Pour l'utiliser à nouveau, accédez à la console PAI , sélectionnez ou créez un espace de travail, et créez une instance EAS dans cet espace de travail. Aucun achat supplémentaire ni réactivation n'est requis.
-
Si vous ne trouvez pas vos instances :
Connectez-vous à la console PAI et vérifiez que l'Workspace affiché en haut de la page est bien celui que vous recherchez.
Si l'espace de travail a été supprimé ou changé, recherchez la liste Model Serving (EAS) depuis la page Overview ou dans l'espace de travail cible.
Si la liste n'affiche aucune donnée et aucune instance, aucune instance EAS facturable n'a été créée dans cet espace de travail. L'activation du module seul n'entraîne aucun frais et ne nécessite aucun nettoyage supplémentaire.
Autres
Q : Pourquoi ne puis-je pas sélectionner un compartiment OSS lors du déploiement d'un service EAS ?
Lors du déploiement d'un service EAS, vous pouvez monter des modèles et du code en spécifiant des emplacements de stockage. Assurez-vous que le compartiment OSS et le système de fichiers NAS se trouvent dans la même région que le service EAS. Le stockage interrégional ne peut pas être sélectionné.
Q : Problèmes TensorFlow
Pour plus de détails, consultez la rubrique FAQ TensorFlow .