Le rapport de DORA 2024 est une étude de plus de 39000 personnes dans l'industrie du développement.
La moitié du rapport est consacré à l'utilisation et aux effets des IA génératives dans le monde du développement.
L'adoption des LLM augmente au fur et à mesure que la confiance dans leurs résultats augmente.
Les entreprises ont la perception qu'elles doivent utiliser de l'IA dans leurs processus de production pour rester compétitives mais aussi dans leurs produits avec 81% d'augmentation de l'incorporation de technologies IA dans les produits
Les technologies AI ont plus de chance d'être adoptées rapidement car les entreprises craignent que leurs concurrents gagnent un avantage décisif en les utilisant avant eux.
Le rapport continue avec des statistiques intéressantes sur les développeurs
76% des développeurs utilisent l'IA pour au moins une de leur tâches:
- 75% pour écrire du code
- 71% résumer des information
- 69% pour écrire des tests
- 56% pour déboguer
Au niveau de la perception du gain de productivité:
- 10% gain extrême
- 25% gain modéré
- 40% gain léger
- 20% aucun gain
Au niveau de la confiance dans le code généré:
- 10% ont totalement confiance
- 18% ont beaucoup confiance
- 35% ont à peu près confiance
- 29% ont un peu confiance
- 8% n'ont pas du tout confiance
Au niveau des points négatifs, on retrouve notamment une estimation de perte en stabilité des déploiements (-7%) et un impact plus élevé de l'industrie sur l'environnement.
OpenAI a avoué que son nouveau modèle n'était pas aussi bon que prévu. La différence de performance entre GPT-4 et ce nouveau modèle n'a rien à voir entre la différence entre GPT-3 et GPT-4.
On commence à atteindre un plafond de verre pour les performances des LLMs et à priori il n'y a que peu de place pour l'amélioration des modèles existants avec l'architecture actuelle.
LM Studio inclut maintenant le framework de calcul spécialisé pour le machine learning MLX de Apple.
Ce framework a été conçu pour fonctionner avec l'accélération matériel des puces M de Apple (M1 à M4) pour offrir de bonnes performances d'inférence sur du matériel de particulier.
Faire tourner un LLM en local reste encore un cas à la marge, notamment à cause de la vitesse d'inférence et de la performance des modèles OSS qui reste en deçà des modèles cloud mais j'ai bon espoir que le gap se resserre dans les prochaines années.
Sana développe un assistant d'entreprise et ils ont levé 55 millions de plus, ce qui porte leur total à 130 millions.
Jusqu'ici ils étaient surtout focus sur un RAG et une base de connaissances mais avec cette levée, ils annoncent aussi avoir acquit une startup IA spécialisée dans l'automatisation des tâches (CTRL)
C'est une très grosse somme pour une boîte non-americaine (ils sont suédois) et donc probablement un futur poids lourd du marché
Supermaven a levé 12 millions de dollars pour créer un éditeur de code.
Ils sont arrivés aux limites de ce qu'il est possible de faire via une extension alors ils veulent développer leur propre éditeur.
À voir si ils vont partir de VScode comme Cursor ou créer un Nouvel éditeur from scratch (j'espère qu'ils partiront de VScode)
En tout cas vu la qualité de leur outil d'autocomplétion, cela fera très certainement un sérieux concurrent à Cursor !
Après OpenAI, c'est Anthropic qui devient partenaire de Github (Microsoft) pour proposer son modèle Claude 3.5 Sonnet dans Github Copilot.
Depuis la dernière mise à jour du modèle, Claude 3.5 Sonnet dépasse de loin GPT-4o dans la plupart des benchmark et s'offre surtout une place de choix dans le benchmark de référence pour les tâches de programmation, SWE Bench, avec 49% (SOTA 53% pour OpenHand, le successeur de OpenDevin)
Après avoir essayé, je dois dire que je préfère toujours Supermaven pour l'auto-complétion.
Leur modèle fournit les complétions beaucoup plus rapidement et beaucoup plus souvent que Copilot tout en étant généralement de meilleure qualité.
Le seul bémol du modèle c'est qu'il est moins "intelligent" que Claude 3.5 Sonnet derrière Copilot mais ce n'est pas grave car pour les tâches de génération de code compliqué j'utilise le chat de Cursor.
Un article sur l'utilisation de Cursor pour le développement.
Plusieurs exemples concret d'utilisation de Cursor en vidéo, je trouve ce format très bien d'ailleurs car cela donne des idées d'utilisation de l'outil.
Je suis 100% d'accord avec certaines de ses conclusions:
- j'utilise moins de lib externes car je peux recoder pleins d'utilitaires facilement avec l'aide du LLM
- cela me dérange moins de dupliquer du code car je sais que je peux refactor très rapidement et sans trop d'efforts plus tard
- je me dirige plus facilement vers des frameworks ou langages que je ne maitrise pas car le LLM génère une bonne partie du code pour moi
Les outils de GenAI pour le développement sont des précurseurs de l'écosystème en terme de profondeur des fonctionnalités, de gains de productivité et d'adoption.
Github Copilot existe depuis 2021 et à longtemps été l'application de GenAI la plus utilisée au monde avant de laisser cette place à ChatGPT.
Aujourd'hui, les outils GenAI pour développeurs sont impressionnants. Il devient de plus en plus difficile de s'en passer tant le gain de productivité est élevé !
OpenAI propose un pipeline complet de fine tuning directement depuis son API.
Cela permet de fine tuné un modèle depuis les input/output d'un plus grand modèle.
Concrètement, cela peut permettre de spécialiser GPT-4o-mini avec GPT-4o voir o1 pour avoir un modèle rapide et pas cher spécialisé sur une tâche précise.
C'est assez simple d'utilisation car directement intégré:
- on ajoute un paramètre
store: true
lors des appels API pour créer un dataset - on crée la baseline d'évaluation du dataset avec le modèle
- on fine tune le plus petit modèle avec le dataset
- on évalue le modèle fine tuné avec le dataset par rapport à la baseline
Après 3 mois de bêta, OpenAI ouvre au grand publique la fonctionnalité de RAG à l'échelle d'internet de ChatGPT.
Cela fonctionne avec un nouveau type de crawler d'OpenAI qui récupère les info des pages web en permanence, comme ceux de Perplexity ou Google Search.
La recherche n'est pas faite avec un outil qui lit la page web à la demande comme c'était parfois le cas lors de requêtes.
Ils utilisent un modèle GPT-4o qu'ils ont fine tuné à partir de données générées par leur modèle o1.
C'est un concurrent directe à Perplexity qui était jusque là plutôt tranquille sur son segment.
Un Assistant capable de manipuler cette fois-ci des interfaces de téléphone mobile.
C'est une équipe d'Alibaba qui a réalisé ce projet.
Apple travaille aussi sur des sujets similaires avec son modèle Ferret-UI
Une solution qui permet de lire et découper des PDF avec un usage pensé pour le RAG.
Par exemple, ils vont inclure un résumé des tables en plus des données bruts.
Les chunks sur cette démo sont vraiment pas mal !
Les prix sont un peu cher par contre avec un prix d'entrée à 300$ pour 15 000 pages plutôt qu'un pay-as-you-go.
Sacré déclaration de la part de Google !
Si c'est vrai c'est énorme car ça a dû demander un gros travail d'évangélisation des équipes.
Personnellement ma stack c'est Cursor + Supermaven.
Impossible de se passer de Cursor et de son chat intégré avec Claude 3.5 Sonnet qui me génère une grande partie de mon code.
Je peux même lui donner un screenshot d'une maquette et il me génère les composants React.
Pour l'auto complétion, Supermaven est vraiment très agréable avec des suggestions ultra rapides et très bien contextualisées.
J'estime que ma productivité est multipliée par 2 en moyenne (ça dépend le type de tâches)
Le parlement européen choisi Claude pour développer son système de RAG interne sur ses archives.
C'est un choix étonnant étant donné que Claude est 1) un modèle fermé 2) un modèle américain 3) hébergé sur Amazon Bedrocks
C'est dommage je trouve quand on sait qu'on a justement besoin de filer un coup de pouce à notre industrie européenne de l'IA (Mistral pour ne citer qu'eux)
La recherche autour du watermarking de l'output des LLMs avance avec cet article publié dans Nature.
Concrètement ça va jouer avec les probabilités des mots générés afin de respecter un pattern qui sera ensuite utilisé pour détecter du contenu watermarké.
La nouveauté ici c'est qu'à priori cette technique ne nuit pas trop aux performances du LLM. (testé avec Gemini)
J'ai du mal à comprendre comment une contrainte aussi forte posée durant la génération ne peut pas impacter négativement les performances alors que rien qu'une sortie en JSON/XML/YAML à des effets
Dans cet article, les chercheurs détaillent plusieurs techniques intéressantes pour un RAG.
Ils utilisent une technique similaire à ce qu'on fait chez Didask avec une première étape qui consiste à extraire les informations pertinentes depuis de longs documents.
Cela permet d'avoir un document cohérent en matière brut plutôt que des chunks découpés arbitrairement dans le texte.
Ils vont ensuite évaluer la pertinence des informations extraites dans une deuxième étape qui utilise un CoT en 2 prompt:
- génération du raisonnement
- vérification de la pertinence du raisonnement
Une partie des prompts est donnée à la fin de l'article.
Une extension de la méthode de la chaine de pensée qui consiste à aussi fournir des exemples d'erreurs dans le prompt en plus des exemples de raisonnement correct.
Les performances sont sensiblement meilleures sur certains modèles: +4% sur Gemini Pro, 7% sur DeepSeek mais par contre sur GPT-4o-mini il n'y a aucune différence.
CoALA propose une méthode d'organisation des Assistants basée sur les sciences cognitives et notamment les différents types de mémoire à long terme:
- procédural: instructions générales de fonctionnement (les poids initiaux du LLM et le code métier de l'Assistant)
- sémantique: une base de connaissances
- épisodique: les actions passées
La mémoire à court terme (aussi appelée mémoire de travail) est elle représentée par le contenu du prompt utilisé pour répondre.
Ils décrivent notamment des actions internes qui devraient réaliser le LLM pour intéragir avec sa mémoire:
- retrieval: lire dans la mémoire long terme
- reasoning: mettre à jour la mémoire court terme de travail (le prompt)
- learning: écrire dans la mémoire long terme
On retrouve des idées utilisées par Generative Agents
Une simple application Electron pour essayer Claude 3.5 Sonnet avec ses capacités de manipulation d'interfaces graphiques
L'application prend des screenshots de l'écran afin de les envoyer à Claude et Claude répond avec des commandes pour bouger la souris (en x, y), cliquer ou remplir des champs textes.
C'est très lent (1 minute pour chercher et lancer une vidéo Youtube chez moi) mais ça reste quand même impressionnant de voir son ordinateur manipulé automatiquement à la suite d'une simple instruction.
Un autre framework pour faire des Assistant. Celui la est en Typescript vs Swarm de OpenAI en Python.
Ils ont choisi une approche plus classique dans laquelle on définit un "Agent" à qui on donne des outils pour répondre aux demandes.
Il n'y a pas de composition comme dans Swarm et donc pas de moyen de construire des applications agentiques spécialisées.
Comme d'habitude c'est peut-être bien pour expérimenter rapidement quelque chose mais je déconseille fortement de baser une production la dessus.
Microsoft publie un outil + modèle capable de découper un screenshot en zones d'intêret compréhensibles pour un LLM afin de pouvoir intéragir avec des applications.
Ils fournissent également un énorme jeu de données contenant des screenshots annotés avec des bounding boxes autour des éléments donc c'est une porte ouverte pour l'évaluation et l'entrainement d'autres modèles.
C'est dommage de ne pas l'avoir mesuré sur le benchmark de référence pour l'interaction avec un ordinateur (OS World) pour comparer les résultats avec ce que propose Claude par exemple