Tous les produits
Search
Centre de documentation

Platform For AI:Activer le traçage pour les applications LLM dans EAS

Dernière mise à jour :Aug 21, 2026

Activez le traçage distribué pour surveiller les performances des applications LLM, visualiser les chaînes d'appels et identifier les goulots d'étranglement.

Présentation

EAS s'intègre à ARMS pour ajouter de l'observabilité aux applications LLM, ce qui vous permet de tracer les chaînes d'appels, d'identifier les goulots d'étranglement en matière de performances et de détecter les erreurs.

Le traçage offre les fonctionnalités suivantes :

  • Visualisation des chaînes d'appels : cartographie du parcours complet des requêtes avec des journaux clairs.

  • Surveillance des performances : suivi du temps de réponse, de la consommation de jetons et du nombre d'erreurs pour identifier les goulots d'étranglement.

  • Identification des problèmes : localisation précise des problèmes via les ID de trace avec une analyse contextuelle des causes racines.

  • Évaluation : validation de la précision et de la fiabilité des sorties LLM à l'aide des données de trace.

Concepts clés

  • Trace

    Chemin d'exécution complet d'une requête dans un système distribué, composé de plusieurs spans. Chaque trace possède un TraceID unique permettant de suivre les flux de requêtes et d'identifier les goulots d'étranglement ou les erreurs.

  • Span

    Unité de base d'une trace représentant une opération spécifique. Enregistre le nom de l'opération, l'heure de début et l'heure de fin.

  • Sonde Python

    Collecte automatiquement les données de la chaîne d'appels et les métriques de performance des applications Python. Installez une sonde Python lors du déploiement d'un service EAS pour activer le traçage.

  • Évaluation

    Évalue les réponses des applications LLM selon plusieurs dimensions. Contactez votre gestionnaire de compte pour confirmer les noms spécifiques des dimensions d'évaluation.

Limites

Cette fonctionnalité prend uniquement en charge les applications LLM basées sur Python développées avec LangChain, LlamaIndex ou DashScope.

Prérequis

Étape 1 : Préparer l'exemple de code

Cette procédure pas à pas utilise un service de prédiction simple pour illustrer le déploiement, l'invocation et la consultation des traces.

Cet exemple utilise l'API DashScope avec Flask pour créer un service web qui appelle Generation.call afin de générer du texte. Activez DashScope et obtenez une clé API comme décrit dans Premier appel à l'API Tongyi Qianwen. Définissez DASHSCOPE_API_KEY comme variable d'environnement lors du déploiement du service. Voici un exemple de fichier app.py :

import os
import json
import flask
import dashscope

app = flask.Flask(__name__)

def run_query(query):
    """Run a query."""

    response = dashscope.Generation.call(
        api_key=os.getenv('DASHSCOPE_API_KEY'),
        model="qwen-plus",
        messages=[
            {'role': 'system', 'content': 'You are a helpful assistant.'},
            {'role': 'user', 'content': query}
        ],
        result_format='message'
    )
    return response

@app.route('/api/trace_demo', methods=['POST'])
def query():
    """
    Post data example:
    {
        "query": "capital of china"
    }
    """
    data = flask.request.get_data("utf-8")
    query = json.loads(data).get('query', '')
    response = run_query(query)
    return response.output.choices[0].message.content

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)  

Étape 2 : Activer le traçage

Lors du déploiement d'un service EAS, activez l'option Tracing dans la section Service Features. Si votre image ne contient pas de composant de traçage intégré, configurez les commandes d'installation et de démarrage de la sonde. Consultez la rubrique Installation manuelle d'une sonde Python.

  • Image avec traçage intégré : activez l'option Tracing. Aucune configuration supplémentaire n'est requise.

  • Image sans traçage intégré : activez l'option Tracing et configurez les bibliothèques tierces ainsi que la commande de démarrage.

    Paramètre

    Description

    Command to Run

    Ajoutez aliyun-bootstrap -a install && aliyun-instrument python app.py. Cette commande installe et démarre la sonde Python ARMS. app.py est le fichier principal du service de prédiction. Ajoutez également aliyun-bootstrap aux bibliothèques tierces pour l'installateur de la sonde.

    Third-party Library Settings

    Ajoutez aliyun-bootstrap pour télécharger l'installateur de la sonde depuis PyPI.

Cet exemple utilise une image sans traçage intégré. Les principaux paramètres de déploiement sont répertoriés ci-dessous. Consultez la rubrique Déploiement d'un service dans la console. Après le déploiement :

Paramètre

Description

Environment Information

Deployment Method

Sélectionnez Image-based Deployment.

Image Configuration

Cette rubrique utilise l'image par défaut : Alibaba Cloud Image.

Vous pouvez également saisir une image personnalisée préparée dans l'onglet Image Address.

Directly Mount

Montez l'exemple de code sur l'instance de service. Pour cet exemple, cliquez sur OSS et configurez les éléments suivants :

  • Uri : sélectionnez le dossier OSS contenant l'exemple de code. Instructions de téléchargement : Démarrage rapide dans la console.

  • Mount Path : définissez cette valeur sur /mnt/data/. Le fichier de code sera lu à partir de ce chemin.

Ignorez cette étape si votre image personnalisée inclut déjà le fichier de service de prédiction.

Command

Cette rubrique définit la commande comme suit : aliyun-bootstrap -a install && aliyun-instrument python /mnt/data/app.py.

/mnt/data/app.py correspond au fichier de code exemple monté.

Environment Variables

L'exemple de code appelle l'API DashScope. Cliquez sur Add et ajoutez la variable d'environnement suivante :

Third-party Library Settings

Définissez les bibliothèques tierces sur aliyun-bootstrap flask dashscope.

Service Access

VPC

Pour utiliser la fonctionnalité de traçage, vous devez configurer un réseau privé virtuel (VPC). Sélectionnez un VPC, un vSwitch et un Security group dans la région.

Par défaut, les services EAS ne peuvent pas accéder à Internet. L'exemple de code nécessite un accès Internet pour les appels à l'API DashScope. Configurez l'accès en suivant le Scénario 1 : Autoriser un service EAS à accéder à Internet.

vSwitch

Security Group Name

Features

Tracing Analysis

Activez le commutateur Tracing et configurez les bibliothèques tierces ainsi que la commande de démarrage dans la section Environment Context.

Étape 3 : Consulter les traces

Un outil d'évaluation basé sur les traces aide les développeurs à vérifier la précision et la fiabilité des sorties des applications LLM :

Appeler le service EAS

Cet exemple utilise le débogage en ligne. Vous pouvez également invoquer le service via des appels API.

  1. Sur la page Elastic Algorithm Service (EAS), recherchez le service cible et cliquez sur image > Online Debugging dans la colonne Actions.

  2. Dans l'onglet Body, envoyez les données de requête à l'adresse spécifiée en fonction de votre service de prédiction défini.

    Cette rubrique utilise l'interface de service définie dans l'exemple de fichier app.py. Voici un exemple de requête et de réponse :

    Dans l'onglet Online Debugging, définissez la méthode de requête sur POST, définissez l'URL sur http://xxx.com/api/predict/xxx/api/trace_demo et saisissez le corps de requête suivant : {"query": "capital of china"}. Cliquez sur Send Request. La réponse renvoie un code d'état 200 et le contenu de corps suivant : The capital of China is Beijing.

Afficher les informations de trace

Remarque

Par défaut, les données de trace sont stockées pendant 30 jours à compter de leur génération. Pour prolonger la période de stockage, contactez l'équipe ARMS pour une configuration personnalisée.

  1. Basculez vers l'onglet Trace Query de l'onglet Tracing Analysis pour afficher les informations de trace.

  2. Recherchez la trace cible et cliquez sur View Traces dans la colonne Actions pour accéder à la page Trace details.

    Consultez l'entrée, la sortie et les détails des journaux du service sur cette page.

    Remarque : si vous utilisez un utilisateur RAM ou un rôle RAM, vous devez accorder l'autorisation AliyunARMSReadOnlyAccess pour utiliser cette fonctionnalité.

    La page Trace details affiche les informations complètes de la chaîne d'appels pour l'invocation LLM, notamment :

    • L'onglet Content : la zone INPUT à gauche affiche l'invite système et le message de l'utilisateur ; la zone OUTPUT à droite affiche la réponse de l'assistant.

    • Le Waterfall Chart : affiche la durée du span LLM et les statistiques relatives aux jetons.

    • Le panneau Span Details : affiche les informations de base telles que le nom de l'application, le nom de l'interface, l'adresse IP, l'heure de début et de fin, l'ID du span et le code d'état.

    • La zone Additional Information : contient les onglets Attributes, Resources et Details, qui affichent le nom du modèle (par exemple, qwen-plus) et le contenu complet des Input Messages et Output Messages.

  3. Pour partager les détails de la trace, cliquez sur l'icône de partage image pour générer une adresse à usage unique.

    Remarque : si vous utilisez un utilisateur RAM ou un rôle RAM, vous devez accorder l'autorisation cms:CreateTicket avant de pouvoir utiliser cette fonctionnalité.

Étape 4 : Évaluer les performances de l'application

EAS prend en charge deux méthodes d'évaluation basées sur les traces :

  • Méthode 1 : Évaluer une seule trace : sélectionnez manuellement une trace du service EAS pour l'évaluation. Cette méthode convient aux phases de développement ou de test pour déboguer une trace spécifique et vérifier sa logique et ses performances.

  • Méthode 2 : Évaluer les traces par lots en ligne : évaluez périodiquement les traces échantillonnées du service EAS en cours d'exécution. Cette méthode convient aux tests de performances à grande échelle ou à la validation des fonctionnalités pour comprendre l'état global du système.

Remarque

Par défaut, les données de trace sont stockées pendant 30 jours à compter de leur génération. Pour prolonger la période de stockage, contactez l'équipe ARMS pour une configuration personnalisée.

Méthode 1 : Évaluer une seule trace

  1. Dans l'onglet Trace Query de l'onglet Tracing Analysis, recherchez la trace cible et cliquez sur Evaluate dans la colonne Actions. Ensuite, dans le panneau de configuration Evaluate, configurez les paramètres suivants.

    • Evaluation Metrics : il s'agit d'une configuration fixe qui ne peut pas être modifiée. L'évaluation est effectuée selon les dimensions suivantes.

      Métrique d'évaluation

      Description

      Correctness

      Détermine si la réponse traite correctement la question en fonction de l'entrée et du texte de référence.

      Faithfulness

      Détermine si la réponse est générée en fonction de l'entrée et du texte de référence, et si elle contient des hallucinations.

      Retrieval Relevance

      Détermine si les résultats récupérés sont pertinents par rapport à la question d'entrée. Cela inclut les quatre métriques suivantes :

      • nDCG : Normalized Discounted Cumulative Gain

      • Hit Rate

      • Precision@K

      • MRR : Mean Reciprocal Rank

    • Model Settings : le LLM utilisé pour évaluer la trace. Après la configuration initiale, ce paramètre est automatiquement renseigné pour les évaluations suivantes.

      Paramètre

      Description

      Model Selection

      Les deux modèles suivants sont pris en charge :

      Model Token

      Saisissez le jeton du modèle sélectionné :

    • Extraction Configuration : dans les sections Query Extraction Configuration, Answer Extraction Configuration et Context Extraction Configuration, configurez les paramètres du tableau suivant pour extraire le contenu correspondant :

      • Query Extraction Configuration : extrait le contenu de la requête de l'utilisateur (entrée).

      • Answer Extraction Configuration : extrait la réponse générée par le système (sortie).

      • Context Extraction Configuration : extrait le texte ou les informations contextuelles fournies au système (documents).

      Paramètre

      Description

      SpanName

      Recherche un span correspondant au SpanName.

      JsonPathInSpan

      Le format est a.b.c. Ce paramètre ne peut pas être vide. Il extrait une valeur d'un élément spécifié du span correspondant.

      JsonPathInSpanValue

      Le format est a.b.c. Ce paramètre peut être vide. Une fois l'élément correspondant à JsonPathInSpan trouvé, si le contenu de l'élément est une chaîne JSON, JsonPathInSpanValue est utilisé pour extraire la valeur correspondante.

      Vous pouvez cliquer sur View Traces dans la colonne Actions pour obtenir le contenu de configuration à partir de la page Trace details. Le tableau suivant présente des exemples de configuration :

      Configuration d'extraction

      Comment obtenir

      Valeur d'exemple

      Configuration d'extraction de la requête

      Cette rubrique fournit un exemple où JsonPathInSpanValue n'a aucune valeur. Sur la page des détails de la trace, obtenez la valeur de JsonPathInSpan comme suit :

      1. Dans le graphique en cascade à gauche, sélectionnez le span LLM pour afficher le contenu INPUT et OUTPUT ainsi que la durée de la chaîne d'appels.

      2. Dans le panneau Span Details à droite, cliquez sur l'onglet Attributes pour développer la liste des attributs liés à GenAI.

      3. Vérifiez le champ input.value. Sa valeur est un tableau JSON contenant role et content, par exemple : [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "capital of china"}].

      Pour un exemple où JsonPathInSpanValue a une valeur, consultez la colonne Valeur d'exemple.

      • JsonPathInSpanValue n'a aucune valeur

        • SpanName : LLM

        • JsonPathInSpan : attributes.input.value

        • JsonPathInSpanValue : étant donné que le contenu de l'élément JsonPathInSpan n'est pas une chaîne JSON, ce paramètre est vide.

      • JsonPathInSpanValue a une valeur

        • SpanName : LLM

        • JsonPathInSpan : attributes.input.value

        • JsonPathInSpanValue : étant donné que le contenu de l'élément JsonPathInSpan est une chaîne JSON, saisissez text[0] ici.

      Configuration d'extraction de la réponse

      Sur la page Trace details, dans le graphique en cascade, cliquez sur le span LLM (la source de SpanName). Ensuite, dans le panneau Span Details à droite, ouvrez l'onglet Attributes et recherchez le champ output.value (le chemin correspondant à JsonPathInSpan). Ce champ contient la réponse JSON complète renvoyée par le modèle.

      • SpanName : LLM

      • JsonPathInSpan : attributes.output.value

      • JsonPathInSpanValue : ce paramètre est vide.

      Configuration d'extraction du contexte

      Le service exemple de cette rubrique n'inclut pas de configuration d'extraction du contexte. Pour un exemple, consultez la colonne Valeur d'exemple.

      • SpanName : retrieve

      • JsonPathInSpan : attributes.retrieval.documents[*].document.content

        Important

        Seule la configuration du contexte prend en charge l'utilisation d'un astérisque (*).

      • JsonPathInSpanValue : étant donné que le contenu de l'élément JsonPathInSpan n'est pas une chaîne JSON, ce paramètre est vide.

  2. Une fois les paramètres configurés, cliquez sur Confirm.

    Lorsqu'un résultat de score (par exemple, les scores pour les dimensions Correctness et Faithfulness) apparaît dans la colonne Evaluation Result, l'évaluation est terminée. Cliquez sur le résultat pour afficher ses détails.

Méthode 2 : Évaluer les traces par lots en ligne

  1. Dans l'onglet Online Evaluation de l'onglet Tracing Analysis, cliquez sur New Assessment.

  2. Sur la page Create Evaluation Task, configurez les paramètres suivants, puis cliquez sur Confirm.

    Paramètre

    Description

    Configuration de base

    Nom de la tâche

    Saisissez un nom de tâche personnalisé.

    Configuration de l'évaluation

    Métriques d'évaluation

    Il s'agit d'une configuration fixe qui ne peut pas être modifiée. L'évaluation est effectuée selon les dimensions suivantes :

    • Correctness : détermine si la réponse traite correctement la question en fonction de l'entrée et du texte de référence.

    • Faithfulness : détermine si la réponse est générée en fonction de l'entrée et du texte de référence, et si elle contient des hallucinations.

    • Retrieval Relevance : détermine si le contenu récupéré est pertinent par rapport à la question d'entrée. Cela inclut les quatre métriques suivantes :

      • nDCG : Normalized Discounted Cumulative Gain

      • Hit Rate

      • Precision@K

      • MRR : Mean Reciprocal Rank

    Sélection du modèle

    Les deux modèles suivants sont pris en charge :

    Jeton du modèle

    Saisissez le jeton du modèle sélectionné :

    Heure de début et de fin de l'échantillonnage

    Sélectionnez les dates de début et de fin de l'échantillonnage.

    Politique d'échantillonnage

    Les politiques d'échantillonnage suivantes sont disponibles :

    • Échantillonnage basé sur une fenêtre temporelle : capture une trace à intervalles réguliers (toutes les x minutes).

    • Échantillonnage basé sur la probabilité : capture aléatoirement un pourcentage spécifié de traces.

    Configuration d'extraction QCA : les données de trace sont formatées sous forme de chaîne JSON. La configuration d'extraction QCA définit le chemin vers le QCA au sein de cette structure JSON. La valeur à ce chemin représente le contenu QCA spécifique.

    Configuration d'extraction de la requête

    • Configuration d'extraction de la requête : extrait le contenu de la requête de l'utilisateur (entrée).

    • Configuration d'extraction de la réponse : extrait la réponse générée par le système (sortie).

    • Configuration d'extraction du contexte : extrait le texte ou les informations contextuelles fournies au système (documents).

    Configurez SpanName, JsonPathInSpan et JsonPathInSpanValue pour extraire le contenu correspondant. Détails de la configuration : Configuration d'extraction.

    Configuration d'extraction de la réponse

    Configuration d'extraction du contexte

    Lorsque le Status de la tâche indique Completed, toutes les évaluations sont terminées et aucun nouveau résultat ne sera généré.

  3. Une fois l'évaluation terminée, vous pouvez consulter les résultats dans la colonne Evaluation Result de la tâche d'évaluation. Vous pouvez également cliquer sur le nom de la tâche pour afficher ses détails.

    • Afficher les résultats de l'évaluation : le système calcule et affiche la note moyenne de toutes les évaluations réussies. Une note proche de 1 indique une qualité supérieure.

    • Afficher les détails de l'évaluation : cliquez sur le nom de la tâche d'évaluation pour afficher les détails. La page de détails contient les sections suivantes :

      • Informations de base : nom de la tâche, ID de la tâche, statut et heure de création.

      • Informations de configuration de l'évaluation : métriques d'évaluation (Faithfulness, Correctness, Retrieval Relevance), sélection du modèle (modèle PAI judge), heure de début et de fin de l'échantillonnage, politique d'échantillonnage (taux d'échantillonnage) et configuration d'extraction de la requête/du contexte/de la réponse (incluant le chemin SpanName).

      • Résumé des résultats de l'évaluation : la note moyenne pour chaque métrique (telle que Faithfulness, Correctness, nDCG, Hit Rate, MRR et Precision@K), ainsi que le nombre total de traces échantillonnées et le nombre de traces évaluées avec succès.

      • Liste TraceId : affiche l'entrée, la sortie et les résultats d'évaluation par trace (tels que « no hallucination » pour Faithfulness, « correct » pour Correctness et les étiquettes Retrieval Relevance) ainsi que l'heure d'évaluation pour chaque trace, et prend en charge les actions View Trace et Re-evaluate.

Après la création, gérez la tâche en la mettant à jour, en l'arrêtant, en la supprimant ou en la clonant. Le clonage duplique la configuration dans une nouvelle tâche.