LLMCompiler est une alternative à la méthode ReAct pour la planification et l'exécution de tâches.
2 composants:
- LLM Planer: découpe les tâches dans un Directed Acyclic Graph (DAG) pour une exécution en parallèle et un respect des dépendances
- Executor: un Agent qui exécute les différentes tâches avec les outils à sa disposition
Le LLM Planer est capable de recréer le DAG avec le résultat de chaque tâche pour une planification dynamique (e.g. embranchement if/else)
Concrètement ils ont mesuré des améliorations dans le processus de raisonnement sur certains benchmark comme HotspotQA mais c'est surtout la latence qui est réduite grâce à la parallélisation des tâches
Un LLM basé sur Llama 2 mais avec seulement 1.1 milliards de paramètres.
Tout comme les modèles Gemini Nano, une taille aussi petite permet de faire tourner le modèle sur un smartphone par exemple.
Ils estiment qu'il ne faut que 500 Mo de RAM pour faire fonctionner TinyLlama.
Les performances sur le benchmark CommonSense sont de 51 contre 63 (Llama 7B) et 71 (Llama 70B). GPT-3.5 et GPT-4 obtiennent respectivement 85 et 96.
Un framework pour construire facilement une application type chat avec des LLMs.
Pleins de fonctionnalités:
- suivi threads
- ajout de fichiers
- multi-modalité (images, son)
- frontend custom
Claude 2.1 possède une fenêtre de contexte énorme de 200K tokens.
Bien sur, plus il y a de tokens et plus il est difficile pour le modèle de les prendre tous en compte.
Ici, les chercheurs d'Anthropic ont réussi à passer de 27% à 98% de succès sur des tâches de récupération d'informations passées dans les 200K tokens de contexte.
Ça se résume à une seule phrase de prompt engineering placée à la fin: Here is the most relevant sentence in the context:
(Voir aussi cet article qui évalue les performances des instructions dans un prompt en fonction de leur position)
Meta sort un LLM basé sur Llama 7B qui est spécialisé dans la classification d'un prompt et d'une réponse afin de détecter du contenu préjudiciable.
C'est une bonne alternative Open Source à des outils comme l'API de modération de OpenAI.
D'ailleurs les performances de Llama Guard sont globalement meilleures que celles de OpenAI
Une technique qui améliore la résolution de problèmes avec du code.
C'est une variante de Chain of Thought pour la résolution de problèmes et c'est d'ailleurs sur ce genre de benchmark qu'ils ont évalué le modèle et non pas des benchmark de pure génération de code.
La méthode consiste à découper le problème en sous étape et ensuite soit:
- de générer le code Python de la sous étape et d'exécuter le tout à la fin
- d'utiliser un LLM pour pseudo exécuter le code de l'étape
Rivet est de loin le meilleur outil que j'ai pu voir pour faire du Prompt Engineering
Franchement j'en ai testé pleins et la rien à redire, on peut tout faire simplement:
- assembler des prompts
- parse les sorties textes
- envoyer ce qu'on a parse dans d'autres prompts
- écrire du code Javascript dans un node (c'est typé et en plus l'éditeur c'est vscode)
Le moteur d'exécution des nodes est super bien fait, par exemple il peut mettre en cache les appels à Open AI si une node fait une erreur plus loin alors on peut corriger et rejouer sans attendre.
L'éditeur de nodes est aussi super intuitif, j'ai pu créer un système complexe de prompts en 15 min sans la documentation
HyDE est une méthode pour améliorer la recherche d'un RAG.
Concrètement on prend la demande d'origine et on va générer plusieurs documents à partir de cette demande.
Ces documents vont avoir des champs sémantiques différents pour espérer retrouver un nombre plus importants de documents.
Par exemple, avec la demande suivante "Est-il possible d'ajouter un module de formation obligatoire à un utilisateur?"
Si on a 3 sources de données avec des profils rédacteurs différents alors on va demander à GPT de générer des réponses imaginaires:
- Github: "écrit une réponse hypothétique à cette demande du point de vue d'un développeur"
- Notion: "écrit une réponse hypothétique à cette demande du point de vue d'un Product Owner"
Une méthode pour évaluer les performances des Agents LLM.
Pour chaque tâche, l'Agent doit utiliser un ou plusieurs outils comme un navigateur web, de l'exécution de code, une API custom, etc.
Les tâches sont réparties en 3 niveaux:
- Niveau 1: entre 0 et 1 outil nécessaire, maximum 5 étapes
- Niveau 2: entre 5 et 10 outils, plus de 5 étapes
- Niveau 3: grand nombre d'outils et beaucoup d'étapes
Ils ont évalué GPT-4, AutoGPT et GPT-4 avec plugins et aucun n'arrive à réaliser des tâches de niveau 3
Un modèle d'embeddings de chez Google qui est plus petit que celui de OpenAI donc beaucoup moins cher et utilisable même côté client uniquement (web, mobile)
ça permet de faire de la recherche par similarité mais aussi un classifier.
Zappier propose quasiment toutes ses intégrations sous la forme d'outils LLM en langage naturel.
Ça permet à un Agent d'interagir avec des milliers de services directement via Zappier.
Une méthode de prompt engineering pour améliorer la qualité des réponses.
C'est une utilisation un peu plus avancée d'une chaine de prompt avec une critique et une réponse à la critique générés par le LLM
Les Agents qui jouent à Minecraft sont parmi les projets les plus avancés en terme de LLMs.
Typiquement ici l'Agent est capable d'écrire du code pour réaliser différentes actions mais aussi de faire évoluer le code écrit en fonction du feedback du monde ("il manque 2 bois pour faire une hache") ou des erreurs de programmation.
Un autre outil en NoCode pour faire des applications à base de LLM.
C'est testable en live chez HuggingFace: https://huggingface.co/spaces/Logspace/Langflow
Un outil d'observabilité pour LLM qui s'intègre quasiment automatiquement aux SDK OpenAI et Langchain.
Volet évaluation des performances
- Evaluation manuelle d'une chaine de prompt dans Langfuse
- Feedback utilisateur (explicite et implicite)
- On peut même évaluer auto avec GPT-4 et intégrer ce résultat
Volet R&D
- Création de datasets d'évaluation (évaluation manuelle dans Langfuse ou avec un Agent GPT-4)
- Versioning des traces collectées pour évaluation et A/B testing
Volet observabilité
- Analytics générales (coût, latence)
- Possibilité de suivre toutes les intéractions liées à une action métier
Bref, ça fait le café et en plus ils sont dispo en SaaS et en Open Source.
Une analyse de plusieurs centaines de conversations pour lister 6 catégories d'interactions avec un LLM via un chat:
- Search queries: comme sur Google
- Funneling conversations: recherche en plusieurs étapes pour préciser la réponse
- Exploring conversations: explorer un sujet pour le comprendre
- Chiseling conversations: explorer plusieurs aspect d'un même sujet
- Expanding conversations: étendre le sujet de base sur des aspect non connus
- Pinpointing conversations: prompts pour avoir une réponse selon un format désiré
Mistral 7B est disponible dans les workers de Cloudflare.
C'est une bonne nouvelle car ces worker sont distribués géographiquement et donc on peut espérer une latence d'inférence optimale n'importe ou dans le monde.
Un article qui parle de l'entrainement des LLMs.
Les LLMs sont d'abord entrainé un contenu de "basse qualité" équivalent à ~15 millions de livre.
Ensuite ils sont fine tuné une première fois avec des prompts/réponses de qualité, par exemple pour le dialogue.
La dernière étape est le RLHF, avec des réponses notés par des utilisateurs afin d'améliorer la dernière couche du modèle.
Whoa dans cet article les chercheurs ont réussi à manipuler l'interface d'Android avec un LLM.
C'est dans l'émulateur mais c'est quand même impressionnant, ils sont capable de faire des tâches assez complexes comme vider l'historique de navigation de Chrome ou faire des recherches Google
Un modèle entrainé depuis LlaMa 2 qui est spécialisé dans l'utilisation d'outils, notamment d'API tierces.
C'est une alternative Open Source à OpenAI et ses assistants