Une douce introduction à l’ingénierie contextuelle dans les LLM

 Une douce introduction à l’ingénierie contextuelle dans les LLM

Présentation de l'ingénierie contextuelle visuelPrésentation de l'ingénierie contextuelle visuelImage de l’auteur | Toile

# Introduction


Il ne fait aucun doute que les modèles de grandes langues peuvent faire des choses incroyables. Mais en dehors de leur base de connaissances internes, ils dépendent fortement des informations (le contexte) que vous les nourrissez. Ingénierie contextuelle consiste à concevoir soigneusement ces informations afin que le modèle puisse réussir. Cette idée a gagné en popularité lorsque les ingénieurs ont réalisé que la simple rédaction d’invites intelligentes n’est pas suffisante pour des applications complexes. Si le modèle ne connaît pas un fait nécessaire, il ne peut pas le deviner. Nous devons donc assembler toutes les informations pertinentes afin que le modèle puisse vraiment comprendre la tâche à accomplir.

Une partie de la raison pour laquelle le terme «ingénierie contextuel» a attiré l’attention était due à un Tweet largement partagé par Andrej Karpathy, qui a dit:

+1 pour «l’ingénierie contextuelle» sur «ingénierie rapide». Les gens associent des invites à de courtes descriptions de tâches que vous donneriez un LLM dans votre utilisation quotidienne, tandis que dans chaque application LLM de force industrielle, l’ingénierie contextuelle est l’art délicat et la science du remplissage de la fenêtre de contexte avec les bonnes informations pour la prochaine étape…

Cet article va être un peu théorique, et j’essaierai de garder les choses aussi simples et nettes que possible.

# Qu’est-ce que l’ingénierie contextuelle?


Si j’ai reçu une demande qui disait: « Hé Kanwal, pouvez-vous écrire un article sur le fonctionnement des LLM? », C’est une instruction. J’écrirais ce que je trouve adapté et je viserais probablement un public avec un niveau d’expertise moyen. Maintenant, si mon public était débutant, ils comprendraient à peine ce qui se passe. S’ils étaient des experts, ils pourraient le considérer trop basique ou hors contexte. J’ai également besoin d’un ensemble d’instructions comme l’expertise du public, de la longueur d’article, de l’orientation théorique ou pratique et du style d’écriture pour écrire une pièce qui résonne avec eux.

De même, l’ingénierie contextuelle signifie donner à la LLM tout, des préférences des utilisateurs et des invites d’exemples pour récupérer les faits et les sorties d’outils, il comprend donc parfaitement l’objectif.

Voici un visuel que j’ai créé des choses qui pourraient entrer dans le contexte du LLM:


Diagramme d'ingénierie contextuelDiagramme d'ingénierie contextuel L’ingénierie contextuelle comprend des instructions, un profil utilisateur, l’historique, des outils, des documents récupérés, et plus encore | Image par auteur

Chacun de ces éléments peut être considéré comme faisant partie de la fenêtre de contexte du modèle. L’ingénierie contextuelle est la pratique de décider lequel de ceux-ci inclure, sous quelle forme et dans quel ordre.

# En quoi l’ingénierie contextuelle est-elle différente de l’ingénierie rapide?


Je ne ferai pas cela inutilement long. J’espère que vous avez compris l’idée jusqu’à présent. Mais pour ceux qui ne l’ont pas fait, permettez-moi de le dire brièvement. Ingénierie rapide Se concentre traditionnellement sur la rédaction d’une seule invite autonome (la question ou l’instruction immédiate) pour obtenir une bonne réponse. En revanche, ingénierie contextuelle concerne l’ensemble de l’environnement d’entrée autour du LLM. Si l’ingénierie rapide est «Que dois-je demander au modèle?», Alors l’ingénierie contextuelle est «Qu’est-ce que je montre le modèle et comment gérer ce contenu afin qu’il puisse faire la tâche?

# Comment fonctionne l’ingénierie contextuelle


L’ingénierie contextuelle fonctionne à travers un pipeline de trois composants étroitement connectés, chacun conçu pour aider le modèle à prendre de meilleures décisions en voyant les bonnes informations au bon moment. Jetons un coup d’œil au rôle de chacun de ceux-ci:

// 1. Récupération du contexte et génération

Dans cette étape, toutes les informations pertinentes sont extraites ou générées pour aider le modèle à mieux comprendre la tâche. Cela peut inclure des messages passés, des instructions utilisateur, des documents externes, des résultats de l’API ou même des données structurées. Vous pouvez récupérer un document de politique de l’entreprise pour répondre à une requête RH ou générer une invite bien structurée en utilisant le framework Clear (concis, logique, explicite, adaptable, réfléchissant) pour un raisonnement plus efficace.

// 2. Traitement de contexte

C’est là que toutes les informations brutes sont optimisées pour le modèle. Cette étape comprend des techniques de contexte à long terme comme l’interpolation de position ou l’attention économe en mémoire (par exemple, l’attention groupée et les modèles comme le mamba), qui aident les modèles à gérer les entrées ultra-longues. Il comprend également l’auto-rendu, où le modèle est invité à réfléchir et à améliorer sa propre sortie de manière itérative. Certains cadres récents permettent même aux modèles de générer leurs propres commentaires, de juger leurs performances et d’évoluer de manière autonome en enseignant eux-mêmes avec des exemples qu’ils créent et filtrent.

// 3. Gestion du contexte

Ce composant gère la façon dont les informations sont stockées, mises à jour et utilisées entre les interactions. Ceci est particulièrement important dans les applications comme le support client ou les agents qui fonctionnent au fil du temps. Des techniques telles que les modules de mémoire à long terme, la compression de la mémoire, les caches de tampon de roulement et les systèmes de récupération modulaire permettent de maintenir le contexte à travers plusieurs sessions sans écraser le modèle. Il ne s’agit pas seulement du contexte que vous mettez, mais aussi de la façon dont vous le gardez efficace, pertinent et à jour.

# Défis et atténuations dans l’ingénierie contextuelle


Concevoir le contexte parfait ne consiste pas seulement à ajouter plus de données, mais à l’équilibre, à la structure et aux contraintes. Examinons certains des principaux défis que vous pourriez rencontrer et leurs solutions potentielles:

  • Contexte non pertinent ou bruyant (distraction du contexte): Nourrir le modèle trop d’informations non pertinentes peut les confondre. Utilisez l’assemblage contextuel basé sur la priorité, la notation de la pertinence et les filtres de récupération pour tirer uniquement les morceaux les plus utiles.
  • Coûts de latence et de ressources: Les contextes longs et complexes augmentent le temps de calcul et l’utilisation de la mémoire. Tronquer une histoire non pertinente ou un calcul de déchargement sur des systèmes de récupération ou des modules légers.
  • Intégration de l’outil et des connaissances (affrontement contextuel): Lors de la fusion des sorties d’outils ou des données externes, des conflits peuvent se produire. Ajouter des instructions de schéma ou des méta-tags (comme @tool_output) pour éviter les problèmes de format. Pour les affrontements source, essayez l’attribution ou laissez le modèle exprimer l’incertitude.
  • Maintenir la cohérence sur plusieurs tours: Dans les conversations multiples, les modèles peuvent halluciner ou perdre la trace des faits. Suivez les informations clés et réintroduisez sélectivement en cas de besoin.

Deux autres problèmes importants: empoisonnement au contexte et Confusion de contexte ont été bien expliqués par Drew Breuniget je vous encourage à vérifier cela.

# Emballage

L’ingénierie contextuelle n’est plus une compétence facultative. C’est l’épine dorsale de la façon dont nous faisons des modèles de langue non seulement, mais comprenez. À bien des égards, il est invisible pour l’utilisateur final, mais il définit à quel point la sortie est utile et intelligente. Cela devait être une introduction douce à ce qu’elle est et à son fonctionnement.

Si vous êtes intéressé à explorer davantage, voici deux ressources solides pour aller plus loin:


Kanwal Mehreen est un ingénieur d’apprentissage automatique et un écrivain technique avec une profonde passion pour la science des données et l’intersection de l’IA avec la médecine. Elle a co-écrit l’ebook « Maximiser la productivité avec Chatgpt ». En tant que Google Generation Scholar 2022 pour APAC, elle défend la diversité et l’excellence académique. Elle est également reconnue comme une diversité de Teradata dans Tech Scholar, le boursier de recherche Mitacs Globalink et le savant de Harvard WECODE. Kanwal est un ardent défenseur du changement, après avoir fondé des femmes pour autonomiser les femmes dans les champs STEM.



Source link

Related post