Débogage et traçage des LLM comme un pro

 Débogage et traçage des LLM comme un pro

Débogage et traçage des LLM comme un proDébogage et traçage des LLM comme un pro
Image de l’auteur | Toile

# Introduction


Débogage traditionnel avec print() Ou la journalisation fonctionne, mais elle est lente et maladroite avec les LLM. Phoenix fournit une vue de calendrier de chaque étape, invite et inspection de la réponse, détection d’erreur avec les tentatives, visibilité sur la latence et les coûts, et une compréhension visuelle complète de votre application. Phoenix par Arize AI est un puissant outil d’observabilité et de traçage open source spécialement conçu pour les applications LLM. Il vous aide à surveiller, déboguer et tracer tout ce qui se passe visuellement dans vos pipelines LLM. Dans cet article, nous allons parcourir ce que fait Phoenix et pourquoi il est important, comment intégrer Phoenix à Langchain étape par étape, et comment visualiser les traces dans l’interface utilisateur de Phoenix.

# Qu’est-ce que Phoenix?


Phoenix est un outil d’observabilité et de débogage open-source créé pour les applications de modèle de langue grande. Il capture des données de télémétrie détaillées de vos workflows LLM, y compris les invites, les réponses, la latence, les erreurs et l’utilisation des outils, et présente ces informations dans un tableau de bord intuitif et interactif. Phoenix permet aux développeurs de comprendre profondément comment leurs pipelines LLM se comportent à l’intérieur du système, d’identifier et de déboguer les problèmes avec les sorties rapides, d’analyser les goulots d’étranglement des performances, de surveiller l’utilisation des jetons et les coûts associés, et de retracer les erreurs / la logique de réessayer pendant la phase d’exécution. Il prend en charge des intégrations cohérentes avec des cadres populaires comme Langchain et Llamaindex, et offre également une prise en charge d’Opentelemetry pour des configurations plus personnalisées.

# Configuration étape par étape

// 1. Installation des bibliothèques requises

Assurez-vous d’avoir Python 3.8+ et installer les dépendances:

pip install arize-phoenix langchain langchain-together openinference-instrumentation-langchain langchain-community

// 2. Lancement de Phoenix

Ajoutez cette ligne pour lancer le tableau de bord Phoenix:

import phoenix as px
px.launch_app()


Cela démarre un tableau de bord local à http: // localhost: 6006.

// 3. Construire le pipeline Langchain avec un rappel Phoenix

Comprenons Phoenix à l’aide d’un cas d’utilisation. Nous construisons un simple chatbot alimenté par Langchain. Maintenant, nous voulons:

  • Débogue si l’invite fonctionne
  • Surveillez la durée du modèle pour répondre
  • Structure de la structure, utilisation du modèle et sorties
  • Voir tout cela visuellement au lieu de tout enregistrer manuellement

// Étape 1: Lancez le tableau de bord Phoenix en arrière-plan

import threading
import phoenix as px

# Launch Phoenix app locally (access at http://localhost:6006)
def run_phoenix():
    px.launch_app()

threading.Thread(target=run_phoenix, daemon=True).start()

// Étape 2: Enregistrez Phoenix avec l’OpenTelemetry et l’instrument Langchain

from phoenix.otel import register
from openinference.instrumentation.langchain import LangChainInstrumentor

# Register OpenTelemetry tracer
tracer_provider = register()

# Instrument LangChain with Phoenix
LangChainInstrumentor().instrument(tracer_provider=tracer_provider)

// Étape 3: Initialisez le LLM (API Together)

from langchain_together import Together

llm = Together(
    model="meta-llama/Llama-3-8b-chat-hf",
    temperature=0.7,
    max_tokens=256,
    together_api_key="your-api-key",  # Replace with your actual API key
)


N’oubliez pas de remplacer la «clé de votre-ap» par votre clé API réelle. Vous pouvez l’obtenir en utilisant ceci lien.

// Étape 4: Définissez le modèle invite

from langchain.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_messages((
    ("system", "You are a helpful assistant."),
    ("human", "{question}"),
))

// Étape 5: Mélanger l’invite et le modèle dans une chaîne

// Étape 6: Posez plusieurs questions et réponses imprimées

questions = (
    "What is the capital of France?",
    "Who discovered gravity?",
    "Give me a motivational quote about perseverance.",
    "Explain photosynthesis in one sentence.",
    "What is the speed of light?",
)

print("Phoenix running at http://localhost:6006n")

for q in questions:
    print(f" Question: {q}")
    response = chain.invoke({"question": q})
    print(" Answer:", response, "n")

// Étape 7: Gardez l’application en vie pour la surveillance

try:
    while True:
        pass
except KeyboardInterrupt:
    print(" Exiting.")

# Comprendre Phoenix Traces & Metrics


Avant de voir la sortie, nous devons d’abord comprendre les mesures Phoenix. Vous devrez d’abord comprendre quelles sont les traces et les portées:
Tracer: Chaque trace représente une série complète de votre pipeline LLM. Par exemple, chaque question comme «Quelle est la capitale de la France?» génère une nouvelle trace.
Couettes de portée: Chaque trace est mitigée de plusieurs portées, chacune représentant une étape de votre chaîne:

  • ChatPromptTemplate.Format: Formatage rapide
  • Ensemblellm.invoke: Call LLM
  • Tous les composants personnalisés que vous ajoutez

Métriques indiquées par trace

Métrique Signification et importance
Latence (MS) Mesure le temps total pour l’exécution complète de la chaîne LLM, y compris la mise en forme rapide, la réponse LLM et le post-traitement. Aide à identifier les goulots d’étranglement des performances et à déboguer les réponses lentes.
Jetons d’entrée Nombre de jetons envoyés au modèle. Important pour surveiller la taille des entrées et contrôler les coûts de l’API, car la plupart des utilisations sont basées sur des jetons.
Jetons de sortie Nombre de jetons générés par le modèle. Utile pour comprendre la verbosité, la qualité de la réponse et l’impact des coûts.
Modèle invite Affiche l’invite complète avec des variables insérées. Aide à confirmer si les invites sont structurées et remplies correctement.
Texte d’entrée / sortie Montre à la fois l’entrée utilisateur et la réponse du modèle. Utile pour vérifier la qualité d’interaction et repérer des hallucinations ou des réponses incorrectes.
Durée de la durée Décompose le temps pris à chaque étape (comme la création rapide ou l’invocation du modèle). Aide à identifier les goulots d’étranglement des performances dans la chaîne.
Nom de chaîne Spécifie à quelle partie du pipeline à une portée appartient (par exemple, prompt.format, TogetherLLM.invoke). Aide à isoler où se produisent les problèmes.
Tags / métadonnées Des informations supplémentaires comme le nom du modèle, la température, etc. utile pour le filtrage des exécutions, la comparaison des résultats et l’analyse de l’impact des paramètres.

Visitez maintenant http: // localhost: 6006 Pour afficher le tableau de bord Phoenix. Vous verrez quelque chose comme:
Tableau de bord PhoenixTableau de bord Phoenix
Ouvrez la première trace pour afficher ses détails.
Phoenix première tracePhoenix première trace

# Emballage


Pour le conclure, Arize Phoenix rend incroyablement facile à déboguer, tracer et surveiller vos applications LLM. Vous n’avez pas à deviner ce qui ne va pas ou à fouiller les journaux. Tout est juste là: invites, réponses, horaires et plus encore. Il vous aide à repérer les problèmes, à comprendre les performances et à construire de meilleures expériences d’IA avec beaucoup moins de stress.

Kanwal Mehreen est un ingénieur d’apprentissage automatique et un écrivain technique avec une profonde passion pour la science des données et l’intersection de l’IA avec la médecine. Elle a co-écrit l’ebook « Maximiser la productivité avec Chatgpt ». En tant que Google Generation Scholar 2022 pour APAC, elle défend la diversité et l’excellence académique. Elle est également reconnue comme une diversité de Teradata dans Tech Scholar, le boursier de recherche Mitacs Globalink et le savant de Harvard WECODE. Kanwal est un ardent défenseur du changement, après avoir fondé des femmes pour autonomiser les femmes dans les champs STEM.



Source link

Related post