Skip to content
Comment faire évoluer vos agents LangGraph en production d’un seul utilisateur à 1 000 collègues
Source: developer.nvidia.com

Comment faire évoluer vos agents LangGraph en production d’un seul utilisateur à 1 000 collègues

Sources: https://developer.nvidia.com/blog/how-to-scale-your-langgraph-agents-in-production-from-a-single-user-to-1000-coworkers, https://developer.nvidia.com/blog/how-to-scale-your-langgraph-agents-in-production-from-a-single-user-to-1000-coworkers/, NVIDIA Dev Blog

Aperçu

Vous avez construit un agent IA puissant et vous êtes prêt à le partager avec vos collègues, mais vous vous demandez s’il fonctionnera lorsque le nombre d’utilisateurs augmentera. Cet article décrit une approche en trois étapes pour déployer et faire évoluer une application agent LangGraph à l’aide du NeMo Agent Toolkit, avec une configuration de production basée sur un blueprint NVIDIA sur site et l’architecture de référence de l’usine d’IA. L’agent de recherche IA-Q utilisé comme exemple permet aux utilisateurs de télécharger des documents et d’en extraire les métadonnées, d’accéder à des sources de données internes et de rechercher sur le web pour générer des rapports de recherche. Le blueprint pour cette application de recherche approfondie est open source et est implémenté avec le NeMo Agent Toolkit, en utilisant les modèles NVIDIA NeMo Retriever pour l’ingestion de documents, la récupération et les invocations de LLM. En production, le déploiement se fait sur un cluster OpenShift interne et utilise des microservices NVIDIA NIM avec des outils d’observabilité tiers. Le défi consistait à déterminer quelles parties du système devaient évoluer pour supporter des centaines d’utilisateurs dans différentes équipes NVIDIA. L’article détaille les outils et techniques du NeMo Agent Toolkit utilisés à chaque phase et comment ils ont informé l’architecture et le plan de déploiement. L’agent de recherche IA-Q illustre comment une application LangGraph peut intégrer l’ingestion de documents, l’accès à des sources internes et une recherche web pour produire des résultats de recherche. Le blueprint est conçu pour un déploiement on-premise et est construit avec le NeMo Agent Toolkit, y compris les modèles de récupération pour le traitement des données et les invocations LLM. Le déploiement de production met l’accent sur l’observabilité, le profilage et l’évolutivité comme piliers d’un déploiement réussi.

Fonctionnalités clés

  • Système d’évaluation et de profilage intégré au NeMo Agent Toolkit pour collecter des données et quantifier le comportement dans des scénarios d’utilisation courants.
  • Section d’évaluation à ajouter facilement à la configuration d’une application, incluant un ensemble de données avec des entrées utilisateur types pour capturer la variabilité et le non-determinisme.
  • Wrappers de fonctions et décorateurs simples pour capturer automatiquement les temps d’exécution et l’utilisation des jetons dans les parties clés de l’application.
  • Le workflow d’évaluation (eval) s’exécute sur l’ensemble d’entrées et produit des métriques, y compris des visualisations comme les graphiques de Gantt ou Waterfall montrant quelles fonctions s’exécutent pendant une session utilisateur.
  • Identification des goulets d’étranglement (par exemple les appels au NVIDIA Llama Nemotron Super 49B pour le raisonnement LLM) afin d’orienter l’évolutivité (par exemple, répliquer le backend LLM via NIM).
  • Mesures personnalisées et benchmarks pour comparer différentes versions de code tout en garantissant une sortie de qualité.
  • Résultats pouvant être exportés vers des plateformes de visualisation comme Weights & Biases pour suivre les expériences au fil du temps.
  • Tests de charge à l’aide du NeMo Agent Toolkit sizing calculator, simulant des workflows en parallèle pour estimer les besoins matériels.
  • Des métriques telles que le délai p95 pour les invocations LLM et pour l’ensemble du workflow afin d’éclairer la planification des capacités.
  • Observabilité via OpenTelemetry (OTEL) et Datadog pour capturer les journaux, les données de performance et les traces LLM, ce qui permet une traçabilité par session.
  • Une approche de déploiement par étapes (commencer par de petites équipes, puis s’étendre progressivement) pour observer les performances, corriger les problèmes et valider l’évolutivité avant un déploiement plus large.
  • Une architecture de référence d’usine IA et l’intégration avec les microservices internes NVIDIA (NIM) pour supporter un déploiement en production.

Cas d’utilisation courants

  • L’agent de recherche IA-Q permet aux utilisateurs de télécharger des documents, d’extraire des métadonnées et d’accéder à des sources internes, puis de synthétiser les résultats en rapports de recherche.
  • Les utilisateurs peuvent effectuer des recherches sur le web pour compléter les données internes, aidant à produire des analyses plus complètes.
  • Les déploiements sur site permettent de travailler avec des informations confidentielles tout en respectant les contrôles d’accès et de sécurité.
  • Le NeMo Agent Toolkit fournit des outils de profilage, d’évaluation et d’observabilité pour améliorer les performances et la fiabilité à mesure que la concurrence des utilisateurs augmente.
  • Un déploiement par étapes soutient l’adoption progressive entre les équipes, permettant de valider la capacité avant l’évolutivité.

Configuration & installation

L’article met en évidence une approche en trois phases pour faire évoluer un agent LangGraph, en utilisant les outils du NeMo Agent Toolkit :

  • Phase 1 : Profilage et évaluation pour un seul utilisateur afin d’établir une référence de performance.
  • Phase 2 : Tests de charge avec plusieurs utilisateurs simultanés pour prévoir les besoins matériels et identifier les goulets d’étranglement.
  • Phase 3 : Déploiement par étapes entre les équipes, avec observabilité pour assurer que les performances restent dans les objectifs. La configuration implique d’ajouter une section d’évaluation (eval) dans le fichier de configuration de l’application pour activer le profilage, d’exécuter le workflow d’évaluation sur un jeu d’entrées représentatif et d’utiliser le calculateur de dimensionnement du toolkit pour planifier les exigences matérielles. Les résultats de profilage capturent le temps d’exécution et l’utilisation des jetons, et peuvent être réunis sur une plateforme de visualisation pour analyse. L’observabilité est assurée via OTEL et Datadog pour capturer les traces et les journaux, y compris les insights par session.

Note : Le texte décrit ces étapes et composants mais ne fournit pas de commandes exactes ou fragments de configuration dans l’article.

Les commandes exactes ne sont pas fournies dans l’article source.
# Exemple fictif : l’article ne fournit pas de commandes.

Démarrage rapide

Un exemple minimal exécutable n’est pas fourni comme code opérationnel dans l’article. À la place, le texte décrit un flux de travail pour faire évoluer une application d’agent LangGraph avec le NeMo Agent Toolkit :

  • Commencez par une exécution de profilage pour un seul utilisateur en ajoutant une section d’évaluation dans la configuration et en exécutant le flux d’évaluation sur un ensemble d’entrées représentatif.
  • Utilisez les métriques obtenues pour identifier les goulets d’étranglement (par exemple, les invocations LLM) et planifier la réplication des composants critiques (tel que le backend LLM).
  • Effectuez des tests de charge avec le calculateur de dimensionnement du toolkit pour estimer le nombre de GPUs ou de réplicas nécessaires pour la concurrence cible.
  • Déployez avec un rollout par étapes, en surveillant les traces et les métriques via OTEL et Datadog pour garantir les performances lors de l’extension à davantage d’utilisateurs.

Avantages et inconvénients

  • Avantages
  • Escalation fondée sur les données : le profilage et les tests de charge guident les décisions matérielles et de déploiement.
  • Détection précoce des goulets d’étranglement permettant des optimisations ciblées (par exemple, réplication du backend LLM).
  • Observabilité et traçabilité à travers les sessions utilisateur améliorent la fiabilité et le débogage.
  • Le rollout par étapes réduit le risque lors de l’extension à davantage d’équipes.
  • Déploiement on-prem avec une architecture de référence d’usine IA aide à protéger les informations sensibles.
  • Inconvénients
  • L’article ne liste pas explicitement les inconvénients; les considérations implicites incluent la complexité de configuration, l’intégration avec OpenShift et les microservices NIM, et la nécessité de profilage avant l’évolutivité.

Alternatives (comparaisons brèves)

  • L’article présente une approche d’évolutivité fondée sur le profilage et les tests de charge à l’aide du NeMo Agent Toolkit. Il n’y a pas de documentation explicite sur des alternatives d’implantation dans le texte. L’approche met l’accent sur des décisions basées sur les données, l’identification des goulets et le rollout par étapes comme principes centraux pour faire évoluer des agents LangGraph en production.

Tarification ou licence

  • Les détails de tarification ou de licence ne sont pas explicitement fournis dans l’article.

Références

More resources