23 points par xguru 2023-08-28 | 1 commentaires | Partager sur WhatsApp
  • Les 7 principaux modèles sont organisés selon les axes « amélioration des performances vs réduction des coûts/risques » et « orienté données vs orienté utilisateur »
    • Evals : mesurer les performances
    • RAG (Retrieval-Augmented Generation) : ajouter des connaissances externes et à jour
    • Fine-tuning : mieux exécuter une tâche spécifique
    • Caching : réduire la latence et les coûts
    • Guardrails : garantir la qualité des sorties
    • Defensive UX : anticiper et gérer les erreurs
    • Collect user feedback : construire une boucle de données vertueuse

Evals : mesurer les performances

  • Les evals sont un ensemble de mesures utilisées pour évaluer les performances d’un modèle sur une tâche
  • Elles incluent des données de benchmark et des métriques
  • Elles permettent de mesurer le bon fonctionnement d’un système ou d’un produit, et de détecter les régressions
  • Il existe de nombreux benchmarks dans le domaine du language modeling : MMLU, EleutherAI Eval, HELM, AlpacaEval
  • Les métriques peuvent être réparties en deux catégories : context-dependent ou context-free
  • Métriques couramment utilisées : BLEU, ROUGE, BERTScore, MoverScore
  • La tendance actuelle consiste à utiliser un LLM puissant comme reference-free metric pour évaluer les générations produites par d’autres LLM
    • G-Eval, article sur Vicuna, QLoRA

RAG (Retrieval-Augmented Generation) : ajouter des connaissances externes et à jour

  • Il améliore les sorties en récupérant des informations externes au foundation model et en enrichissant l’entrée avec ces données afin de fournir un contexte plus riche
  • Le RAG aide aussi à réduire les hallucinations en ancrant le modèle sur le contexte récupéré, ce qui améliore la factualité
  • De plus, il est moins coûteux de maintenir un index de recherche à jour que de continuer à préentraîner un LLM
  • Cette efficacité en coût permet aux LLM d’accéder à des données récentes via le RAG
  • Lorsqu’il faut mettre à jour ou supprimer des données, comme des documents biaisés ou nocifs, il est plus simple de mettre à jour l’index de recherche que de fine-tuner le LLM
  • Pour le RAG, il est utile de commencer par comprendre les text embeddings
  • Les text embeddings sont des représentations abstraites compressées de données textuelles, capables d’exprimer un texte de longueur arbitraire sous forme de vecteur numérique de taille fixe
    • Ils sont généralement entraînés sur des corpus textuels comme Wikipedia
    • On peut les voir comme un encodage générique du texte où les éléments similaires sont proches les uns des autres, et les éléments dissemblables plus éloignés
  • Un bon embedding est un embedding qui obtient de bons résultats sur des tâches downstream comme la recherche d’éléments similaires
    • Le Massive Text Embedding Benchmark (MTEB) de Huggingface note les modèles sur diverses tâches comme la classification, le clustering, la recherche et le résumé
  • Ici, on parle surtout de text embeddings, mais les embeddings peuvent exister dans différentes modalités
  • Fusion-in-Decoder (FiD) combine recherche et modèle génératif pour l’open-domain QA
  • Les Internet-augmented LM proposent de renforcer les LLM en s’appuyant sur des moteurs de recherche existants
  • Comment appliquer le RAG
    • La recherche hybride (index de recherche traditionnel + recherche basée sur les embeddings) fonctionne mieux que chacune de ces approches seule

Fine-tuning : mieux exécuter une tâche spécifique

  • Le fine-tuning est le processus qui consiste à prendre un modèle préentraîné — déjà entraîné sur une très grande quantité de données — puis à l’affiner davantage pour une tâche spécifique
  • L’objectif est d’exploiter les connaissances déjà acquises pendant le préentraînement pour les appliquer à une tâche particulière, généralement avec un jeu de données plus petit et spécifique à cette tâche
  • Le terme fine-tuning est utilisé de manière assez large pour désigner des concepts variés
    • préentraînement continu
    • instruction fine-tuning
    • fine-tuning mono-tâche
    • RLHF
  • Pourquoi faire du fine-tuning ?
    • Performances et contrôle :
      • améliore les performances d’un foundation model standard, et peut même dépasser des LLM tiers
      • permet de mieux contrôler le comportement d’un LLM, ce qui rend le système ou le produit plus puissant
      • permet de construire un produit différencié par rapport à une simple utilisation de LLM tiers ou open source
    • Modularité :
      • le fine-tuning mono-tâche permet de constituer une flotte de petits modèles spécialisés, chacun dédié à une tâche précise
      • cette configuration permet de modulariser le système en tâches comme la modération de contenu, l’extraction ou le résumé
    • Réduction des dépendances :
      • en fine-tunant et en hébergeant son propre modèle, on peut réduire les problèmes juridiques liés à l’exposition de données propriétaires à des API externes (par ex. PII, documents internes et code)
      • cela permet aussi de dépasser les contraintes des LLM tiers, comme les rate limits, les coûts élevés ou des filtres de sécurité trop restrictifs
  • Generative Pre-trained Transformers (GPT; decoder only)
  • Text-to-text Transfer Transformer (T5; encoder-decoder)
  • InstructGPT
  • Soft prompt tuning & Prefix Tuning
  • Low-Rank Adaptation (LoRA) & QLoRA
  • Comment appliquer le fine-tuning
    • collecter des données de démonstration / labels
    • définir les métriques d’évaluation
    • choisir un modèle préentraîné
    • mettre à jour l’architecture du modèle
    • choisir une méthode de fine-tuning (LoRA, QLoRA, etc.)
    • faire le réglage de base des hyperparamètres

Caching : réduire la latence et les coûts

  • Le caching est une technique qui consiste à stocker des données précédemment récupérées ou calculées
  • Cela permet de mieux traiter les futures requêtes portant sur les mêmes données
  • Dans les LLM, cela consiste à mettre en cache la réponse du LLM pour l’embedding d’une requête d’entrée, puis à renvoyer cette réponse en cas de requête sémantiquement similaire
    • Mais certains praticiens estiment que cela revient à « attendre qu’une catastrophe se produise ». Je suis d’accord
  • La clé pour adopter un modèle de caching est de comprendre comment mettre en cache en toute sécurité, au lieu de s’appuyer uniquement sur la similarité sémantique
  • Pourquoi faire du caching ? : réduire la latence et diminuer le nombre de requêtes au LLM afin de baisser les coûts
  • Comment appliquer le caching ?
    • il faut commencer par bien comprendre les schémas de requêtes des utilisateurs
    • puis déterminer si le caching est efficace pour ces usages

Guardrails : garantir la qualité des sorties

  • Il s’agit de valider la sortie du LLM pour s’assurer qu’elle ne semble pas seulement correcte, mais qu’elle est aussi syntaxiquement juste, factuelle et exempte de contenu nocif
  • Pourquoi faut-il des guardrails ?
    • ils aident à vérifier que la sortie du modèle est suffisamment fiable et cohérente pour être utilisée en production
    • ils apportent une couche de sécurité supplémentaire et permettent de maintenir un contrôle qualité sur les sorties du LLM
  • Une approche consiste à contrôler les réponses du modèle via le prompt
    • Anthropic a partagé des prompts conçus pour guider le modèle afin qu’il produise des réponses utiles, inoffensives et honnêtes (HHH)
  • Une approche plus générale consiste à valider la sortie elle-même (avec des outils comme le package Guardrails)
  • NeMo-Guardrails de Nvidia suit des principes similaires, mais est conçu pour guider des systèmes conversationnels basés sur des LLM
  • On peut aussi orienter directement la sortie pour qu’elle respecte une grammaire spécifique, comme avec Guidance de Microsoft (on peut le voir comme un DSL pour les LLM)
  • Comment appliquer des guardrails
    • Structural guidance
    • Syntactic guardrails
    • Content safety guardrails
    • Semantic/factuality guardrails
    • Input guardrails

Defensive UX : anticiper et gérer les erreurs

  • L’UX défensive est une stratégie de design qui reconnaît que des problèmes comme les imprécisions ou les hallucinations peuvent se produire lorsque les utilisateurs interagissent avec des produits fondés sur le machine learning ou les LLM
  • L’objectif est surtout de les anticiper et de les gérer en amont, en guidant le comportement des utilisateurs, en empêchant les mauvais usages et en traitant correctement les erreurs
  • Pourquoi une UX défensive ?
    • le machine learning et les LLM ne sont pas parfaits. Ils peuvent produire des résultats inexacts
    • ils peuvent répondre différemment à une même question
    • l’UX défensive aide à atténuer ces problèmes en apportant :
      • une meilleure accessibilité, davantage de confiance, une meilleure UX
  • Voir les recommandations publiées par certaines entreprises
    • Microsoft’s Guidelines for Human-AI Interaction
    • Google’s People + AI Guidebook
    • Apple’s Human Interface Guidelines for Machine Learning
  • Comment appliquer une UX défensive
    • définir les bonnes attentes
    • permettre un rejet efficace (Enable efficient dismissal)
    • fournir de l’attribution
    • s’ancrer dans des éléments familiers

Collect user feedback : construire une boucle de données vertueuse

  • Recueillir les retours utilisateurs permet de comprendre leurs préférences
  • Les retours utilisateurs spécifiques aux produits LLM contribuent aux évaluations, au fine-tuning et à la mise en place de guardrails
  • Des données comme les corpus pour le préentraînement, les démonstrations créées par des experts et les préférences humaines pour le reward modeling font partie des rares moat des produits LLM
  • Les retours peuvent être explicites ou implicites
    • le feedback explicite correspond aux informations fournies par l’utilisateur en réponse à une sollicitation du produit
    • le feedback implicite correspond aux informations apprises à partir des interactions utilisateur sans que celui-ci ait besoin de fournir volontairement un retour
  • Pourquoi collecter les retours utilisateurs
    • les retours utilisateurs aident à améliorer le modèle
    • en apprenant ce que les utilisateurs aiment, n’aiment pas ou reprochent, on peut améliorer le modèle pour mieux répondre à leurs besoins
    • cela permet aussi de s’adapter aux préférences individuelles
    • les boucles de feedback aident à évaluer la performance globale du système
  • Comment collecter les retours utilisateurs
    • faire en sorte qu’il soit facile de laisser un retour : comme ChatGPT avec les choix pouce en haut / pouce en bas sur les réponses
    • prendre aussi en compte le feedback implicite : les informations produites quand l’utilisateur interagit avec le produit

1 commentaires

 
xguru 2023-08-28

L’article original explique en détail chaque point ainsi que les algorithmes et métriques, mais cela a été omis ici.
Considérez ce texte comme un simple résumé et référez-vous aussi à l’article original.