Table des matières
- Présentation des artefacts Un pas en avant dans la génération de résultats structurés.
- Pensée La pensée logique est un élément clé du processus de génération.
- Identifiants et recherche La recherche et la récupération d'artefacts constituent un élément clé de l'invite système.
- Structure du langage de création de modèles Un modèle de rendu qui changera en fonction des variables d'entrée
- Conclusion Un petit artefact pour Claude, un pas de géant pour l'IA.
- Système Claude 3.5 Le système vous invite en entier
Présentation des artefacts
Un pas en avant dans la génération de résultats structurés.
Il s'agit d'une analyse de la génération d'invites système pour Le lien vers le code de cette analyse est disponible en bas avec la source. L'objectif principal de cette analyse est l'introduction du concept d'artefacts et la manière dont cela pourrait fonctionner dans le cadre d'un système intelligent de catégorisation et de récupération.
« Les artefacts concernent un contenu substantiel et autonome que les utilisateurs peuvent modifier ou réutiliser.
Un artefact est un changement de paradigme car il formalise un nouveau concept. Le concept de données persistantes. Les données persistantes sont un tremplin pour accéder à une bibliothèque de contenu hautement organisée et structurée. En fournissant des références fixes, nous débloqueons l’itération et la possibilité d’améliorer et d’affiner progressivement le résultat. Il s’agit d’une étape vers le contrôle de la nature éphémère de la sortie détaillée du LLM.
L'un des problèmes inhérents à l'IA générative pour les tâches fonctionnelles telles que la complétion de code est qu'elles répètent souvent des fichiers entiers pour de simples modifications. Il existe une énorme demande pour une fonctionnalité « diff », qui permet d'afficher la différence entre avant et après, au lieu de répéter le même contenu.
Les artefacts ont donc un double objectif : Premièrement, ils servent de point de référence pour savoir comment et où nous avons besoin de résultats. C'est comme le paramétrage du périmètre ou la définition d'un point de référence. Cela empêchera le LLM de perdre le focus sur le problème d'origine et maintiendra également la structure et la catégorisation persistantes dans le résultat.
En prime, nous disposons également d’une fonction de saisie semi-automatique. En définissant le code « de base » et la portée des changements, nous avons désormais orienté notre LLM pour qu'il se concentre sur une tâche ou un problème spécifique, de manière avisée et organisée. Cela arrête les changements de zoom erratiques et fournit également l'intégralité du travail en cours à l'invite. Tout ingénieur qui a accidentellement effacé son code avec « Reste du code ici » vous remercie. Nous pouvons voir le réglage de la portée ici :
« Contenu autonome et complexe qui peut être compris seul, sans contexte de la conversation.
Nous passons d’une sortie verbeuse incontrôlée à un artefact concret. Il convient de noter l’instruction explicite d’ignorer le contexte de la conversation. Il s'agit d'une méthode permettant de garantir la qualité en référence à des données conservées. Il s'agit d'un mécanisme de contrôle qualité qui contrôle les caractéristiques détaillées et potentiellement aléatoires de l'entrée.
Tout cela s’inscrit dans une architecture de récupération. En disposant d'une bibliothèque approfondie d'artefacts organisés, nous pouvons désormais demander à notre système de récupérer à partir d'un ensemble de données contrôlé. Nous savons que tous les grands fournisseurs d’IA se concentrent fortement sur l’investissement dans des données organisées de haute qualité. Les artefacts sont une étape vers l’encadrement des entrées et sorties détaillées avec une structure.
Nous pouvons voir que l'accent n'est plus mis sur l'entrée et le mappage vers la recherche définie par le système dans l'invite. Voici un exemple de certains des critères d’exclusion :
« Un contenu qui dépend du contexte conversationnel actuel pour être utile. Contenu qui est peu susceptible d'être modifié ou répété par l'utilisateur. Demande des utilisateurs qui semble être une question ponctuelle.
L'invite se concentre activement sur le contexte du système et la tâche à accomplir. L'invite tente explicitement de filtrer les entrées qui ne sont pas pertinentes pour une sortie très spécifique. Ainsi, l’artefact agit comme un point de référence concret à la fois dans le texte généré et comme données structurées en coulisses. Cela nous permet une récupération et une concentration rapides et précises. Quelque chose qui est très utile pour...
Pensée
La pensée logique est un élément clé du processus de génération.
Les ingénieurs de Prompt nous disent depuis longtemps que l’une des clés d’un résultat fiable est d’obliger les LLM à former un processus de pensée structuré et logique en plusieurs étapes. Nous en voyons une reconnaissance formelle dans l’invite.
"1. Brièvement avant d'invoquer un artefact, réfléchissez à une phrase dans les balises <antthinking> sur la façon dont il est évalué par rapport aux critères d'un bon et d'un mauvais artefact. Demandez-vous si le contenu fonctionnerait parfaitement sans artefact. S'il est digne d'un artefact, dans une autre phrase, déterminez s'il s'agit d'un nouvel artefact ou d'une mise à jour d'un artefact existant (le plus courant). Pour les mises à jour, réutilisez l’identifiant précédent.
Ici, nous obligeons notre système à suivre un processus structuré en plusieurs étapes pour analyser la tâche et le résultat. Encore une fois, on s'oriente vers une définition forte du contenu verbeux et on fait allusion à un système de recherche et de récupération d'artefacts.
« <antthinking>La création d'un script Python pour calculer des factorielles répond aux critères d'un bon artefact. Il s'agit d'un morceau de code autonome qui peut être compris seul et susceptible d'être réutilisé ou modifié. Il s’agit d’une nouvelle conversation, il n’y a donc aucun artefact préexistant. Par conséquent, je crée un nouvel artefact.</antthinking>
<antthinking>Cette requête est une modification directe de l'artefact de calcul factoriel existant. Il ne s'agit pas d'un nouvel artefact mais d'une mise à jour pour rendre le script plus robuste. Je vais réutiliser l'identifiant du calculateur factoriel pour maintenir la continuité et montrer l'évolution de notre code.</antthinking>
Ici, nous pouvons voir la mise en œuvre d'un processus de pensée logique pour la génération de résultats définis. En veillant à ce que notre algorithme passe par les mêmes étapes logiques, nous disposons des germes d’un processus de génération intelligent et reproductible.
Nous pouvons mapper cette logique au processus de pensée d’une personne. Tout d’abord, nous avons une approche logique et rationnelle de résolution de problèmes. Nous complétons cela avec des artefacts durs. L'ensemble de données LLM est le cerveau, mais les artefacts sont les compétences et les connaissances qui nous permettent d'arriver à un certain résultat.
Si nous imaginons tous les modèles concurrents, nous pouvons en déduire qu’ils reposent sur la réplication de processus de pensée logiques. Nous créons essentiellement un cerveau robot pour imiter le processus de pensée logique d’un humain. Nous construisons les parties manquantes, les connaissances, les structures et les processus de récupération qui alimentent le cerveau.
Cela fait des invites et des instructions du système des atouts incroyablement précieux. La compréhension et le raffinement de la « pensée logique » sont un élément clé du processus de génération.
Nous pouvons voir quelques implémentations de base de cette pensée structurée dans le code...
Identifiants et recherche
La recherche et la récupération d'artefacts constituent un élément clé de l'invite système.
« <antartifact identifier="factorial-script" type="application/vnd.ant.code" langage="python" title="Simple Python factorial script"> def factorial(n) : si n == 0 : renvoie 1 sinon : retour n * factoriel(n - 1)
Alors, qu'est-ce que application/vnd.ant.code ? L'application est assez simple, VND est le fournisseur, ANT sera Anthropic (les créateurs de Claude) et le code ; c'est un aperçu de leur architecture. Je m'attendrais à une sorte de taxonomie et de données structurées répertoriant les tâches que les personnes tentent d'accomplir avec les LLM.
- Tâches de codage
- Présentations
- Documents
- Analyse
- Beaucoup plus...
Nous pourrions, par exemple, créer un pseudo-code pour une tentative de présentation PowerPoint.
<antartifact identifier="powerpoint-presentation" type="application/vnd.ant.presentation" purpose="business" title="Simple powerpoint presentation"> Slide 1: Title slide Slide 2: Introduction Slide 3: Problem statement Slide 4: Solution </antartifact>
Cela n’a certainement rien à voir avec le code de production, mais c’est un paradigme mental intéressant. Pour contrôler et structurer une sortie détaillée, nous devons faire face à des processus logiques et rationnels pour catégoriser et normaliser l’entrée et la sortie.
Je soupçonne que cela signifie que lorsque les entrées arrivent, ils exécutent des algorithmes distincts, aguerris qui exécutent l'extraction et la catégorisation des entités. Ces données structurées sont ensuite analysées via un processus de recherche et de récupération d'actifs. Où, pour le texte, nous utilisons des bases de données vectorielles ; pour d'autres sorties définies, nous avons maintenant introduit ce concept d'artefacts. Par exemple, une tâche React Code pourrait ressembler à ceci.
"INPUT: Create a react component for a metrics dashboard", "ENTITY_EXTRACTION: Coding, React, Metrics Dashboard", "ENTITY_SEARCH: Retrieve code artifacts for Metrics Dashboard where type = React", "SYSTEM_PROMPT: create_system_prompt(artifact_id='metrics-dashboard-component', type='application/vnd.ant.code', language='react')"
Il se passe beaucoup de choses et nous pouvons constater les efforts nécessaires en coulisses pour rassembler des exemples et des taxonomies de haute qualité pour ce qui est essentiellement un pool théorique illimité de tâches. Il y aura des itérations avec d’autres algorithmes de classification d’IA en coulisses pour automatiser cela.
Mais il s’agit, à la base, d’après ce que nous pouvons voir, d’un système de recherche et de récupération sophistiqué, basé sur un langage de modèles propriétaire.
Structure du langage de création de modèles
Un modèle de rendu qui changera en fonction des variables d'entrée.
J'ai commencé ma carrière il y a de nombreuses années en tant que développeur Drupal. En lisant l'invite, le mot qui m'a sauté aux yeux était TWIG. Twig est un langage de création de modèles HTML couramment utilisé pour le rendu de modèles HTML à partir de PHP. Claude utilisera presque certainement une approche équivalente qui adapte les entrées et le contexte en fonction de données structurées (probablement extraites en dehors du LLM).
Il semble que Claude Sonnet 3.5 utilise quelque chose de similaire, ce qui est parfaitement logique. Compte tenu de la saisie de texte dans le LLM, nous devons systématiquement générer des blocs de texte. Ce sont les balises dynamiques qui sont rassemblées pour générer l'invite.
- <antartifact></antartifact>
- <artifacts_info><artifacts_info/>
- <exemple></exemple>
- <user_query></user_query>
- <example_docstring></example_docstring>
- <assistant_response></assistant_response>
Cela exploitera une sorte d’approche d’appel de fonction. Chaque balise a un objectif spécifique. Cela sert ensuite d'abstraction lorsque nous dirigeons notre modèle pour trouver la bonne catégorie et le bon type pour chaque objectif spécifique. J'imagine qu'une construction rapide se déroule comme ceci. Pseudo-code massivement spéculatif entrant…
function generate_reference() { context=artifact_type, artifact_id, task examples = search_examples_by_type('react', 'hooks', 'current_ids') return structured_data } function generate_system_instruction(structured_data) { <antartifact> <artifacts_info {{ attribute(version, '1.00') }}> <% artifact_introduction %> <% artifact_selection %> <% artifact_elimination %> <% artifact_usage %> <% artifact_instruction {{ type(code, 'data-code') }} {{ type(react, 'data-react') }} %> </ artifacts_info/> <example {{ for react_example in react_code_artifact }}>{react_example }</example> <example_docstring {{ for example_thought_process in curated_artifact_generation_example }}>{example_thought_process }<example_docstring /> <user_query>{sanitized_user_query}</user_query> <assistant_response>{sanitized_user_query}</assistant_response> </antartifact }
Voilà donc un processus de réflexion divisé en blocs. Extraction d'entités mappée avec recherche et récupération avancées. Les éléments constitutifs d’un processus de réflexion logique. Les données sous-jacentes sont essentielles à la qualité du résultat.
Conclusion
Un petit artefact pour Claude, un pas de géant pour l'IA.
Les artefacts sont à la sortie structurée telle que la génération de code ce que la recherche vectorielle est au chiffon. Il s’agit du système de recherche et de récupération de sorties structurées.
Nous voyons la preuve d'un processus de pensée structuré et rationnel dans Claude 3.5. Quelque chose que nous avons toujours attendu comme important dans l'IA générative, mais c'est une preuve formelle.
Je peux imaginer des armées de développeurs et de spécialistes du marketing créant des bibliothèques d'artefacts sélectionnés. Cette bibliothèque est accessible via des tâches de classification puis de recherche et de récupération. Mais le véritable progrès réside dans le concept de persévérance.
En travaillant avec des artefacts, nous disposons de points de référence qui existent au-delà de l’éphémère. Ceux qui peuvent être raffinés et réutilisés. Nous avions déjà une sortie réfléchie et verbeuse. Maintenant, nous avons des souvenirs et de l'expertise...
Système Claude 3.5