Monthly Shaarli

All links of one month in a single page.

December, 2023

AI Stylist - Amazon Bedrock Demo

Une démo impressionnante sur ce que pourrais être les interfaces de demain.

Depuis une vingtaine d'années, les interfaces hommes machines sont des écrans avec formulaires (grosso modo).

Les IA génératives permettent de rebattre les cartes et d'offrir une interface en langage naturelle enrichie avec des images.

Retrieval-Augmented Generation for Large Language Models: A Survey

Une méta-étude qui regroupe les différents travaux autour des RAG.

C'est un inventaire assez exhaustif de toutes les techniques de construction et d'amélioration d'un RAG et donc un must-read avant de se lancer en production.

PowerInfer: High-speed Large Language Model Serving on PCs with Consumer-grade GPUs
thumbnail

PowerInfer est un nouveau moteur d'inférence qui permet d'utiliser les plus gros modèles sur du matériel de particulier.

Ils ont remarqué qu'il y a une répétition des neurones activés lors des phases d'inférence ("hot neurons") quelque soit le prompt et ils sont donc pré-chargés dans le GPU.

PowerInfer utilise également le CPU dans son moteur d'inférence hybride et atteint des performances à ~30 tokens/seconde sur une NVIDIA RTX 4090, soit seulement 20% moins que sur des GPU datacenter A100.

Avec LlamaCPP, la vitesse d'inférence est multipliée par 11!

Phospho - The LLM App Monitoring Platform

Un SaaS d'observabilité des applications GenAI orienté métriques produit.

Améliorer la rétention pour les apps LLM
thumbnail

4 techniques pour améliorer la rétention des applications à base de LLM:

  • pré-ecrire le prompt
  • multimodalité en entrée (voix, image, documents)
  • proposer plusieurs réponses
  • rendre l'échange plus humain (memes, blagues, etc)
⚔️ Chatbot Arena ⚔️ : Benchmarking LLMs in the Wild

Un site qui permet de tester ses prompts sur une vingtaines de modèles à la fois.

Il y a bien sur les modèles Open Source mais aussi les modèles fermés comme ceux de OpenAI ainsi que les familles Claude et Gemini.

Modal - Cloud functions reimagined
thumbnail

Un cloud serverless qui fait tourner des fonctions Python.

Ils ont notamment tout un service de GPU à la demande pour faire tourner des tâches de ML comme de la transcription audio, de l'inférence, etc

Utile dans une démarche GenAI + cloud pour mieux maitriser les coûts

Clipdrop - SDXL Turbo

Un outil de génération d'image en temps réel.

Ça utilise SDXL Turbo pour générer une image en moins de 1 seconde. L'affichage des images se fait au fur et à mesure de l'écriture de la description.

L'effet est vraiment bluffant!

SSH3: faster and rich secure shell using HTTP/3, checkout our article here: https://arxiv.org/abs/2312.08396
thumbnail

Une proposition d'amélioration du protocol SSH en le faisant passer dans HTTP/3.

Plusieurs avantages:

  • plus rapide
  • utilisation d'authentification modernes (OAuth, etc)
  • serveur SSH invisible au port scanning
  • tous les autres avantages de HTTP/3
Internet Explorer is Evil: The story

L'histoire de Microsoft qui pousse IE très fort depuis sa création

Phi-2 - Slow inference times on gpu
thumbnail

A priori le modèle Phi-2 de Microsoft est assez lent, même sur des GPUs.

Sur CPU c'est plusieurs minutes pour générer ~200 tokens.

Aussi le modèle hallucine pas mal donc succès vraiment mitigé pour Microsoft.

Sous le capot des bases de données vectorielles

Un article très détaillé sur le fonctionnement des bases de données vectorielles.

Encore une fois, ces "bases de données" servent surtout à faire de la recherche sémantique qui peut être considéré comme un fonctionnalité plutôt qu'un produit à part entière.

Postgres et Elasticsearch proposent de la recherche vectoriel en plus de toutes les autres fonctionnalités d'une application tout en offrant des performances similaires.

GPT4 vs Mistral for code generation

Les résultats de Mistral en one-shot code generation sont meilleurs que ceux de GPT4.

J'ai testé moi même sur ses exemples et j'obtiens plus ou moins les mêmes résultats.

Après les capacités d'un LLM ne sont pas évaluable uniquement avec des demandes en one-shot et d'ailleurs GPT4 se démarque par ses capacités de "raisonnement" qui s'exprime plutôt avec des Chain of Thoughts et autres méthodes multi-shot.

Home | Tabby Copilot
thumbnail

Une version Open Source de Github Copilot.

C'est du self-hosted avec les modèles suivants:

  • TabbyML/StarCoder-7B
  • TabbyML/CodeLlama-13B
  • TabbyML/DeepseekCoder-6.7B
Mixtral of experts | Mistral AI | Open source models

Le nouveau modèle de Mistral a été release, c'est un modèle de type "Mixture of Experts" qui contient en réalité 8 modèles spécialisés dans des tâches en particulier.

Ils annoncent des performances meilleures que Llama 70B sur la plupart des benchmark tout en ayant une inférence 6x plus rapide!

Plus d'info sur Mixture of Experts

LLMCompiler: An LLM Compiler for Parallel Function Calling
thumbnail

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

GitHub - Chainlit/chainlit: Build Python LLM apps in minutes ⚡️

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
Magicoder: Source Code Is All You Need

Un LLM Open Source spécialisé dans la génération de code.

Le modèle n'a que 7 milliards de paramètres et est capable de surpasser GPT-3.5 dans certains benchmarks.

Chain of Code

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
Introducing SDXL Turbo: A Real-Time Text-to-Image Generation Model
thumbnail

SDXL Turbo est une version améliorée de Stable Diffusion XL qui permet de générer une image en seulement 200ms sur une carte A100 !

Concrètement il n'y a qu'une seule étape de génération au lieu de 20 à 50 aujourd'hui. Ces étapes de générations enlèvent des couches de "bruit" successive.

Le nom de la nouvelle méthode est Adversarial Diffusion Distillation (ADD)

Le modèle et les poids sont Open Source mais sans utilisation commerciale

A proof of concept of malware using Singel Executable App feature shipped with Node 20
thumbnail

Si on créé un binaire avec Node.js et qu'il contient du code malveillant alors ça passe tous les heuristiques de détection de malwares

Advanced RAG: Precise Zero-Shot Dense Retrieval with HyDE

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"
Long Term Refactors

Un excellent article sur la manière de conduire un refactor sur le long terme.

Reflexion: Language Agents with Verbal Reinforcement Learning

Une technique pour l'orchestration d'Agent qui obtient de bien meilleurs résultats de ReAct. (0.97 vs 0.76 sur HotPotQA)

Leur technique se base sur la réflexion autour du résultat obtenu par un premier LLM. Cette réflexion permet d'itérer sur la tâche à réaliser en corrigeant les erreurs.

L'étape de réflexion prend en compte la génération et un feedback sur cette génération. Le feedback dépend du type de problème:

  • question/réponse: évaluation par un LLM
  • génération de code: exécution du code et message d'erreur
  • prise de décision: vérification avec l'arbre des "bonnes" décisions

Une mémoire est également analysée pendant la phase de réflexion afin d'éviter le bouclage sur des solutions déjà essayées.

Cela me fait beaucoup pensé à cet article sur les Agent autonomes dans un jeu vidéo https://links.aschen.tech/shaare/a0Krew

Deep-copying in JavaScript
thumbnail

Une comparaison des différentes manières de cloner un objet en Javascript.

Sans surprise c'est toujours JSON.parse(JSON.stringify(object)) qui est le plus rapide et surtout le plus portable.

ChatHub - All-in-one chatbot client
thumbnail

Une interface unifiée qui donne accès à ChatGPT, Bard, Claude, Bing Chat, Mistral et d'autres LLMs en version chat.

Ça permet notamment de comparer la qualité des réponses.

What is an Image Embedding?
thumbnail

Un article qui résume les techniques autour des embeddings d'images.

CLIP de OpenAI reste la référence Open Source pour créer des embeddings d'images même si le modèle VIT (Vision Transformer) de Google obtient de meilleures résultats en classification, cela reste encore de la recherche et il n'y a pas de moyen simple d'obtenir les embeddings sous-jacent.

https://paperswithcode.com/sota/zero-shot-transfer-image-classification-on-1

La technique des k-means cluster s'applique également aux images afin de détecter des "groupes" (ou cluster) d'images.

reworkd/tarsier: Vision utilities for web interaction agents 👀
thumbnail

Un autre exemple de navigation avec un GPT4V.

Le problème jusqu'ici était que le HTML est une représentation unidimensionnel textuelle d'une interface graphique bidimensionnelle.

Cela couplé au fort niveau de bruit contenu dans le HTML rendait impossible la navigation dans des applications complexes de type SaaS.

L'utilisation de GPT4V avec des tags visuels permet au modèle de comprendre quelles sont ses possibilités d'interaction.

The surprising connection between after-hours work and decreased productivity
thumbnail

Une excellente étude sur la productivité des développeurs.

  • les employés qui se déconnectent à la fin de la journée sont 20% plus productifs
  • faire des pauses améliore la productivité
  • en moyenne, le temps idéal de concentration par jour est 4h
  • au delà de 2h de réunion par jour, les développeurs se sente surchargés
  • seulement 1 développeur sur 4 se considère comme productif entre 15 et 18h
Firefox on the brink?

Firefox est à 2.2% de part de marché.

En dessous de 2% de trafic sur les sites du gouvernement US, il ne sera plus officiellement supporté.

Mamba-Chat: A chat LLM based on the state-space model architecture 🐍
thumbnail

Un LLM qui ne se base pas sur l'architecture Transformers.

C'est intéressant de voir qu'il y a toujours des expérimentations sur d'autres architectures, à voir si celle-ci se révèle meilleure

OutfitAnyone - a Hugging Face Space by HumanAIGC
thumbnail

A peine quelques semaines après la sortie du modèle AnimateAnyone, les équipes de Alibaba proposent une cabine d'essayage virtuelle.

Une véritable révolution pour le e-commerce !

Phi-2: The surprising power of small language models

Phi-2 est un modèle de seulement 2.7 milliards de paramètre à destination des terminaux mobile.

Malgré sa petite taille, il affiche des performances similaires à Llama 70 ou Mistral 7B.

Il est même plus performant que Gemini Nano 2 alors qu'il est plus petit que celui-ci (3.2B vs 2.7B)

EDIT: plutôt décevant finalement

La plateforme | Mistral AI | Open source models

Mistral propose maintenant ses propres API d'inférence pour leurs modèles.

Outre les modèles de génération de texte, ils proposent aussi un modèle d'embeddings en 1024 dimensions qui offre des performances similaires à ada-2 de OpenAI sur le benchmark MTEB (56.32 vs 55.26 pour Mistral en retrieval)

Au niveau du prix, c'est la même chose que OpenAI, c-a-d 0.1$ pour 1 million de tokens.

PopUpOFF - Popup and overlay blocker
thumbnail

Un bloqueur de popup, cookies et autres éléments qui pourrissent l'expérience web.

Un régale.

The technology behind GitHub’s new code search
thumbnail

Une explication technique du moteur de recherche de code de Github.

Avec 155 To de données et plus de 15 milliards de documents, ils ont développé une solution maison de l'ingestion jusqu'au moteur de recherche.

Le moteur de recherche est basé sur des ngrams (trigramme à priori)

New Github Copilot Features
thumbnail

Une vidéo qui résume les nouvelles fonctionnalités de Github Copilot.

On a notamment des Agents qu'il est capable d'invoquer pour poser des questions spécifiques. Ce sont des RAGs.

Par exemple @workspace permet de poser des questions avec les fichiers du projet pour trouver un composant en particulier.

https://code.visualstudio.com/blogs/2023/11/13/vscode-copilot-smarter

Llama Guard: LLM-based Input-Output Safeguard for Human-AI Conversations

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

Gordon Freeman at the Olympic Games

Une explication technique du bug dans le moteur source qui permet d'accélérer pendant les sauts.

Code à l'appuie 😄

AlphaCode 2 Technical Report

Google sort AlphaCode2 qui se base sur son LLM Gemini.

Cette nouvelle version utilise Gemini mais c'est surtout un Agent LLM complexe avec de multiples étapes:

  • génération de solutions
  • évaluation des solutions
  • sélection des meilleures solutions

AlphaCode2 a résolu 43% des 8000 problèmes tirés de CodeForces, ce qui le positionne entre les rangs "Expert" et "Candidate Master" ou tout simplement meilleur que 85% des développeurs du site.

LLM généraliste ou spécialisé ? La question sous l'angle environnemental
thumbnail

Une étude compare l'impact environnemental des modèles Open Source de GenAI.

Générer une image avec Stable Diffusion consomme autant que charger un smartphone (0.012 kWh)

A priori les modèles spécialisés seraient tout autant efficace sur certaines tâches précises tout en consommant moins d'énergie.

Searching by music: Leveraging vector search for audio information retrieval
thumbnail

De la recherche vectorielle sur des fichiers audio avec Elasticsearch et librosa

GAIA: A Benchmark for General AI Assistants

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

4 Reasons to Leave a Code Comment

Quand faut-il laisser un commentaire à l'intérieur du code?

  • un besoin business incongru (expliquez l'histoire originel)
  • cela a demandé des recherches (partagez des liens)
  • plusieurs options étaient considérées (justifiez)
  • question dans une revue de code
leetcode-hard-gym: A hard gym for programming
thumbnail

Un dataset de problème de code avec un outil d'évaluation automatique.

Les problèmes sont en plusieurs langages et l'évaluateur permet de tester automatiquement des réponses qui auraient été générés par un LLM par exemple.

Rest meets ReAct: self-improvement for multi-step reasoning llm agent

Un article sur un modèle d'agent capable de se fine-tuner à l'aide de ses propres itérations sur les tâches à résoudre.

C'est potentiellement intéressant pour générer des dataset d'entrainement sur des tâches à plusieurs étapes.

Quantum Computing’s Hard, Cold Reality Check
thumbnail

L'informatique quantique n'est toujours pas pour demain.

Beaucoup d'interrogations sur la faisabilité:

  • "1000 qbits physiques pour 1 qbit logique avec correction d'erreur"
  • "la correction d'erreur pourrait être fondamentalement impossible"

Un autre problème est la bande passante entre le monde quantique et classique, jusqu'à 1 million de fois plus lent que sur un ordinateur classique

VideoPoet: A large language model for zero-shot video generation
thumbnail

Google sort un nouveau modèle de génération de vidéo.

Le modèle est capable de conserver le style entre chaque image de la séquence pour créer de courtes vidéo.

VideoPoet fonctionne à partir d'un prompt seul ou même une image et d'un prompt.

Toutes les démo sont visibles ici https://sites.research.google/videopoet/

10k-GPT: Upgrading. Implementing BM25 (text) search…
thumbnail

Un exemple pratique d'un RAG hybride avec recherche vectorielle + recherche "classique" avec scoring par mots clés et filtres.

C'est ce qu'on pourrait aussi avoir en utilisant Elasticsearch avec ses fonctions de scoring et sa recherche vectorielle knn.

Les résultats sont bien sur meilleurs que du vectoriel classique.

Realtime inference from webcam

Une démo d'une inférence en temps réel depuis l'image de la webcam qu'on peut modifier avec un prompt.

Le prompt n'est pas très suivi par le modèle mais le résultat est presque complètement fluide ce qui est impressionnant pour de l'inférence d'image.

Turing test on steroids: Chatbot Arena crowdsources ratings for 45 AI models
thumbnail

Une étude faites avec des évaluateurs humains sur la qualité des réponses de différents LLMs.

Différentes versions de GPT4 sont en 1er, 2e et 4e position. Sinon ce sont Claude 1 et Claude 2 qui arrivent en 3e et 5e positions.

LLMLingua | Designing a Language for LLMs via Prompt Compression

Une méthode de compression des prompts pour réduire leur taille.

La méthode utilise de plus petit LLMs pour compresser un texte en ne conservant que les informations pertinentes pour un LLM.

La différence de performances avec le prompt compressé est minime mais on peut diviser la taille par 20!

Leur deuxième méthode est aussi de la compression de prompt mais dans le cadre d'un RAG. Le contenu du prompt est compressé et surtout ré-organisé lorsqu'il contient des documents afin d'améliorer le score de retrieval.

Ils affichent des performances de 17% supérieures sur NaturalQuestions avec 4x moins de tokens.

Bref, moins de tokens = plus rapide + moins cher, sans baisse de performances significatives voir de meilleures performances.

Des exemples sont disponibles et utilisable en ligne dans Google Collab https://github.com/microsoft/LLMLingua/tree/main/examples

OpenBao le fork d'HashiCorp Vault
thumbnail

Après Terraform, c'est au tour de Vault, le produit de gestion de secrets de Hashicorps, d'être fork par la communauté.

Le fork est sous la responsabilité de la Linux Foundation et à l'appui financier d'IBM.

C'est une grosse claque pour Hashicorp qui doit peut-être commencer à amèrement regretter son virage closed sources.

MemoryCache is an experimental developer project to turn a local desktop environment into an on-device AI agent.

Un projet soutenu par Firefox qui sauvegarde les sites que vous visitez puis les utilise dans un RAG local construit avec PrivateGPT.

Cela permet de chercher dans les sites qu'on a pu visiter plutôt que tout internet.

Why Meta is fighting for Open Source LLMs while Microsoft wants to regulate them.

Une excellente analyse de la situation actuelle ou Google et Microsoft se battent d'un côté contre l'Open Source avec principalement Meta de l'autre côté du ring.

Google est enfaite en position d'avance technologique en GenAI depuis des années, c'est à eux qu'on doit l'architecture Transformers à la base de toute la GenAI mais aussi le premier LLM: BERT.

Ils sont juste assez mauvais en terme de communication et leurs succès ne sont pas reconnus du grand publique.

De leur côté, Amazon et Apple sont assez tranquille pour expérimenter petit à petit sans que cela fasse de vagues, notamment sur la cotation boursière.

Google Monorepo

Google a un monorepo depuis 16 ans avec tous le code source des projets.

1 milliard de fichiers et 35 millions de commit. C'est juste incroyable.

The TinyLlama project is an open endeavor to pretrain a 1.1B Llama model on 3 trillion tokens.
thumbnail

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.

SeamlessStreaming, a realtime translation model

Le modèle SeamlessStreaming de chez Facebook est disponible en Open Source.

Il permet de faire de la traduction en temps réel d'une langue vers une autre (audio + texte).

Voir la vidéo de démo

Long context prompting for Claude 2.1

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)

CSS Minecraft

Un clone de minecraft fait uniquement en CSS et HTML.

Ce sont des checkbox qui gèrent les états.

NexusRaven-V2: Surpassing GPT-4 for Zero-shot Function Calling

Un LLM Open Source surpasserait les performances de GPT-4 en terme d'appel de fonctions.

Notamment sur les appels de fonctions imbriqués.

Ce qui est intéressant c'est qu'ils ont aussi benchmark GPT3.5 et Gorilla et toutes les données et jeux de test sont disponibles sur Hugging Face 👉 https://huggingface.co/spaces/Nexusflow/Nexus_Function_Calling_Leaderboard

Rivet - IA builder
thumbnail

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

Better RAG with Active Retrieval Augmented Generation FLARE

Une autre méthode pour améliorer un RAG.

Ici après une première récupération et injection de documents, on va utiliser chaque phrase du LLM pour récupérer de nouveaux documents potentiels à ingérer lors de la génération.

Cela permet d'aller récupérer et injecter d'autres concepts qui ressortent lors des phases de restitution du LLM.

RETVec is an efficient, multilingual, and adversarially-robust text vectorizer.
thumbnail

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.

https://google-research.github.io/retvec/emotion_demo