Monthly Shaarli
November, 2023
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.
Très bon récapitulatif de Gee sur ce qu'est la grosse blague de la taxe sur la copie privée.
Depuis 2021 elle s'est carrément étendue au smartphones reconditionnés.
Des leaks de prompt, il y a ceux d'OpenAI mais aussi ceux des assistants GPT.
La plupart des prompts peuvent être leak via la technique de la grand mère https://news.ycombinator.com/item?id=35630801
Un site qui recense les bons jeux pour Android
Une lib frontend pour avoir le Largest Content Paint et le First Content Paint des pages d'un site web.
Un outil en ligne de commande qui remplace apt.
En plus d'avoir un output terminal sexy, nala propose surtout le téléchargement en parallèle des paquets APT.
Un routeur HTTP basé sur un arbre et non des regex.
Les regex pour router des requêtes HTTP c'est vraiment bof, lent et très dur à maintenir. Ça reste cependant le choix par défaut pour des "framework" populaires comme Next.js.
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.
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
Un article sur une méthode de prompt engineering pour réduire la latence d'un LLM en découpant une tâche en sous tâche puis en générant chaque partie indépendamment avant de merge le tout.
L'article est pleins d'exemples concrets en annexes
Une lib AWS qui wrap toute la complexité pour déployer une application fullstack sur AWS.
Ça permet d'utiliser les services AWS comme EC2, S3, RDS (Postgres), de l'authentification et pleins d'autre chose simplement en instanciant des classes dans du code.
Microsoft lance aussi son service de création d'assistant à la "GPT" avec une intégration avec tous les outils Office 365.
Une expérimentation de manipulation automatique du browser avec GPT-4V en renfort pour la compréhension des interfaces.
Un outil de gestion de projet mais rien à voir avec Jira car c'est moderne, rapide et bien fait
Un bot Agent LLM qui centralise le savoir de l'entreprise
Très intéressant!
En vrac:
- 10% des développeurs n'utilisent plus du tout Stackoverflow
- 66% des entreprises ont un usecase GenAI déployé
- 89% des employés utilisent la GenAI au boulot (15% secrètement)
- Copilot est l'outil GenAI le plus populaire après ChatGPT
Une lib en Python pour charger des données depuis différentes sources dans des databases.
ça supporte notamment Slack, Notion, Github en source.
Par contre j'ai l'impression que c'est limité à de la synchronisation one shot et pas forcément à une mise à jour des documents retrouvés
Une explication détaillée de l'algorithme HNSW pour la recherche vectorielle.
J'ai beaucoup l'analogie utilisée par Qdrant avec un voyage.
Quand vous voyagez d'un petit village à un autre:
- bus pour Lyon
- train pour Paris
- avion pour Berlin
- train Hambourg
- bus pour Lüneburg
Chaque étape utilise un moyen de transport ayant moins de hub et capable de faire de plus grandes distances
L'algorithme HNSW fonctionne selon ce principe, le plan vectoriel est découpé en couches. Plus on est dans une couche haute, moins il y a de vecteurs et plus les vecteurs sont éloignés les uns des autres.
Au fur et à mesure de la recherche, on va de plus en plus bas dans les couches jusqu'à arriver à la dernière et on peut donc récupérer tous les vecteurs les plus proches en un minimum d'opérations.
Un site très complet pour apprendre à mieux utiliser sa DB et comprendre les problèmes de performances pour les régler.
Un benchmark de requêtage sur des vecteurs d'embeddings dans Postgres avec l'addon pgvector et dans le pure player Pinecone.
Sur un setup équivalent en coût chez Supabase, Postgres est 10x plus rapide avec la même précision.
Donc si on héberge sa propre base Postgres c'est encore moins cher!
A noter que Postgres est beaucoup plus qu'une base vectorielle et qu'on va pouvoir filtrer les résultats avec des WHERE, faire des jointures, etc
Un article critique sur Bun.
Pas mal de bashing un peu gratuit et de demi vérité:
- performances: tout ce qui est lancé en local avec Bun est instant vs plusieurs secondes avec une stack Typescript standard
- pas de version manager: Bun vient d'être release et il y a litéralement 3 versions donc pas vraiment besoin, be patient ^^
- moins de backward compat que Node: en même temps on attends pas la même chose de Bun, et au moins les features sortent :)
Bref en tout cas je ne pense pas que Bun puisse un jour remplacer Node côté serveur car il y fallut plusieurs années pour que l'industrie fasse confiance à Node et que Node se montre suffisamment mature.
Par contre en local il n'y a rien à dire, bosser dans l'écosystème actuel c'est juste HORRIBLE entre les bundler, les builders, les compilers et les fichiers de config de la mort j'étais à la limite de craquer et heureusement Bun vient régler tout ça.
Pas de tsconfig.json, pas de webpack.config.js, pas de ts-node, pas de jest.
It just works ©
En plus bonus: c'est instantané de lancer un script ou de run +100 tests unitaires
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
La vidéo se développe de plus en plus avec tout ce qu'on retrouve dans la génération d'image mais en vidéo:
- upscaling (19:9 => 4:3)
- inpainting
- generation
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.
Un article qui parle des comportements difficiles à prévoir lorsqu'on fait un JOIN sur autre chose qu'une égalité d'ID en SQL
Un modèle de langue spécialisé dans le code dans le même genre que Codex (celui de OpenAI utilisé par Github Copilot)
Il offre de meilleures performances que CodeLlaMa.
Par contre aucune comparaison avec Codex et GPT4, les performances sont très certainement inférieures
Le nouveau modèle Text-to-Speech de OpenAI, Whisper Large v3, est capable de transcrire 2.5h d'audio en moins de 2 minutes
Un visualiseur et éditeur de fichier binaires
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
Dans cet article, les auteurs proposent une autre manière de découper une tâche en sous tâche en permettant au LLM de "créer" une sous tâche en écrivant un token spécial.
La sous tâche est ensuite executé par un LLM "enfant" puis le résultat est ré-incorporé dans la tâche principale.
L'article contient de nombreux exemples.
Un article sur la méthode du Tree of Thoughts pour résoudre des problèmes complexes avec un LLM.
Cet article a le mérite d'être compréhensible et de fournir des exemples concrets
OpenChat est une version fine tuné de Mistral 7B qui offre des performances comparable à ChatGPT (version de mars).
Il est aussi plus performant que le modèle Grok de X.com qui fait 30 milliards de paramètres contre 7 milliards pour Mistral.
Plus d'info ici https://twitter.com/baptistejamin/status/1726571942319460381
Un article qui évalue la performance des LLMs en fonction de l'endroit ou sont les informations dans le prompt.
Avec des prompts de plus en plus long, les LLMs ont tendance à "perdre" de l'information car la complexité du mécanisme d'attention est fonction du carré de la taille du prompt.
Les chercheurs ont trouvé que les informations placées au début et à la fin avaient plus de chance d'être retrouvées/utilisées.
C'est ce qui est placé au début du prompt qui a le plus d'importance pour le LLM, puis ce qui est placé à la fin et tout ce qui est au milieu
Un jeux vidéo est dessiné sur un canvas avec des explications sur le fonctionnement des différents élements dynamique (score, barre de déplacement, etc)
Ensuite un Agent créer le jeux à partir de ça.
Dans le même genre pour des composants web https://twitter.com/jasoncwarner/status/1725291989506367727?s=46
Une limitation codé en dur dans le kernel Linux limitait son utilisation du d'une machine à 8 coeurs seulement.
On devrait voir une amélioration des perfs dans la prochaine version.
OpenAI était surtout un fournisseur d'infrastructure LLM mais avec leurs dernières annonces ils se positionnent également en fournisseurs d'applications.
Il faut faire attention avec OpenAI, le vendor-lock est très important sur la plateforme.
Aussi puisqu'ils sont dans les apps, se sont de potentiels compétiteurs donc il faut réfléchir à deux fois avant de soumettre des Assistants.
Blake3 est plus sur que SHA256 et sûrement plus sur que Keccak qui a gagné le concours SHA3.
C'est aussi l'algorithme le plus performant dans les benchmarks
Une solution Open Source pour installer tout un tas d'application en self hosting sur un serveur.
Ils ont vraiment de tout:
- wordpress
- shaarli
- gitlab
- openvpn
- transmissions
- et tellement d'autres!
Une nouvelle technique à base d'IA générative pour faire bouger des parties d'une photo
Un nouveau type de batterie à base d'un couple soufre / sélénium qui serait 2 fois plus efficace que les batteries au Lithium
Un super-calculateur de Nvidia avec 10000 carte graphiques H100 spécialisées pour les opérations sur les réseaux de neurones.
Ils ont pu entrainer un modèle GPT-3 en seulement 4 minutes alors qu'il a fallu plus de 30 jours pour l'entrainer il y a 3 ans (sur 1000 GPU)
Une exploitation de Google Calender pour envoyer des commandes à un malware.
Du coup ça passe pour du trafic totalement légitime
Une vidéo très intéressante sur le déclin de l'hégémonie de Google.
Cela s'explique notamment par une part de plus en plus importante des recherches Instagram / TikTok qui proposent des résultats plus interactifs (images, vidéos)
Aussi le SEO à une grosse part de responsabilité dans la merdification des résultats avec des articles de plus en plus vides écrits par des IA dans le seul but de placer des mots-clés.
Finalement, on note la montée en puissance de Reddit pour du contenu certifié "User generated" et des réponses de qualité
Une API de Text-to-Speech avec une latence très basse (300ms).
Ça veut dire que l'on peut envoyer du texte en streaming et recevoir de l'audio en streaming en pluguant GPT4 directement sur Turbo par exemple.
C'est la porte ouvertes aux conversations quasi temps réel (reste encore le Speech-to-Text et surtout l'envoi du prompt à GPT4 qu'il ne sera pas possible de streamer par contre)
Une explication de fonctionnement des opérations sur les vecteurs (embedding LLM)
- distance euclidienne
- produit intérieur négatif
- similarité cosinus
C'est avec des indexes Postgres dans cet exemple. L'index HNSW est celui recommandé https://supabase.com/docs/guides/ai/vector-indexes/hnsw-indexes
Un article qui compare différentes bases de données vectorielles pour stocker les embeddings des LLMs et faire de la recherche sémantique.
A noter que si vous avez déjà Postgres ou Elasticsearch, les deux proposent un mode vectoriel.
Les bases de données dédiées aux vecteurs comme Qdrant ou Pinecone ne sont vraiment intéressantes que pour des gros volumes (> 100 000 vecteurs)
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
Des algorithmes de machine learning utilisés pour fliquer les allocataires de la CAF et déclencher des contrôles chez les personnes "à risque"
Une belle dérive de la société de surveillance algorithmique.
On se retrouve notamment avec un algorithme qui cible les personnes en situation de handicape entre autre
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.
Valve sort une nouvelle version de Half-Life pour le 25e anniversaire :-)
Des nouvelles maps multi-joueurs et une mini campagne.
Tout est bon pour éviter HL3 ;p
Un article sur une méthode permettant d'améliorer la qualité des réponses dans un RAG.
Ils proposent notamment une méthode de prompting pour savoir quand il n'y a pas suffisament d'informations pour répondre:
Determine if there is Observation that SUPPORTS
or REFUTES a Claim, or if there is NOT ENOUGH
INFO.
Claim: The Gadsden flag was named by Christo-
pher Gadsden.
A: First, The Gadsden flag is named after politician
Christopher Gadsden. Second, there is no informa-
tion on who named the Gadsden flag. The answer
is NOT ENOUGH INFO.Une solution pour utiliser d'autres LLMs en conservant les mêmes API/SDK que pour OpenAI.
Mistral et Claude 2 sont disponibles simplement en changeant l'URL de OpenAI par celle du proxy.
Sous le capot ça utilise les Cloudflare Worker pour réduire la latence au maximum.
Une base de données orientée Document comme Mongo DB mais construite avec Postgres.
Une alternative à Ngrok et en plus ça peut être hébergé sur son propre serveur.
Bore permet de rediriger du traffic depuis internet vers un processus local. Ça permet par exemple de recevoir des webhooks en local
Google ajoute un watermark inaudible dans les fichiers audio générés par son modèle Lyria.
Un autre bot Agent LLM qui lui propose de réaliser des tâches comme le support.
Un outil open source pour mesurer la performance des applications frontend.
Ça s'intègre même à la CI !
Un article sur le Trunk Based Development. C'est une méthode de gestion du code source où tout est continuellement mergé sur master.
Ça boost le déploiement en continue car chaque PR est sensée être deployable directement après avoir été mergé.
Par contre il faut prévoir un CI solide avec suffisamment de tests ainsi que des features flag pour éviter d'exposer des features incomplètes aux utilisateurs
Des histoires d'ingénieurs à qui on demande de faire quelque chose d'illégal.
Moralité, si on vous demande de faire quelque chose d'illégale, documentez la demande et refusez.
Un article qui explique le fonctionnement de la signature asymétrique des tokens en OIDC
Le guide d'OpenAI sur le Prompt Engineering. Simple, clair et efficace.
Un service d'hébergement Postgres moderne et à la demande
Excellent article qui expliquer le fonctionnement des LLMs
Un fil d'actualité sur les derniers papiers à propos des LLM
Une étude qui démontre des amélioration des performances des LLMs lorsque l'on inclut un enjeu émotionnel dans les questions.
Par exemple: "Rédige un compte rendu sur la RGPD, c'est très important pour ma carrière"
La fin de la phrase va améliorer la qualité de la réponse fournie par le LLM.
Une technique pour wrapper les handler API dégueulasses forcés par l'utilisation de Express en quelque chose d'un peu plus moderne.
Next.js encore sur Express en 2023 :(
Des exemples de prompt pour faire du Tree of Thought