Ingénierie de Contexte : Définition, Importance et Impact sur l’Avenir de l’IA
Bienvenue à ce nouvel article approfondi sur un terme qui gagne rapidement en importance dans le monde de l’intelligence artificielle : l’ingénierie de contexte. Ce concept, que vous avez peut-être déjà croisé sur les réseaux sociaux ou dans des articles spécialisés, mérite une attention particulière car il transforme notre façon d’interagir avec les modèles de langage (LLM) et de concevoir des systèmes d’IA performants.
De l’ingénierie de prompts à l’ingénierie de contexte
Pour comprendre cette évolution, commençons par une récente déclaration de Toby Lucky, PDG de Shopify, qui a écrit : « Je préfère vraiment le terme d’ingénierie de contexte à celui d’ingénierie de prompts. Il décrit mieux la compétence fondamentale, l’art de fournir tout le contexte nécessaire pour qu’une tâche puisse être résolue de manière plausible par le LLM. »
Cette déclaration a trouvé un écho favorable chez de nombreux experts. McKay Wrigley a notamment ajouté : « Totalement d’accord. De nos jours, on obtient beaucoup moins de performances avec des astuces simplistes comme ‘Je te paierai 100$ si tu trouves la bonne réponse’, ce qui est une bonne chose. Tout l’avantage réside dans l’assemblage efficace du contexte pour réduire le brouillard informationnel pour le modèle. On converge vers des besoins d’information quasi humains. »
Nickovo a également souligné que bientôt, l’ingénierie de contexte inclura « la fourniture d’outils, d’environnements d’agents et de garde-fous pour que les LLM puissent trouver le contexte par eux-mêmes. »
Qu’est-ce que l’ingénierie de contexte exactement ?
L’ingénierie de contexte représente une nouvelle approche pour tirer le meilleur parti des modèles de langage. Depuis l’avènement de ChatGPT, nous avons assisté à l’émergence de l’ingénierie de prompts, qui a donné naissance à d’innombrables cours et tutoriels en ligne, proposant astuces et techniques pour formuler les bonnes questions afin d’obtenir les réponses souhaitées.
Cependant, avec l’évolution rapide des modèles, l’ingénierie de prompts devient progressivement moins pertinente. Les astuces qui fonctionnaient il y a 6 ou 12 mois peuvent ne plus être efficaces aujourd’hui. De plus, les interfaces utilisateur intègrent désormais certains aspects de l’ingénierie de prompts, prenant en charge une partie de ce travail.
Prenons un exemple concret : lorsque j’ai créé une couverture pour un épisode récent, mon prompt pour Ideogram était simplement : « fun retro futuristic cover for The Quest for the Solopreneur Unicorn, 1950s mid-century modern ». Pourtant, ce que Ideogram a généré était bien plus élaboré :
« Une couverture de livre rétrofuturiste dans le style du design moderne des années 1950, mettant en scène un solopreneur déterminé et élégamment vêtu, chevauchant une majestueuse licorne blanche lumineuse à travers une nébuleuse tourbillonnante. Le solopreneur porte un costume gris ajusté, arbore un sourire confiant et pilote la licorne avec un joystick futuriste, tandis que la corne de la licorne émet un faisceau de lumière, illuminant le chemin à suivre. L’arrière-plan se compose de planètes et d’étoiles géométriques stylisées rendues dans une palette vibrante de bleu sarcelle, orange et jaune, avec le titre ‘The Quest for the Solopreneur Unicorn’ affiché en gras dans une police classique aux accents chromés. »
Cet exemple illustre comment les outils eux-mêmes tentent de saisir l’essence de votre demande pour créer un prompt plus efficace que celui que vous auriez pu formuler.
Le contexte, quant à lui, fait référence à une autre partie de la chaîne de valeur des LLM. Il s’agit de toutes les informations que vous fournissez à un LLM pour l’aider à répondre plus correctement à votre question. Par exemple, lorsque vous ajoutez des fichiers à votre prompt dans ChatGPT-3 ou GPT-3 Pro (particulièrement optimisé pour mieux gérer le contexte), ces fichiers constituent le contexte que vous lui fournissez.
L’ingénierie de contexte dans la conception d’agents IA
L’ingénierie de contexte ne se limite pas à la sélection des bons documents à partager avec un LLM. C’est aussi une tâche d’ingénierie qui consiste à gérer le contexte à travers des systèmes plus complexes.
Récemment, Cognition, la société qui développe Devon, a publié un article intitulé « Don’t Build Multi-Agents » (Ne construisez pas de multi-agents), centré sur la question du contexte et de son ingénierie. L’argument principal était que le flux de travail multi-agents, où un agent décompose une tâche et la confie à plusieurs sous-agents avant de combiner les résultats, est voué à être fragile en raison de la difficulté à transmettre efficacement le contexte entre les agents.
Prenons leur exemple : supposons que votre tâche soit de créer un clone du jeu Flappy Bird. Cette tâche est divisée en deux sous-tâches :
- Créer un arrière-plan de jeu mobile avec des tuyaux verts et des boîtes de collision
- Créer un oiseau que vous pouvez déplacer de haut en bas
Il s’avère que le premier sous-agent a mal interprété sa sous-tâche et a commencé à créer un arrière-plan qui ressemble à Super Mario Bros. Le second sous-agent a créé un oiseau, mais celui-ci ne ressemble pas à un élément de jeu et ne se déplace pas du tout comme celui de Flappy Bird. L’agent final se retrouve alors avec la tâche indésirable de combiner ces deux malentendus.
Face à ce problème, Cognition propose plutôt de construire un agent linéaire à thread unique. Dans ce modèle, le même agent décompose la tâche en sous-tâches, puis exécute chacune d’elles avant de combiner les résultats. L’idée est que cela permet de maintenir le contexte entre les différentes tâches mieux que le système multi-agents.
Cependant, ils reconnaissent que pour des tâches très volumineuses, dont les nombreuses sous-parties risquent de dépasser les fenêtres de contexte, une nouvelle approche pourrait être nécessaire. Une architecture qu’ils proposent est celle d’un LLM de compression de contexte latéral, qui compresse la conversation et les actions à chaque étape en un ensemble de moments et de décisions clés, ce contexte compressé informant ensuite le travail des sous-tâches suivantes.
L’importance croissante de l’ingénierie de contexte
Que l’on adhère ou non à cette stratégie particulière, elle illustre comment l’ingénierie de contexte devient une partie intégrante des questions les plus importantes en IA, notamment comment construire des agents réellement fonctionnels.
Lance Martin a récemment publié un article intitulé « Context Engineering for Agents » (Ingénierie de contexte pour les agents). Il écrit : « Comme le dit Andre Carpathy, les LLM sont une sorte de nouveau système d’exploitation. Le LLM est comme le CPU et sa fenêtre de contexte est comme la RAM, représentant une mémoire de travail pour le modèle. Le contexte entre dans un LLM de plusieurs façons, notamment par les prompts (instructions de l’utilisateur), la récupération (documents) et les appels d’outils (API). Tout comme la RAM, la fenêtre de contexte du LLM a une bande passante de communication limitée pour gérer ces diverses sources de contexte. Et tout comme un système d’exploitation sélectionne ce qui tient dans la RAM d’un CPU, nous pouvons considérer l’ingénierie de contexte comme l’emballage et la gestion du contexte nécessaire pour qu’un LLM exécute une tâche. »
Lance souligne l’importance croissante de ce domaine, citant à nouveau Cognition qui écrit : « L’ingénierie de contexte est effectivement le travail numéro un des ingénieurs qui construisent des agents IA. » Il cite également Anthropic : « Les agents s’engagent souvent dans des conversations s’étendant sur des centaines de tours, nécessitant des stratégies soigneuses de gestion du contexte. »
Lance identifie trois approches principales pour la gestion du contexte :
- La curation du contexte : gérer les tokens qu’un agent voit à chaque tour
- La persistance du contexte : mettre en place des systèmes pour stocker, sauvegarder et récupérer le contexte au fil du temps
- L’isolation du contexte : adopter des approches pour partitionner le contexte entre les agents ou les environnements
Il souligne que nous n’en sommes qu’aux premiers balbutiements dans la formation de principes généraux pour la construction d’agents, ce qui explique l’explosion actuelle de discussions sur ce sujet.
La montée en puissance de l’ingénierie de contexte
Un autre article publié le même jour sur le blog de LangChain, intitulé « The Rise of Context Engineering » (L’essor de l’ingénierie de contexte), affirme : « L’ingénierie de contexte consiste à construire des systèmes dynamiques pour fournir les bonnes informations et les bons outils dans le bon format, de sorte que le LLM puisse plausiblement accomplir la tâche. La plupart du temps, lorsqu’un agent ne fonctionne pas de manière fiable, la cause sous-jacente est que le contexte, les instructions et les outils appropriés n’ont pas été communiqués au modèle. Les applications LLM évoluent des prompts uniques vers des systèmes agentiques plus complexes et dynamiques. Ainsi, l’ingénierie de contexte devient la compétence la plus importante qu’un ingénieur en IA puisse développer. »
Cet article réitère que lorsque les systèmes agentiques échouent, c’est soit parce que les modèles ne sont pas assez bons, soit parce qu’ils n’avaient pas le contexte approprié. Et à mesure que les modèles s’améliorent, c’est généralement cette seconde raison qui prédomine.
L’auteur conclut : « L’ingénierie de contexte n’est pas une nouvelle idée. Les constructeurs d’agents la pratiquent depuis un an ou deux. C’est un nouveau terme qui décrit avec justesse une compétence de plus en plus importante. »
Deux domaines d’ingénierie de contexte à surveiller
Je pense qu’il existe deux domaines distincts d’ingénierie de contexte qui méritent notre attention :
1. L’ingénierie de contexte pour les développeurs d’IA
Pour les ingénieurs qui construisent des systèmes agentiques, des ingénieurs logiciels qui réfléchissent à la manière de rendre les agents plus performants et capables de gérer des tâches plus complexes, les questions d’ingénierie de contexte concernent la conception des systèmes. Il s’agit notamment de solutions comme le LLM de compression de contexte qui accompagne un système à agent unique pour améliorer ses performances. Tout un discours important se déroule dans ce domaine, qui influencera la forme des agents avec lesquels même les non-codeurs et les personnes non techniques interagiront ultimement.
2. L’ingénierie de contexte pour les utilisateurs
Mon intuition est que nous allons probablement voir l’ingénierie de contexte devenir également un terme important pour les consommateurs et les utilisateurs réguliers de LLM. De la même manière que nous avons appris (ou essayé d’apprendre) à formuler des prompts efficaces pour tirer le meilleur parti des LLM, je pense que l’ingénierie de contexte dans un environnement utilisateur va devenir un domaine et une discipline plus importants.
Quelles sont les bonnes quantités d’informations à donner à un modèle donné ? Quels modèles sont meilleurs pour différents types d’informations ? Un domaine où nous avons commencé à voir cela est avec la sortie de GPT-3 Pro. Le meilleur résumé de GPT-3 Pro, selon moi, était intitulé « Dieu a faim de contexte ». Il soutenait essentiellement que la grande différence entre GPT-3 et GPT-3 Pro était que ce dernier était meilleur pour gérer de grandes quantités de contexte. Lorsque les auteurs de cet article lui ont fourni un volume important d’informations sur leur entreprise, y compris des notes de réunions passées et des enregistrements audio, il leur a proposé une bien meilleure stratégie que ce que GPT-3 aurait pu faire seul.
Ainsi, du point de vue de l’utilisateur, l’ingénierie de contexte concerne à la fois la sélection du modèle (quel modèle sera meilleur pour gérer le contexte) et le type de contexte à lui fournir.
Conclusion
L’ingénierie de contexte est un domaine extrêmement dynamique qui sera probablement tout aussi important, sinon plus, que l’ingénierie de prompts dans notre utilisation des outils d’IA. Alors que nous passons progressivement des systèmes basés sur des prompts uniques à des systèmes agentiques plus complexes et dynamiques, la capacité à fournir le bon contexte au bon moment deviendra une compétence cruciale tant pour les développeurs que pour les utilisateurs d’IA.
Nous n’en sommes qu’aux premiers pas dans la formation de principes généraux pour la construction et l’utilisation d’agents IA efficaces, mais il est clair que l’ingénierie de contexte jouera un rôle central dans l’évolution de ce domaine passionnant.
Featured image by Free Nomad on Unsplash

