


Le modèle linguistique a-t-il appris à utiliser les moteurs de recherche par lui-même ? Meta AI propose la méthode d'apprentissage auto-supervisée par appel API Toolformer
Dans les tâches de traitement du langage naturel, les grands modèles de langage ont obtenu des résultats impressionnants en matière d'apprentissage à zéro et à quelques coups. Cependant, tous les modèles ont des limites inhérentes qui ne peuvent souvent être résolues que partiellement par des extensions ultérieures. Plus précisément, les limites du modèle incluent l'incapacité d'accéder aux informations les plus récentes, « l'hallucination informationnelle » des faits, la difficulté de comprendre les langages à faibles ressources, le manque de compétences mathématiques pour des calculs précis, etc.
Un moyen simple de résoudre ces problèmes est d'équiper le modèle d'outils externes, comme un moteur de recherche, une calculatrice ou un calendrier. Cependant, les méthodes existantes reposent souvent sur de nombreuses annotations manuelles ou limitent l’utilisation d’outils à des paramètres de tâches spécifiques, ce qui rend difficile la généralisation de l’utilisation de modèles de langage combinés à des outils externes.
Afin de briser ce goulot d'étranglement, Meta AI a récemment proposé une nouvelle méthode appelée Toolformer, qui permet au modèle de langage d'apprendre à « utiliser » divers outils externes.
Adresse papier : https://arxiv.org/pdf/2302.04761v1.pdf
Toolformer a rapidement attiré une grande attention, et certaines personnes ont pensé que ce document résolvait le problème. il y a actuellement de nombreux problèmes avec les grands modèles de langage, et il a fait l'éloge : "C'est l'article le plus important de ces dernières semaines."
Quelqu'un a souligné que Toolformer utilise l'apprentissage auto-supervisé pour permettre aux grands modèles de langage d'apprendre à utiliser certaines API et outils avec seulement quelques échantillons, ce qui est très flexible et efficace :
Certaines personnes pensent même que Toolformer nous rapprochera encore plus de l'intelligence artificielle générale (AGI).
Toolformer obtient une note très élevée car il répond aux besoins pratiques suivants :
- Les grands modèles de langage doivent apprendre à utiliser les outils de manière auto-supervisée, et aucun manuel détaillé n'est nécessaire. annotation. Ceci est essentiel. Le coût de l’annotation manuelle n’est qu’un aspect. Plus important encore, ce que les humains pensent être utile peut être différent de ce que le modèle considère comme utile.
- Les modèles linguistiques nécessitent une utilisation plus complète d'outils qui ne sont pas liés à une tâche spécifique.
Cela brise clairement le goulot d'étranglement mentionné ci-dessus. Examinons de plus près les méthodes et les résultats expérimentaux de Toolformer.
Method
Toolformer est basée sur l'idée de générer des ensembles de données à partir de zéro (Schick et Schütze, 2021b ; Honovich et al., 2022 ; Wang et al., 2022) basés sur de grands modèles de langage avec apprentissage en contexte (ICL) : étant donné seulement quelques échantillons d'humains utilisant l'API, vous pouvez laisser LM annoter un énorme ensemble de données de modélisation de langage avec des appels d'API potentiels, puis utiliser une fonction de perte auto-supervisée pour déterminer quels appels d'API aident réellement l'API ; modèle Prédire les futurs jetons ; et enfin affiner en fonction des appels d'API utiles à LM lui-même.
Étant donné que Toolformer est indépendant de l'ensemble de données utilisé, il peut être utilisé exactement sur le même ensemble de données sur lequel le modèle a été pré-entraîné, ce qui garantit que le modèle ne perd aucune généralité ni capacités de modélisation linguistique.
Plus précisément, le but de cette recherche est de donner au modèle de langage M la possibilité d'utiliser divers outils via des appels API. Cela nécessite que l'entrée et la sortie de chaque API puissent être caractérisées comme une séquence de texte. Cela permet aux appels d'API d'être insérés de manière transparente dans n'importe quel texte donné, avec des jetons spéciaux utilisés pour marquer le début et la fin de chacun de ces appels.
L'étude représente chaque appel API sous forme de tuple
, où a_c est le nom de l'API et i_c est l'entrée correspondante. Étant donné un appel API c avec le résultat correspondant r, cette étude représente la séquence linéarisée d'appels API excluant et incluant son résultat comme :
où,
À partir d'un jeu de données
, l'étude a d'abord transformé cet ensemble de données en un jeu de données C* avec l'ajout d'appels API. Cela se fait en trois étapes, comme le montre la figure 2 ci-dessous : Tout d'abord, l'étude exploite les capacités d'apprentissage en contexte de M pour échantillonner un grand nombre d'appels d'API potentiels, puis exécute ces appels d'API, puis vérifie si les réponses obtenues aident les prédictions. Futur jeton à utiliser comme critère de filtrage. Après filtrage, l'étude fusionne les appels d'API vers différents outils, générant finalement l'ensemble de données C*, et affine M lui-même sur cet ensemble de données.
Expériences et résultats
Cette étude a mené des expériences sur une variété de différentes tâches en aval, et les résultats montrent que : Toolformer (appris à utiliser diverses API) basé sur le paramètre 6.7B pré-entraîné Modèle et outils GPT-J) surpasse considérablement le modèle GPT-3 plus grand et plusieurs autres références sur une variété de tâches.
Cette étude a évalué plusieurs modèles sur les sous-ensembles SQuAD, GoogleRE et T-REx du benchmark LAMA, et les résultats expérimentaux sont présentés dans le tableau 3 ci-dessous :
Pour tester les mathématiques de l'inférence Toolformer capacités,L'étude a mené des expériences sur les benchmarks ASDiv, SVAMP et MAWPS. Les expériences montrent que Toolformer utilise des outils de calcul dans la plupart des cas, ce qui est nettement meilleur que OPT (66B) et GPT-3 (175B).
En termes de réponse aux questions, l'étude a mené des expériences sur trois ensembles de données de réponse aux questions : Questions Web, Questions naturelles et TriviaQA. Toolformer surpasse considérablement les modèles de base de même taille, mais est inférieur au GPT-3 (175B).
En termes de tâches multilingues, cette étude a comparé tous les modèles de base sur Toolformer et MLQA, et les résultats sont présentés dans le tableau 6 ci-dessous :
Afin de étudier l'API du calendrier Pour démontrer leur utilité, cette étude expérimente plusieurs modèles sur TEMPLAMA et un nouvel ensemble de données appelé DATESET. Toolformer surpasse toutes les lignes de base mais n'utilise pas l'outil de calendrier TEMPLAMA.
En plus de valider les améliorations de performances sur diverses tâches en aval, l'étude espère également garantir que les performances de modélisation du langage de Toolformer ne sont pas dégradées en raison du réglage fin des appels d'API. À cette fin, cette étude mène des expériences sur deux ensembles de données de modélisation linguistique à évaluer, et la perplexité du modèle est présentée dans le tableau 8 ci-dessous.
Pour la modélisation du langage sans aucun appel API, l'ajout d'appels API ne coûte rien.
Enfin, les chercheurs ont analysé l'impact de la possibilité de demander de l'aide à des outils externes sur les performances du modèle à mesure que l'échelle du modèle de langage augmente. Les résultats de l'analyse sont présentés dans la figure 4 ci-dessous
.
Les lecteurs intéressés peuvent lire l'article original pour en savoir plus sur les détails de la recherche.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











L'utilisation de la bibliothèque Chrono en C peut vous permettre de contrôler plus précisément les intervalles de temps et de temps. Explorons le charme de cette bibliothèque. La bibliothèque Chrono de C fait partie de la bibliothèque standard, qui fournit une façon moderne de gérer les intervalles de temps et de temps. Pour les programmeurs qui ont souffert de temps et ctime, Chrono est sans aucun doute une aubaine. Il améliore non seulement la lisibilité et la maintenabilité du code, mais offre également une précision et une flexibilité plus élevées. Commençons par les bases. La bibliothèque Chrono comprend principalement les composants clés suivants: std :: chrono :: system_clock: représente l'horloge système, utilisée pour obtenir l'heure actuelle. std :: chron

La mesure des performances du thread en C peut utiliser les outils de synchronisation, les outils d'analyse des performances et les minuteries personnalisées dans la bibliothèque standard. 1. Utilisez la bibliothèque pour mesurer le temps d'exécution. 2. Utilisez le GPROF pour l'analyse des performances. Les étapes incluent l'ajout de l'option -pg pendant la compilation, l'exécution du programme pour générer un fichier gmon.out et la génération d'un rapport de performances. 3. Utilisez le module Callgrind de Valgrind pour effectuer une analyse plus détaillée. Les étapes incluent l'exécution du programme pour générer le fichier callgrind.out et la visualisation des résultats à l'aide de Kcachegrind. 4. Les minuteries personnalisées peuvent mesurer de manière flexible le temps d'exécution d'un segment de code spécifique. Ces méthodes aident à bien comprendre les performances du thread et à optimiser le code.

Les étapes principales et les précautions pour l'utilisation de flux de chaîne en C sont les suivantes: 1. Créez un flux de chaîne de sortie et convertissez des données, telles que la conversion des entiers en chaînes. 2. Appliquer à la sérialisation des structures de données complexes, telles que la conversion du vecteur en chaînes. 3. Faites attention aux problèmes de performances et évitez l'utilisation fréquente des flux de chaînes lors du traitement de grandes quantités de données. Vous pouvez envisager d'utiliser la méthode d'ajout de Std :: String. 4. Faites attention à la gestion de la mémoire et évitez la création et la destruction fréquentes des objets de flux de chaîne. Vous pouvez réutiliser ou utiliser Std :: Stringstream.

DMA IN C fait référence à DirectMemoryAccess, une technologie d'accès à la mémoire directe, permettant aux périphériques matériels de transmettre directement les données à la mémoire sans intervention CPU. 1) L'opération DMA dépend fortement des dispositifs matériels et des pilotes, et la méthode d'implémentation varie d'un système à l'autre. 2) L'accès direct à la mémoire peut apporter des risques de sécurité et l'exactitude et la sécurité du code doivent être assurées. 3) Le DMA peut améliorer les performances, mais une mauvaise utilisation peut entraîner une dégradation des performances du système. Grâce à la pratique et à l'apprentissage, nous pouvons maîtriser les compétences de l'utilisation du DMA et maximiser son efficacité dans des scénarios tels que la transmission de données à grande vitesse et le traitement du signal en temps réel.

C fonctionne bien dans la programmation du système d'exploitation en temps réel (RTOS), offrant une efficacité d'exécution efficace et une gestion du temps précise. 1) C répond aux besoins des RTO grâce à un fonctionnement direct des ressources matérielles et à une gestion efficace de la mémoire. 2) En utilisant des fonctionnalités orientées objet, C peut concevoir un système de planification de tâches flexible. 3) C prend en charge un traitement efficace d'interruption, mais l'allocation de mémoire dynamique et le traitement des exceptions doivent être évités pour assurer le temps réel. 4) La programmation des modèles et les fonctions en ligne aident à l'optimisation des performances. 5) Dans les applications pratiques, C peut être utilisé pour implémenter un système de journalisation efficace.

L'optimisation du code C peut être réalisée grâce aux stratégies suivantes: 1. Gérer manuellement la mémoire pour l'utilisation d'optimisation; 2. Écrivez du code conforme aux règles d'optimisation du compilateur; 3. Sélectionnez les algorithmes et structures de données appropriés; 4. Utiliser les fonctions en ligne pour réduire les frais généraux d'appel; 5. Appliquer la métaprogrammation du modèle pour optimiser au moment de la compilation; 6. Évitez la copie inutile, utilisez la sémantique mobile et les paramètres de référence; 7. Utilisez Constir correctement pour aider à l'optimisation du compilateur; 8. Sélectionnez des structures de données appropriées, telles que STD :: Vector.

Pour désinstaller MySQL en toute sécurité et en toute sécurité et nettoyer tous les fichiers résiduels, suivez les étapes suivantes: 1. Stop MySQL Service; 2. Désinstaller les packages MySQL; 3. Nettoyer des fichiers de configuration et des répertoires de données; 4. Vérifiez que la désinstallation est approfondie.

Les fonctions MySQL peuvent être utilisées pour le traitement et le calcul des données. 1. L'utilisation de base comprend le traitement des chaînes, le calcul de la date et les opérations mathématiques. 2. L'utilisation avancée consiste à combiner plusieurs fonctions pour implémenter des opérations complexes. 3. L'optimisation des performances nécessite d'éviter l'utilisation de fonctions dans la clause où et d'utiliser des tables groupby et temporaires.
