Chaînage rapide
Il y a une émergence d'outils de programmation visuelle facilitant l'enchaînement de grandes invites de modèles de langage dans une application ; qui est principalement une interface utilisateur conversationnelle.
Un peu de contexte
Un certain nombre de frameworks de développement de chatbot ont inclus les LLM dans leurs fonctionnalités. Cette fonctionnalité est censée compléter les possibilités de développement de chatbot existantes. Cependant, ces implémentations de cadre de développement de chatbot de LLM ont été de nature très similaire .
Cette première implémentation a été suivie d'une seconde vague d'assistants de génération de flux conversationnels et de conception de conversation ; dont Cognigy était le fer de lance . Et ensuite suivi par Yellow AI et Kore AI.
Les LM L sont très polyvalents avec des capacités ouvertes.
Voiceflow et Botpress ont introduit une fonctionnalité ressemblant au chaînage d'invites, dans la mesure où une invite peut être soumise à un LLM et des valeurs peuvent être extraites de la réponse générée.
Dans cet article, je souhaite examiner les principes sous-jacents lors de la conception et de la création d'une interface de programmation visuelle de chaînage d'invites native.
Interface utilisateur de chaînage d'invites natives
Lors de l'enchaînement d'invites de modèle de langage volumineux via une interface utilisateur de programmation visuelle, la plus grande partie de la fonctionnalité sera l'interface graphique qui facilite le processus de création.
Vous trouverez ci-dessous une image de ce à quoi pourrait ressembler une telle interface graphique pour l'ingénierie rapide et la création de chaînes d'invites. Cette conception est issue de recherches effectuées par l'Université de Washington et Google.
L'interface doit offrir une granularité à plusieurs niveaux du processus de création. Considérant le processus de chaînage, il est évident qu'entre les chaînes il y a des connexions.
Tout outil de chaînage d'invites ou de chaînage LLM doit prendre en charge la transformation des données entre les étapes de la chaîne. Étant donné que dans la plupart des cas, le LLM renverra des données non structurées, un niveau de structuration et de transformation des données sera requis.
Un deuxième élément est la nature légèrement imprévisible des LLM. Un LLM peut générer plusieurs réponses à la même invite. Cela donne lieu à un défi de cascade de réponses indésirables dans des chaînes rapides. Où des données inattendues se propagent à travers les chaînes.
Comme il n'y a pas de compilation de code, les invites peuvent être personnalisées au moment de l'exécution sans aucune formation de modèle spécifique requise.
De nouvelles tâches peuvent facilement être absorbées par l'application LLM Chained, simplement en prenant des instructions en langage naturel appelées invites.
Certes, de nombreuses applications du monde réel impliquent des tâches complexes et souvent parallèles en plusieurs étapes qui posent un défi pour une seule instance de chaînes.
Compte tenu de la pile de fonctionnalités ci-dessous, une application de chaînage d'invites basée sur les grands modèles de langage (LLM) et l'IA générative devrait avoir trois composants principaux :
⏺ LLM
⏺ Aides
⏺ Communication
LLM
Pour de nombreuses chaînes/nœuds, la sortie LLM peut être utilisée telle qu'elle est fournie par le LLM. Dans la plupart des cas, cette vue sera présentée à l'utilisateur, ou la transformation des données peut être nécessaire pour une prochaine chaîne dans l'application LLM (alias Gen App).
La sortie LLM déterminera vers quelle chaîne se ramifier, par conséquent, ces bords de chaîne/nœud doivent contenir des règles et des conditions.
Une dernière considération est d'utiliser le LLM comme classificateur . Les LLM peuvent être mis en œuvre dans une capacité générative ou prédictive . L'IA générative est le côté le plus populaire et le plus accessible des LLM. Le prédictif est plus délicat et nécessite un réglage plus fin ou au moins des invites précises.
L'utilisation d'un LLM en tant que classificateur (donc prédictif) au sein d'une chaîne rend les nœuds de prise de décision de l'application de chaînage intelligents et flexibles.
Il y aura toujours la tentation de coder/scénariser rapidement la prise de décision dans les bords ; également appelés points de transition de chaîne. Il s'agit d'une solution rapide ; mais introduit à nouveau de la rigidité dans l'application de chaînage LLM.
Aides
Les assistants aident à l'évaluation de la production LLM, en tenant compte d'aspects tels que la politesse, l'empathie, etc. Les assistants peuvent également reclasser ou soumettre à nouveau des invites.
Comme la granularité est une exigence pour toute implémentation de production, il sera important de peaufiner l'application chaînée rapide. Une forme de script sera nécessaire pour le traitement et la transformation des données.
Les scripts encapsulent les possibilités de développement accordées à l'auteur de la chaîne pour mettre en œuvre des mesures de contrôle, la transformation des données, etc.
Communication
La communication a lieu à quelques niveaux, il y a une entrée de données utilisateur sous la forme de données conversationnelles non structurées.
D'autres actions de l'utilisateur, comme demander à l'utilisateur de sélectionner la meilleure réponse ou lever l'ambiguïté en fonction de quelques possibilités.
Et bien sûr, les systèmes tiers (API) seront interrogés pour toute implémentation d'entreprise ou de production.
Compte tenu de la conception de PromptChainer
L' interface PromptChainer dispose d'un visualiseur de vue de chaîne où la structure de la chaîne avec des nœuds ou des "entre-chaînes" peut être créée, modifiée, lue et supprimée [A].
Le visualiseur de nœud prend en charge la mise en œuvre, l'amélioration et le test de chaque nœud ou chaîne [B]. L'édition des invites pour chaque nœud peut être effectuée ici.
PromptChainer prend également en charge l'exécution de la chaîne de bout en bout [C] avec des options pour vider le cache, afficher les journaux d'exécution, etc.
Sur la base des recherches quantitatives effectuées par l'Université de Washington et Google Research, des découvertes ont été faites sur la façon dont les utilisateurs construisent et déboguent les chaînes :
[1] Les utilisateurs souhaitent créer des chaînes non seulement pour atténuer les limitations de LLM, mais également pour rendre leurs applications extensibles et évolutives.
[2] Certains utilisateurs ont construit une étape d'une chaîne à la fois, tandis que d'autres ont esquissé des espaces réservés abstraits pour toutes les étapes avant de les remplir.
[3] Les interactions entre plusieurs invites et chaînes LLM peuvent être complexes, nécessitant à la fois un débogage local et global des invites.
Considérant l'image ci-dessous, voici une description pour chaque nœud ou chaîne :
[1] Définir l'entrée d'une chaîne
[2,3] Utilisez la sortie LLM pour filtrer et dériver les entrées.
[4] Utilisez la sortie LLM directement comme sortie de nœud.
[5] Fonctions JavaScript pré-implémentées pour une transformation de données typique.
[6] Utilisez la sortie LLM directement comme sortie de nœud.
[7] Appelez des fonctions externes pour connecter des services professionnels avec des LLM.
[8] Fonctions JS définies par l'utilisateur, au cas où les aides prédéfinies seraient insuffisantes.
[9] Utilisez la sortie LLM directement comme sortie de nœud.
[10] Filtrer ou reclasser les sorties LLM selon des critères conçus par l'homme, par exemple la politesse. Permet l'édition externe (utilisateur final) sur les points de données intermédiaires.
En conclusion
Il existe quelques termes utilisés actuellement pour les applications construites sur les modèles de base et les grands modèles de langage. Ces termes sont Gen Apps, Generative Apps, LLM Apps, Prompt Chaining, LLM Chaining et plus encore.
Qu'il suffise de dire qu'il est nécessaire de s'appuyer sur les grands modèles et d'exploiter d'une manière ou d'une autre la puissance des LLM.
Ce besoin sera étayé par les principes suivants :
- Instructions
- Tirer parti des capacités prédictives et génératives de LLM.
- Enchaînement d'invites ; à la fois en parallèle et en série.
- Un éditeur visuel pour programmer des chaînes/nœuds et des arêtes, entre-nœuds/chaînes.
- Transformation des données de réponse LLM.
- Les applications chaînées LLM seront conversationnelles pour l'entrée et la sortie, ou la sortie peut également encapsuler un composant RPA.
Je suis actuellement l' évangéliste en chef @ HumanFirst . J'explore et j'écris sur tout ce qui se situe à l'intersection de l'IA et du langage ; allant des LLM , Chatbots , Voicebots , Frameworks de développement, espaces latents centrés sur les données et plus encore.
PromptChainer : Enchaînement d'invites de modèle de langage volumineux via la programmation visuelle.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































