


Lecture à vitesse véritable quantique : dépassant la limite du GPT-4 qui ne peut comprendre que 50 pages de texte à la fois, de nouvelles recherches s'étendent à des millions de jetons
Il y a plus d'un mois, le GPT-4 d'OpenAI est sorti. En plus de diverses excellentes démonstrations visuelles, il implémente également une mise à jour importante : il peut gérer des jetons de contexte d'une longueur de 8 Ko par défaut, mais peuvent atteindre 32 Ko (environ 50 pages de texte). Cela signifie que lorsque nous posons des questions à GPT-4, nous pouvons saisir un texte beaucoup plus long qu'auparavant. Cela élargit considérablement les scénarios d'application de GPT-4 et permet de mieux gérer les longues conversations, les textes longs ainsi que la recherche et l'analyse de fichiers.
Cependant, ce record a été rapidement battu : CoLT5 de Google Research a étendu la longueur du jeton de contexte que le modèle peut gérer à 64k.
Une telle avancée n'est pas facile, car ces modèles utilisant l'architecture Transformer sont tous confrontés à un problème : le traitement de documents longs par Transformer est très coûteux en termes de calcul, car le coût d'attention augmente quadratiquement avec la longueur d'entrée, ce qui rend les grands modèles de plus en plus difficiles. à appliquer aux entrées plus longues.
Malgré cela, les chercheurs continuent de faire des percées dans cette direction. Il y a quelques jours, une étude de la pile technologique open source d'IA conversationnelle DeepPavlov et d'autres institutions a montré que : En utilisant une architecture appelée Recurrent Memory Transformer (RMT), ils peuvent augmenter la longueur de contexte effective du modèle BERT à 2 millions. token (selon la méthode de calcul d'OpenAI, environ équivalent à 3200 pages de texte), tout en conservant une précision de récupération de mémoire élevée (Remarque : Recurrent Memory Transformer est une méthode proposée par Aydar Bulatov et al. dans un article à NeurIPS 2022) . La nouvelle méthode permet le stockage et le traitement d'informations locales et globales, ainsi que le flux d'informations entre les segments de la séquence d'entrée grâce à l'utilisation de la récurrence.
L'auteur a déclaré qu'en utilisant le mécanisme de mémoire simple basé sur des jetons introduit par Bulatov et al dans l'article "Recurrent Memory Transformer", ils peuvent combiner RMT avec un modèle de Transformer pré-entraîné comme BERT. , Un seul GPU Nvidia GTX 1080Ti peut effectuer des opérations de pleine attention et de précision sur des séquences de plus d'un million de jetons.
Adresse papier : https://arxiv.org/pdf/2304.11062.pdf
Cependant, certaines personnes ont rappelé qu'il ne s'agissait pas d'un véritable "déjeuner gratuit", comme mentionné ci-dessus L'amélioration du papier s'obtient en échange d'un « temps de raisonnement plus long + une diminution substantielle de la qualité ». Ce n’est donc pas encore une révolution, mais cela pourrait devenir la base du prochain paradigme (les jetons peuvent être infiniment longs).
Recurrent Memory Transformer
Cette étude adopte la méthode Recurrent Memory Transformer (RMT) proposée par Bulatov et al en 2022, et la transforme en une méthode plug-and-play. montré dans la figure ci-dessous :
L'entrée longue est divisée en plusieurs segments et le vecteur mémoire est ajouté au premier segment avant l'intégration et traité avec le jeton de segment. Pour les modèles de codeur pur comme BERT, la mémoire n'est ajoutée qu'une seule fois au début du segment, contrairement à (Bulatov et al., 2022), où le modèle de décodeur pur divise la mémoire en parties de lecture et d'écriture. Pour le pas de temps τ et le segment
, la boucle s'exécute comme suit :
où, N est le nombre de couches de Transformer. Après propagation vers l'avant,
contient le jeton mémoire mis à jour du segment τ.
Les segments de la séquence d'entrée sont traités dans l'ordre. Pour activer les connexions en boucle, l'étude transmet la sortie des jetons de mémoire du segment actuel à l'entrée du segment suivant :
La mémoire et les boucles dans RMT sont basées uniquement sur des jetons de mémoire globaux. Cela permet au Transformer de base de rester inchangé, ce qui rend les capacités d'amélioration de la mémoire de RMT compatibles avec n'importe quel modèle de Transformer.
Efficacité informatique
Cette étude estime les FLOP requis pour les modèles RMT et Transformer de différentes tailles et longueurs de séquence.
Comme le montre la figure 3 ci-dessous, si la longueur du segment est fixe, RMT peut évoluer linéairement pour n'importe quelle taille de modèle. Cette étude réalise une mise à l'échelle linéaire en divisant la séquence d'entrée en segments et en calculant la matrice d'attention complète uniquement dans les limites des segments.
En raison de la grande complexité informatique de la couche FFN, les modèles de transformateur plus grands ont tendance à présenter une mise à l'échelle quadratique plus lente avec la longueur de la séquence. Cependant, pour les très longues séquences supérieures à 32 000, elles reviennent à une expansion quadratique. Pour les séquences comportant plus d'un segment (> 512 dans cette étude), le RMT nécessite moins de FLOP que les modèles acycliques et peut réduire le nombre de FLOP jusqu'à 295 fois. RMT offre une réduction relative plus importante du FLOP pour les modèles plus petits, mais la réduction de 29x du FLOP pour le modèle OPT-175B est significative en termes absolus.
Tâche de mémoire
Pour tester les capacités de mémoire, l'étude a construit des ensembles de données synthétiques qui nécessitaient la mémorisation de faits simples et d'un raisonnement de base. La saisie d'une tâche consiste en un ou plusieurs faits et une question à laquelle on ne peut répondre qu'en utilisant tous les faits. Pour augmenter la difficulté de la tâche, l'étude a également ajouté un texte en langage naturel sans rapport avec la question ou la réponse pour agir comme du bruit. Le modèle a donc été chargé de séparer les faits du texte non pertinent et d'utiliser les faits pour répondre à la question.
Mémoire factuelle
La première tâche consistait à examiner la capacité du RMT à écrire et à stocker des informations en mémoire pendant de longues périodes, comme le montre le haut de la figure 4 ci-dessous. Dans le cas le plus simple, les faits ont tendance à se trouver au début de la contribution et les questions à la fin. La quantité de texte non pertinent entre les questions et les réponses augmente progressivement jusqu'au point où l'intégralité de l'entrée ne rentre plus dans une seule entrée de modèle.
Détection et mémoire des faits
La détection des faits augmente la difficulté de la tâche en déplaçant un fait vers une position aléatoire dans l'entrée, comme indiqué au milieu de la figure 4 ci-dessus. Cela nécessite que le modèle distingue d'abord le fait du texte non pertinent, écrive le fait en mémoire, puis l'utilise pour répondre à la question finale.
Utiliser des faits mémorisés pour raisonner
Une autre opération de mémoire consiste à utiliser des faits mémorisés et le contexte actuel pour raisonner. Pour évaluer cette fonctionnalité, les chercheurs ont utilisé une tâche plus complexe dans laquelle deux faits ont été générés et placés dans une séquence d'entrée, comme le montre le bas de la figure 4 ci-dessus. La question posée à la fin de la séquence est décrite de telle manière que des faits arbitraires doivent être utilisés pour répondre correctement à la question.
Résultats expérimentaux
Les chercheurs ont utilisé 4 à 8 GPU NVIDIA 1080ti pour entraîner et évaluer le modèle. Pour les séquences plus longues, ils ont utilisé un seul NVIDIA A100 de 40 Go pour accélérer l'évaluation.
Cours d'apprentissage
Les chercheurs ont observé que l'utilisation du plan de formation peut améliorer considérablement la précision et la stabilité de la solution. Initialement, RMT est formé sur une version plus courte de la tâche et augmente la durée de la tâche en ajoutant un autre segment à mesure que la formation converge. Le processus d'apprentissage du cours se poursuit jusqu'à ce que la longueur de saisie requise soit atteinte.
Dans l'expérience, les chercheurs ont d'abord commencé avec une séquence adaptée à un seul segment. La taille réelle du segment est de 499, mais en raison des 3 jetons spéciaux de BERT et des 10 espaces réservés de mémoire retenus à partir de l'entrée du modèle, la taille est de 512. Ils notent qu'après une formation sur une tâche plus courte, le RMT est plus facile à résoudre des versions plus longues de la tâche, grâce au fait qu'il utilise moins d'étapes de formation pour converger vers une solution parfaite.
Capacité d'extrapolation
Quelle est la capacité de généralisation du RMT à différentes longueurs de séquence ? Pour répondre à cette question, les chercheurs ont évalué des modèles entraînés sur différents nombres de segments pour résoudre des tâches plus longues, comme le montre la figure 5 ci-dessous.
Ils ont observé que les modèles ont tendance à être plus performants sur des tâches plus courtes, à la seule exception étant la tâche d'inférence à segment unique, qui devient difficile à résoudre une fois que le modèle est entraîné sur des séquences plus longues. Une explication possible est que, puisque la taille de la tâche dépasse un segment, le modèle « ne s'attend plus » à des problèmes dans le premier segment, ce qui entraîne une diminution de la qualité.
Fait intéressant, la capacité du RMT à généraliser à des séquences plus longues apparaît également à mesure que le nombre de segments d’entraînement augmente. Après un entraînement sur 5 segments ou plus, le RMT peut généraliser presque parfaitement à des tâches deux fois plus longues.
Pour tester les limites de la généralisation, les chercheurs ont augmenté la taille de la tâche de vérification à 4 096 segments ou 2 043 904 jetons (comme le montre la figure 1 ci-dessus). Les tâches de détection et de mémoire sont les plus simples et les tâches d'inférence sont les plus complexes.
Modèle d'attention des opérations de mémoire
Dans la figure 6 ci-dessous, en examinant l'attention RMT sur des segments spécifiques, le chercheur a observé que les opérations de mémoire correspondent à des modèles d'attention spécifiques. De plus, les performances d'extrapolation élevées sur des séquences extrêmement longues dans la section 5.2 démontrent l'efficacité des opérations de mémoire apprises, même lorsqu'elles sont utilisées des milliers de fois.
Veuillez vous référer à l'article original pour plus de détails techniques et expérimentaux.
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

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

L'article présente le fonctionnement de la base de données MySQL. Tout d'abord, vous devez installer un client MySQL, tel que MySQLWorkBench ou le client de ligne de commande. 1. Utilisez la commande MySQL-UROot-P pour vous connecter au serveur et connecter avec le mot de passe du compte racine; 2. Utilisez Createdatabase pour créer une base de données et utilisez Sélectionner une base de données; 3. Utilisez CreateTable pour créer une table, définissez des champs et des types de données; 4. Utilisez InsertInto pour insérer des données, remettre en question les données, mettre à jour les données par mise à jour et supprimer les données par Supprimer. Ce n'est qu'en maîtrisant ces étapes, en apprenant à faire face à des problèmes courants et à l'optimisation des performances de la base de données que vous pouvez utiliser efficacement MySQL.

Afin de définir le délai d'expiration de Vue Axios, nous pouvons créer une instance AxiOS et spécifier l'option Timeout: dans les paramètres globaux: vue.prototype. $ Axios = axios.create ({timeout: 5000}); Dans une seule demande: ce. $ axios.get ('/ api / utilisateurs', {timeout: 10000}).

Il existe de nombreuses raisons pour lesquelles la startup MySQL échoue, et elle peut être diagnostiquée en vérifiant le journal des erreurs. Les causes courantes incluent les conflits de port (vérifier l'occupation du port et la configuration de modification), les problèmes d'autorisation (vérifier le service exécutant les autorisations des utilisateurs), les erreurs de fichier de configuration (vérifier les paramètres des paramètres), la corruption du répertoire de données (restaurer les données ou reconstruire l'espace de la table), les problèmes d'espace de la table InNODB (vérifier les fichiers IBDATA1), la défaillance du chargement du plug-in (vérification du journal des erreurs). Lors de la résolution de problèmes, vous devez les analyser en fonction du journal d'erreur, trouver la cause profonde du problème et développer l'habitude de sauvegarder régulièrement les données pour prévenir et résoudre des problèmes.

Traiter efficacement 7 millions d'enregistrements et créer des cartes interactives avec la technologie géospatiale. Cet article explore comment traiter efficacement plus de 7 millions d'enregistrements en utilisant Laravel et MySQL et les convertir en visualisations de cartes interactives. Exigences initiales du projet de défi: extraire des informations précieuses en utilisant 7 millions d'enregistrements dans la base de données MySQL. Beaucoup de gens considèrent d'abord les langages de programmation, mais ignorent la base de données elle-même: peut-il répondre aux besoins? La migration des données ou l'ajustement structurel est-il requis? MySQL peut-il résister à une charge de données aussi importante? Analyse préliminaire: les filtres et les propriétés clés doivent être identifiés. Après analyse, il a été constaté que seuls quelques attributs étaient liés à la solution. Nous avons vérifié la faisabilité du filtre et établi certaines restrictions pour optimiser la recherche. Recherche de cartes basée sur la ville

Ingénieur backend à distance Emploi Vacant Société: Emplacement du cercle: Bureau à distance Type d'emploi: Salaire à temps plein: 130 000 $ - 140 000 $ Description du poste Participez à la recherche et au développement des applications mobiles Circle et des fonctionnalités publiques liées à l'API couvrant l'intégralité du cycle de vie de développement logiciel. Les principales responsabilités complètent indépendamment les travaux de développement basés sur RubyOnRails et collaborent avec l'équipe frontale React / Redux / Relay. Créez les fonctionnalités de base et les améliorations des applications Web et travaillez en étroite collaboration avec les concepteurs et le leadership tout au long du processus de conception fonctionnelle. Promouvoir les processus de développement positifs et hiérarchiser la vitesse d'itération. Nécessite plus de 6 ans de backend d'applications Web complexe

L'optimisation des performances MySQL doit commencer à partir de trois aspects: configuration d'installation, indexation et optimisation des requêtes, surveillance et réglage. 1. Après l'installation, vous devez ajuster le fichier my.cnf en fonction de la configuration du serveur, tel que le paramètre innodb_buffer_pool_size, et fermer query_cache_size; 2. Créez un index approprié pour éviter les index excessifs et optimiser les instructions de requête, telles que l'utilisation de la commande Explication pour analyser le plan d'exécution; 3. Utilisez le propre outil de surveillance de MySQL (ShowProcessList, Showstatus) pour surveiller la santé de la base de données, et sauvegarde régulièrement et organisez la base de données. Ce n'est qu'en optimisant en continu ces étapes que les performances de la base de données MySQL peuvent être améliorées.

Guide d'optimisation des performances de la base de données MySQL dans les applications à forte intensité de ressources, la base de données MySQL joue un rôle crucial et est responsable de la gestion des transactions massives. Cependant, à mesure que l'échelle de l'application se développe, les goulots d'étranglement des performances de la base de données deviennent souvent une contrainte. Cet article explorera une série de stratégies efficaces d'optimisation des performances MySQL pour garantir que votre application reste efficace et réactive dans des charges élevées. Nous combinerons des cas réels pour expliquer les technologies clés approfondies telles que l'indexation, l'optimisation des requêtes, la conception de la base de données et la mise en cache. 1. La conception de l'architecture de la base de données et l'architecture optimisée de la base de données sont la pierre angulaire de l'optimisation des performances MySQL. Voici quelques principes de base: sélectionner le bon type de données et sélectionner le plus petit type de données qui répond aux besoins peut non seulement économiser un espace de stockage, mais également améliorer la vitesse de traitement des données.

Une explication détaillée des attributs d'acide de base de données Les attributs acides sont un ensemble de règles pour garantir la fiabilité et la cohérence des transactions de base de données. Ils définissent comment les systèmes de bases de données gérent les transactions et garantissent l'intégrité et la précision des données même en cas de plantages système, d'interruptions d'alimentation ou de plusieurs utilisateurs d'accès simultanément. Présentation de l'attribut acide Atomicité: une transaction est considérée comme une unité indivisible. Toute pièce échoue, la transaction entière est reculée et la base de données ne conserve aucune modification. Par exemple, si un transfert bancaire est déduit d'un compte mais pas augmenté à un autre, toute l'opération est révoquée. BeginTransaction; UpdateAccountSsetBalance = Balance-100Wh
