Maison  >  Article  >  Périphériques technologiques  >  Dix réflexions sur la conception d'applications à grand modèle

Dix réflexions sur la conception d'applications à grand modèle

王林
王林avant
2023-12-04 17:17:211239parcourir

La technologie n'est pas toute-puissante, mais sans technologie, cela peut être absolument impossible, et il en va de même pour les grands modèles. La conception d'applications basées sur de grands modèles doit se concentrer sur le problème à résoudre. Dans le domaine du traitement du langage naturel, le grand modèle lui-même unifie dans une certaine mesure diverses tâches PNL dans un modèle séquence à séquence. En utilisant de grands modèles, nous résolvons des problèmes spécifiques de production et de vie, et la conception de produits et technique reste indispensable.

Donc, si les grands modèles réinventent l'avenir du génie logiciel, y a-t-il quelques principes de base que nous devrions suivre ?

1. Modèle d'abord, itération continue

Si le modèle peut terminer la tâche, il n'est pas nécessaire d'écrire du code ; le modèle continuera à évoluer, mais le code ne le fera pas

À l'ère d'aujourd'hui, la valeur de Les modèles deviennent de plus en plus présents. Différentes des méthodes de programmation traditionnelles, les idées de développement actuelles sont plus enclines à « modéliser d'abord ». Cela signifie que lorsque nous sommes confrontés à un problème ou à une tâche, nous nous demandons d’abord si nous pouvons exploiter les modèles existants pour le résoudre, plutôt que de commencer immédiatement à écrire du code. Le code étant fixe, le modèle dispose d’une énorme marge de développement. Au fil du temps, les modèles ont de fortes capacités d’apprentissage et d’adaptabilité, et peuvent s’auto-optimiser et s’améliorer grâce à des itérations continues. Par conséquent, notre première priorité est d’exploiter le potentiel du modèle et d’en faire un outil pour résoudre les problèmes.

L’objectif de l’ensemble du système est de tirer parti de la capacité de LLM à planifier et à comprendre les intentions pour construire des projets efficaces. En cours de route, nous pourrions être tentés de retomber dans cet état d’esprit impératif et d’écrire du code pour chaque détail de notre programme. Cependant, nous devons résister à cette tentation, dans la mesure où nous pouvons faire en sorte que le modèle fasse quelque chose de manière fiable maintenant, il deviendra meilleur et plus robuste à mesure que le modèle évolue

2 Faites un compromis sur la précision, utilisez les interactions -hors levier pour la précision, utilisez l'interaction pour atténuer l'ambiguïté. L'état d'esprit correct lors du codage avec LLM n'est pas "voyons ce que nous pouvons faire faire à l'ours dansant" mais d'obtenir autant de levier que possible du système. Par exemple, des modèles très généraux tels que « Créer un rapport à partir d'une base de données » ou « Enseigner une année de sujets » peuvent être créés et paramétrés avec des invites en texte brut, produisant facilement des résultats très précieux et différenciés.

Dans le but de maintenir une grande précision, nous devons peser sa relation avec d'autres facteurs. Pour atteindre cet équilibre, nous pouvons adopter une approche interactive afin d’éliminer d’éventuelles ambiguïtés et malentendus. Cette stratégie améliore non seulement la précision, mais augmente également la flexibilité et l'efficacité opérationnelles

Dans le processus de codage avec LLM, l'état d'esprit clé devrait être de réfléchir à la manière de tirer le meilleur parti du système, plutôt que de « l'essayer et l'essayer ». « Que peut-on faire ». Cela signifie que nous ne devons pas nous contenter de la simple implémentation de fonctions, mais que nous devons explorer en profondeur le potentiel du système et le laisser créer une plus grande valeur pour nous.

Dans les applications réelles, nous pouvons créer des modèles communs. Par exemple, un mode tel que « Générer un rapport à partir de la base de données » est hautement adaptable et peut ajuster les paramètres via de simples invites textuelles pour répondre à divers besoins. Un autre exemple est le modèle de « cours d'enseignement approfondi d'un an », qui intègre une multitude de ressources pédagogiques et peut également être facilement ajusté grâce à des méthodes interactives pour répondre à des besoins pédagogiques personnalisés.

Grâce à l'application de ces modèles communs, l'efficacité du travail est non seulement améliorée, mais des résultats précieux et distinctifs peuvent également être facilement produits. Cette stratégie de précision de pesée et de désambiguïsation des interactions est sans aucun doute une façon de penser importante dans la conception d’applications de grands modèles.

3 Le code est pour la syntaxe et les procédures, les modèles sont pour la sémantique et l'intention

Dans le domaine de la programmation moderne, la division du travail entre le code et les modèles devient de plus en plus claire. En termes simples, le code est principalement responsable de la mise en œuvre de la syntaxe et des procédures, tandis que les modèles se concentrent sur la génération et l'interprétation de la sémantique et de l'intention. Dans les applications pratiques, cette division du travail a de nombreuses expressions, mais l'idée de base est la même : le code est utilisé pour exécuter des instructions et des processus spécifiques, tandis que les modèles sont utilisés pour raisonner, générer et comprendre le sens profond et les objectifs du langage

Fondamentalement, cela dit, les modèles sont excellents pour raisonner sur le sens et le but d'un langage, mais ils sont souvent moins performants que le code lorsqu'on leur demande d'effectuer des calculs et des processus spécifiques. Par exemple, un modèle de haut niveau peut être facile à coder pour résoudre le Sudoku, mais il peut être relativement difficile de résoudre le Sudoku lui-même.

Chaque code a ses avantages uniques, la clé est de choisir l'outil qui convient le mieux au problème spécifique. La frontière entre syntaxe et sémantique constitue un défi majeur dans la conception d’applications de modèles à grande échelle. Dans ce contexte, nous devons avoir une compréhension plus approfondie des forces et faiblesses respectives du code et des modèles afin de les utiliser plus efficacement pour résoudre les problèmes

4 Évitez la fragilité et abandonnez le codage en dur

lors de la construction d'un système , il ne faut pas ignorer que la force globale d’un système est souvent déterminée par sa partie la plus vulnérable. Ce point de vue s'applique non seulement aux systèmes logiciels traditionnels, mais également aux applications basées sur de grands modèles. Lorsque l'on recherche la flexibilité et l'efficacité du système, le codage en dur doit être évité autant que possible. Le codage en dur fait référence à l'écriture de valeurs ou d'une logique spécifique directement dans le code sans tenir compte d'éventuelles modifications ou extensions futures. Même si cette approche peut être pratique à court terme, elle peut conduire à long terme à un code rigide et difficile à maintenir. Par conséquent, nous devons prêter attention à l'ajout de raisonnement et de flexibilité lors de l'écriture de codes et d'algorithmes.

Lors de la conception d'invites et d'interactions, nous devons essayer d'inclure suffisamment d'informations et de logique pour que le système puisse prendre des décisions et raisonner de manière autonome, plutôt que de simplement exécuter. commandes prédéfinies. De cette façon, non seulement l’utilisation du codage en dur peut être réduite, mais les capacités du LLM peuvent également être mieux utilisées, rendant le système plus intelligent et plus flexible.

5 La qualité des données passe avant tout, et l'application du LLM est étroitement liée aux données de haute qualité

Les grands modèles présentent des capacités extraordinaires, tout comme les individus « bien éduqués », mais dans les applications pratiques, il leur manque encore certaines Contexte et initiatives

En termes simples, si vous posez une question simple ou ouverte à ces modèles, ils vous donneront une réponse simple ou générale. De telles réponses peuvent manquer de profondeur ou de détails et ne pas satisfaire tous les besoins. Si vous souhaitez obtenir des réponses plus détaillées et approfondies, la manière et la stratégie de poser des questions doivent être plus intelligentes.

Il s'agit en fait d'une manifestation du principe « Garbage in, Garbage out » à l'ère de l'intelligence artificielle. Quelle que soit l’évolution de la technologie, la qualité des données entrantes reste cruciale. Si les données d’entrée sont ambiguës, inexactes ou incomplètes, les réponses fournies par le modèle le seront probablement également.

Afin de garantir que le modèle LLM puisse donner des réponses approfondies et de haute qualité, il est nécessaire de garantir que les données d'entrée sont exactes, détaillées et riches en contexte. Cela signifie également que la qualité des données reste primordiale. Ce n'est qu'en prêtant attention et en garantissant la qualité des données que nous pouvons espérer obtenir des informations vraiment précieuses et approfondies à partir de ces modèles avancés

6 Traiter l'incertitude comme une anomalie

Chaque fois que le modèle rencontre une situation incertaine, nous ne pouvons pas être simplement ignoré ou recevoir une réponse vague. Nous devrions plutôt nous appuyer sur les intentions d’interaction avec les utilisateurs pour clarifier cette incertitude.

En programmation, lorsqu'il y a une incertitude dans un ensemble d'invites imbriquées - par exemple, le résultat d'une invite peut avoir plusieurs interprétations, nous devons adopter une stratégie similaire au "lancement d'exceptions". Cela signifie que cette incertitude doit être transmise aux niveaux supérieurs de la pile jusqu'à ce que vous atteigniez un niveau où vous pouvez interagir avec l'utilisateur ou clarifier l'incertitude.

Grâce à de telles stratégies de conception, les programmes peuvent réagir de manière appropriée face à l'incertitude, fournissant ainsi des résultats plus précis et plus fiables

7 Le texte en tant que protocole universel

Le texte est devenu un protocole omniprésent, principalement grâce à l'excellente qualité de LLM capacité à analyser le langage naturel, l’intention et la sémantique. Par conséquent, le texte est devenu le format préféré pour transmettre des instructions entre les invites, les modules et les services basés sur LLM

Bien que le langage naturel puisse être légèrement imprécis dans certains scénarios d'application, par rapport à d'autres langages structurés tels que XML), ce qui a l'avantage d'être concis, intuitif et facile à comprendre pour les humains. Bien entendu, pour les tâches qui nécessitent un haut degré de précision et de structure, le langage structuré peut toujours être utilisé pour une petite aide. Mais dans la plupart des scénarios, le langage naturel fonctionne assez bien pour transmettre des instructions et des intentions.

Il convient de mentionner qu'avec la vulgarisation et l'avancement de ces technologies basées sur le LLM, le texte, en tant que méthode d'interaction naturelle « à l'épreuve du temps », favorisera davantage l'interopérabilité et la compréhension entre différents systèmes et différentes invites. Si deux services LLM complètement différents peuvent tous deux comprendre et répondre aux mêmes instructions textuelles, alors la collaboration et l'interaction entre eux deviendront aussi naturelles et fluides que la communication entre humains

Le but de la réécriture du contenu n'est pas de changer le sens original, mais de réécrire la langue en chinois

8 Problèmes complexes, opérations de décomposition

Face à un problème complexe, ce n'est pas seulement un défi pour personnes, il en va de même pour les grands modèles. Dans les applications pratiques, si nous utilisons directement les invites de problèmes complexes dans le cadre du programme, nous pouvons rencontrer des problèmes, car tout ce dont nous avons réellement besoin est le résultat de l'inférence

Pour résoudre ce problème, une méthode efficace consiste à utiliser "élément" "indice. Cette invite pose non seulement une question, mais fournit également une réponse détaillée, puis demande au modèle d'en extraire des informations clés. Cette approche fonctionne bien car elle transforme une tâche cognitive complexe en une tâche relativement simple. Imaginez que si vous confiez à une personne la tâche de « lire cet article et trouver la réponse », même si l'utilisateur n'a aucune expertise dans le domaine concerné, il est très probable qu'il accomplisse cette tâche, car le pouvoir du langage naturel est énorme.

Il y a certaines choses auxquelles il faut prêter attention lors de la conception d'applications basées sur de grands modèles. Les choses que les gens ordinaires trouvent difficiles peuvent l’être tout autant dans les modèles. Face à cette situation, la meilleure stratégie consiste à décomposer un problème ou une tâche complexe en étapes plus simples. Cela peut réduire la difficulté du traitement et améliorer la stabilité et l'exactitude des réponses

9. Là où il y a un contrôle, il y a un modèle

Le modèle n'est pas seulement un outil, il peut aussi être une arme pour nous. lutter contre nos propres erreurs. Bien souvent, nous avons tendance à imaginer le fonctionnement du LLM (Large Language Model) comme le processus interne d'un « cerveau ». Cependant, il est important de reconnaître que malgré certaines similitudes entre les modèles et la pensée humaine, il existe de nombreuses différences significatives entre les deux.

Une fonctionnalité est particulièrement importante : les modèles manquent souvent de mémoire persistante lors des interactions à court terme. Cela signifie qu’il est peu probable que le modèle se souvienne de tous les détails d’une minute d’interaction à l’autre. Cette fonctionnalité nous offre la possibilité d'un certain contrôle.

Ce contrôle ne se limite pas à la révision du code. En fait, le modèle peut également servir de moniteur de sécurité pour garantir le fonctionnement sûr du code ; il peut également être utilisé comme élément de la stratégie de test pour nous aider à formuler des plans de test plus efficaces ; un filtre de contenu pour nous aider à générer du contenu de qualité de haute qualité

Par conséquent, tant que nous contrôlons et guidons le modèle de manière appropriée, il peut devenir un puissant « assistant » dans notre travail. La base de ce contrôle repose sur notre compréhension et notre maîtrise approfondies des mécanismes internes et des caractéristiques du modèle.

10. Identifiez les limites et ne pensez pas que les grands modèles sont omnipotents

Les capacités des grands modèles de langage sont vraiment étonnantes. Ils peuvent traiter et analyser de grandes quantités de données textuelles, générer un texte logique et cohérent, et même surpasser. performance humaine dans ces tâches. Cependant, cela ne signifie pas que nous devons aveuglément vénérer ces grands modèles et penser qu’ils peuvent tout faire.

Les grands modèles présentent en réalité encore de nombreuses limitations et limitations. Bien qu’ils puissent traiter de grandes quantités de données textuelles, ils ne comprennent pas vraiment les nuances du langage et du contexte comme le font les humains. De plus, leurs performances sont également limitées par la sélection des données d'entraînement et des algorithmes, et certains biais et erreurs peuvent survenir

Par conséquent, nous devons maintenir une attitude rationnelle et prudente lors de l'utilisation de grands modèles, tout en appréciant la commodité qu'ils apportent et les progrès, mais méfiez-vous également de leurs limites et de leurs risques potentiels. De cette manière, ces modèles peuvent être mieux utilisés pour promouvoir le développement sain de grandes applications basées sur des modèles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer