4 points par GN⁺ 2024-04-14 | 1 commentaires | Partager sur WhatsApp

Des prompts plus concis donnent de meilleurs résultats avec GPT

  • GPT est au contraire facilement perturbé quand on explicite de façon excessive dans le prompt des éléments qu’il connaît déjà comme du bon sens
  • Par exemple, pour une tâche de classification de l’État (state) mentionné dans un texte, demander simplement le nom de l’État donne de meilleurs résultats que de fournir la liste des 50 États

L’API chat d’OpenAI suffit à elle seule pour implémenter des fonctionnalités variées et puissantes

  • Même sans outils supplémentaires comme Langchain, il est possible d’implémenter simplement les fonctions nécessaires, comme l’extraction de JSON, en utilisant uniquement l’API chat
  • Lors d’une mise à niveau du modèle GPT, il suffit de modifier une seule chaîne de caractères dans la base de code
  • Il suffit aussi d’ajouter une logique simple pour la gestion des erreurs de l’API OpenAI et les limites de longueur d’entrée

Il est difficile de gérer les cas où GPT ne trouve rien

  • Avec un prompt du type « si tu ne trouves rien, renvoie une valeur vide », GPT invente souvent quelque chose ou manque de confiance
  • La solution consiste à ne pas envoyer de prompt à GPT quand l’entrée est vide

GPT ne peut générer qu’une sortie de longueur limitée

  • La limite d’entrée de GPT-4 est de 128k tokens, mais sa limite de sortie n’est que de 4k tokens
  • Lorsqu’on demande une liste d’objets JSON, GPT a du mal à générer de façon fiable plus de 10 éléments

Les bases de données vectorielles, RAG et les embeddings n’aident pas beaucoup pour les usages généraux

  • En dehors de la recherche, RAG fonctionne mal
  • Leur utilité pratique est limitée en raison de la difficulté d’évaluer la pertinence, des problèmes d’isolation des données et d’une baisse de la satisfaction des utilisateurs
  • Pour la recherche générale, une recherche à facettes avec GPT ou la génération de requêtes complexes sont plus adaptées

GPT ne produit pratiquement pas d’hallucinations

  • Pour les tâches d’extraction d’informations à partir d’un texte donné, GPT fournit des résultats très fiables
  • En revanche, si l’information n’est pas présente dans le texte, il peut inventer quelque chose
  • Il est donc important de fournir suffisamment de contexte et de bien gérer les réponses de GPT

Avis de GN⁺

  • Il semble difficile d’atteindre l’AGI avec les seuls modèles Transformer, les données du web et une infrastructure à grande échelle
  • GPT-4 est clairement utile, mais pour aller plus loin, une innovation dans l’architecture même des modèles semble nécessaire
  • Les alternatives à OpenAI ne semblent pas encore au niveau de GPT, et il faudra finalement surtout surveiller les nouvelles versions de GPT
  • Les performances de GPT-5 ne devraient probablement pas être révolutionnaires par rapport à GPT-4. Le rapport coût/efficacité semble atteindre ses limites
  • En conséquence, il paraît plus réaliste pour le moment de se concentrer sur la meilleure conception de prompts et sur les applications autour de GPT-4

1 commentaires

 
GN⁺ 2024-04-14
Avis Hacker News
  • Une équipe traite plus de 5 milliards de tokens par mois, et le responsable engineering qui gère cela partage son expérience.
    • De nombreuses abstractions comme Langchain sont prématurées, et les prompts n’étant au fond que des appels d’API, il est plus simple de les écrire comme du code classique plutôt que de les traiter comme quelque chose de spécial.
    • Les résumés sont robustes, mais le raisonnement est difficile, surtout lorsqu’il s’agit pour un LLM de comprendre le contexte et de signaler quand il n’est pas sûr.
    • C’est un game changer, mais pas la fin du monde ; cela aura un impact important sur certains métiers, mais ce ne sera pas aussi révolutionnaire qu’Internet, cela jouera plutôt un rôle d’amplificateur.
  • Partage d’une expérience d’utilisation des modèles OpenAI dans une application personnelle d’écriture.
    • Il a essayé d’implémenter une recherche intelligente, par exemple retrouver des notes de brouillon des deux dernières années mentionnant Haskell, mais demander à ChatGPT de renvoyer des données JSON structurées ne fonctionne que partiellement.
    • À la place, mettre les données dans une base SQLite et envoyer le schéma à ChatGPT pour lui demander d’écrire une requête qui renvoie ce qu’on veut fonctionne mieux.
  • En utilisant de meilleurs prompts, on peut utiliser des modèles moins chers.
    • Il faut donner au LLM une porte de sortie raisonnable (s’il n’y a pas suffisamment d’informations, il peut formuler une hypothèse, mais en le disant clairement et en exposant les éléments et la base logique), puis lui demander d’évaluer sa propre réponse.
  • Quelqu’un se demande pourquoi le mode JSON ne serait pas nécessaire.
  • Il a testé un prompt demandant de renvoyer le texte original sans modification si les règles ne s’appliquent pas au texte, mais ChatGPT a renvoyé la chaîne littérale "The original text without any changes".
  • GPT est très impressionnant, mais il n’est pas du tout d’accord avec l’idée que plus c’est ambigu, meilleure est la qualité et la généralisation.
    • Le langage naturel est la sortie la plus probable pour GPT, et les développeurs se sont simplement davantage appuyés sur ce que GPT sait bien faire.
    • Même des tâches simples peuvent faire échouer GPT, et le simple fait de dire que GPT "comprend" une correspondance implique déjà une reconnaissance de motifs de haut niveau.
  • Bien que GPT-4 soit un modèle datant d’il y a un an, il reste nettement supérieur aux autres LLM ; selon les usages, les hallucinations sont rares, et quand il a raison, il se montre plus obstiné.
  • Lors de l’extraction de noms d’entreprise, il existe un problème d’hypothèse nulle : s’il n’y a pas d’entreprise dans le texte, le modèle en propose une au hasard.
    • Il faut une approche en deux étapes : demander d’abord « ce texte mentionne-t-il une entreprise ? », puis, si oui, « peux-tu lister les noms d’entreprise présents dans ce texte ? ».
  • L’idée que GPT ne puisse pas renvoyer de manière fiable plus de 10 éléments n’est qu’un problème de prompt ; en utilisant des clés JSON, on peut obtenir jusqu’à 200 éléments dans le bon ordre.
  • Astuces pour résoudre le problème de null :
    • Au lieu de dire « ne renvoie rien », il vaut mieux dire « renvoie la valeur par défaut XYZ », puis effectuer une recherche textuelle de cette valeur par défaut (XYZ), comme lorsqu’on recherche le nom d’un État.
    • Avec un system prompt, on peut faire en sorte que le LLM joue le rôle X.
  • Présentation d’un micro-package sur la troncature basée sur les tokens.