24 points par xguru 2024-12-03 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Pour obtenir des sorties de LLM précises et adaptées, une conception de prompts sophistiquée est indispensable
  • La conception de prompts permet même aux utilisateurs peu familiers avec le machine learning de contrôler les sorties du modèle avec un minimum d’overhead
  • Uber a développé une boîte à outils centralisée pour expérimenter rapidement et de façon itérative avec les LLM
    • Création et gestion de modèles de prompts
    • Utilisation de RAG et de jeux de données au moment de l’exécution
  • Fonctionnalités :
    • Prise en charge des instructions système, de la contextualisation dynamique, de la génération hors ligne à grande échelle (inférence LLM) et de l’évaluation des réponses
    • Gestion de versions, collaboration, vérifications de sécurité (contrôle des hallucinations, framework d’évaluation standard, politiques de sécurité incluses)

Lifecycle de l’ingénierie de prompts

Le cycle de vie de l’ingénierie de prompts se compose de deux phases :

  • Phase de développement : elle comprend trois étapes — exploration des LLM, itération sur les modèles de prompts et évaluation
    • Étape d’exploration des LLM : explorer les LLM disponibles via le catalogue de modèles et le GenAI Playground, puis tester les réponses des LLM avec des prompts
    • Étape d’itération sur les modèles de prompts : identifier les besoins métier précis, collecter des données d’exemple, créer/analyser/tester les prompts, évaluer les réponses et les modifier si nécessaire. Grâce à l’auto-prompting, il n’est pas nécessaire de créer un modèle de prompt à partir de zéro
    • Étape d’évaluation : tester les modèles de prompts sur un jeu de données plus large pour mesurer les performances. Il est possible d’utiliser un LLM comme juge ou un évaluateur LLM personnalisé basé sur du code
  • Phase de mise en production (Productionization) : seuls les modèles de prompts ayant franchi les seuils à l’étape d’évaluation sont industrialisés. Leur usage est suivi et monitoré en production, et les données d’utilisation du système sont collectées pour améliorer le processus

Architecture

  • UI/SDK des modèles de prompts : gestion des modèles de prompts et des révisions. Intégration avec GetAPI et Execute API
  • Catalogue de modèles LLM : interface avec les modèles LLM déployés
  • Les modèles et les prompts sont stockés dans ETCD et UCS, puis utilisés dans le pipeline de génération hors ligne et le pipeline d’évaluation des modèles de prompts

Création de modèles de prompts

  • Le prompt builder de la boîte à outils génère automatiquement des prompts pour l’utilisateur
  • Il aide à découvrir des techniques avancées de prompting adaptées à des cas d’usage IA spécifiques
  • Le builder automatique de prompts, basé sur le framework interne Langfx construit sur LangChain, suit les étapes suivantes
    • 1. Intégration des bonnes pratiques de l’ingénierie de prompts
    • 2. Fourniture d’instructions détaillées de listing de templates et de quelques exemples pour aider à générer les prompts
    • 3. Utilisation de modèles LLM pour prendre en charge la génération de prompts
  • Directives avancées de prompting : le prompt builder génère les prompts en s’appuyant sur les principes suivants
    • Prompting CoT (Chain of Thought) : permet des capacités de raisonnement complexes via des étapes de raisonnement intermédiaires
    • Auto-CoT : utilisation du mot d’amorce "think step by step". Le prompt "Let's think step by step" est utilisé avec le LLM pour supprimer l’effort manuel
    • Chaînage de prompts : utile pour les scénarios impliquant plusieurs tâches ou transformations
    • ToT (Tree of Thought) : généralise le chain-of-thought prompting et encourage l’exploration d’idées pouvant servir d’étapes intermédiaires pour la résolution générale de problèmes avec des modèles de langage
    • APE (Automatic Prompt Engineering) : framework d’automatisation pour la génération et la sélection d’instructions
    • Prompting CoT multimodal : intègre texte et images dans un framework en deux étapes. La première génère des justifications à partir d’informations multimodales, la seconde raisonne sur la réponse en utilisant les justifications générées
  • Gestion des révisions
    • L’itération sur les modèles de prompts suit les bonnes pratiques d’itération basées sur le code
    • Pour tester les réponses et les jeux de données, l’utilisateur peut modifier les instructions et les paramètres du modèle
    • Chaque itération d’un modèle de prompt nécessite une revue de code. Une fois approuvée et fusionnée, une nouvelle révision du modèle de prompt est créée

Évaluation des modèles de prompts

Pour évaluer les performances des modèles de prompts, plusieurs composants coopèrent :

  • Deux mécanismes d’évaluation
    • Utiliser un LLM comme évaluateur. Utile pour les tâches où la qualité subjective ou les nuances linguistiques sont importantes
    • Évaluer les performances à l’aide de code personnalisé. Utile pour mesurer certains aspects spécifiques des performances
  • Modèle de prompt d’évaluation : template convivial fournissant les instructions, de courts exemples, les métriques, le format de réponse, etc., pour l’évaluation
  • Modèle de prompt réel : template utilisé en production. Il est hydraté à l’exécution et utilisé pour l’évaluation des performances
  • Options de jeux de données d’entrée : jeu de données golden annoté ou jeu de données dérivé du trafic de production
  • Chaque template est évalué en tenant compte des instructions spécifiques, du contexte, du modèle associé et des paramètres

Cas d’usage chez Uber

Service LLM hors ligne

Le pipeline de génération hors ligne batch pour LLM facilite l’inférence batch afin de générer à grande échelle des réponses de LLM :

  • Peut être utilisé pour des cas de validation de noms d’utilisateur côté consommateur
  • Dans MA Studio, il suffit de sélectionner et de fournir le jeu de données pertinent
  • Le modèle de prompt est hydraté dynamiquement avec le jeu de données

Service LLM en ligne

Les modèles de prompts contiennent des placeholders dynamiques qui doivent être remplacés par des valeurs spécifiques au runtime :

  • Actuellement, seule la substitution de chaînes de caractères est prise en charge via une syntaxe de template basée sur Jinja
  • Prise en charge du fan-out entre prompts, templates et modèles
    • Templates : les templates d’API incluent la capacité de formater les payloads exposés par le modèle de données générique vers des structures d’API spécifiques aux fournisseurs
    • Prompts et modèles : les prompts sont liés à des modèles et templates spécifiques. Le service récupère le prompt et l’exécute en appelant l’API genAI avec les paramètres de modèle et de template nécessaires

Exploration de ces fonctionnalités à travers un cas d’usage de résumé :

  • Dans un scénario où plusieurs conseillers peuvent traiter un ticket de support (contact), un nouveau conseiller doit consulter le ticket pour comprendre le contexte ou demander au client de réexpliquer le problème
  • Ce problème est résolu en fournissant un résumé lors du transfert entre conseillers

Monitoring

Le monitoring mesure les performances des modèles de prompts de production utilisés en environnement réel :

  • Un pipeline quotidien de monitoring des performances exécute des évaluations sur le trafic de production
  • Monitoring des métriques par itération de prompt de production, comme la latence, la justesse et l’exactitude
  • Le tableau de bord MES est actualisé chaque jour avec les métriques de monitoring des performances

Conclusion

La boîte à outils d’ingénierie de prompts d’Uber constitue un framework complet pour améliorer les interactions avec les LLM et leur exploitation à différentes étapes du développement et de la production :

  • Prend en charge tout le parcours, depuis l’exploration initiale des capacités des LLM dans le Gen AI Playground jusqu’à l’itération détaillée et à la génération de modèles de prompts
  • L’architecture de la boîte à outils propose une approche systématique de la conception de prompts, intégrant des techniques avancées de directives et des méthodes d’évaluation robustes
  • Le cycle de vie structuré, du développement des modèles de prompts à leur utilisation en production et à leur monitoring, garantit que chaque template est rigoureusement testé et optimisé pour la performance
  • À l’avenir, Uber prévoit une intégration avec l’évaluation en ligne ainsi qu’avec RAG pour l’évaluation et RAG pour la génération hors ligne

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.