1 points par GN⁺ 2024-02-25 | 1 commentaires | Partager sur WhatsApp

Méthodes d’optimisation des requêtes de base de données

  • Explication des méthodes pour accélérer les requêtes de base de données.

Implémenter un modèle GPT en SQL

  • Théorie et processus concret d’implémentation d’un modèle GPT en SQL.
  • Un modèle GPT est une fonction qui reçoit une chaîne de texte en entrée et renvoie un tableau de chaînes et de nombres.
  • Cette fonction est déterministe et renvoie toujours la même sortie pour une même entrée.

Théorie

  • Brève explication du fonctionnement interne d’un modèle GPT.
  • Explication, d’un point de vue technique, de ce qu’est un grand modèle de langage génératif.
  • La valeur de retour de la fonction est un tableau de tuples représentant les mots qui prolongent le prompt et leur probabilité.

Signification des valeurs

  • Les valeurs renvoyées par la fonction sont un tableau de tuples composés d’un mot et d’un nombre représentant la probabilité que ce mot prolonge le prompt.

Différentes méthodes de génération de texte

  • Les grands modèles de langage sont utilisés dans des applications textuelles et fonctionnent en sélectionnant l’un des mots proposés par le modèle pour l’ajouter au prompt.
  • Ce processus produit un texte qui reflète la grammaire, la syntaxe, ainsi que l’intelligence et le raisonnement du langage humain.

Signification de Generative Pre-trained Transformer

  • « Generative » signifie qu’il génère du texte, et « Transformer » indique qu’il utilise un type particulier de réseau de neurones.
  • « Pre-trained » indique que la capacité du modèle à prolonger un texte était considérée comme une étape de pré-entraînement pour des tâches spécialisées, mais que des modèles suffisamment grands peuvent suivre des instructions en langage humain sans entraînement supplémentaire.

Génération

  • Explication du processus de génération de texte à partir d’un prompt à l’aide de GPT2.
  • Le texte est converti en liste de tokens, puis l’algorithme est exécuté pour calculer la probabilité des tokens candidats.
  • Le token suivant est choisi et ajouté à la liste de tokens, puis ce processus est répété jusqu’à ce qu’un nombre suffisant de mots ait été généré.

Tokenizer

  • Processus de conversion d’un texte en liste de nombres avant son entrée dans le réseau de neurones.
  • GPT2 implémente son tokenizer à l’aide d’une variante de l’algorithme Byte pair encoding.

Embedding

  • Comme les tokens représentent des éléments du langage humain, il faut encoder les relations entre eux nécessaires à la complétion du texte.
  • GPT2 utilise pour chaque token un vecteur de 768 dimensions comme embedding.

Mécanisme d’attention

  • Explication du mécanisme d’auto-attention, au cœur de l’architecture Transformer.
  • Les vecteurs de chaque token s’influencent mutuellement afin de transmettre leurs propriétés au dernier vecteur.

Feedforward

  • Étape réalisée dans un réseau de neurones profond, où l’entrée est traitée à travers plusieurs couches.
  • Chaque couche transforme l’entrée à l’aide de paramètres appris.

Blocs

  • Le processus décrit aux étapes précédentes est répété sur plusieurs couches (blocs).
  • La sortie de chaque bloc est utilisée comme entrée du bloc suivant.

L’avis de GN⁺

  • Cet article est très utile pour les spécialistes des bases de données et les ingénieurs logiciel, et peut aider à comprendre le processus complexe d’implémentation d’un modèle GPT en SQL.
  • En expliquant les principes de base et la méthode d’implémentation d’un modèle GPT, il permet aux lecteurs de mieux comprendre le fonctionnement des modèles de langage d’IA.
  • Bien que le contenu soit technique, il offre un exemple intéressant de convergence entre l’IA et les technologies de base de données, ce qui aide à comprendre les tendances récentes du domaine.

1 commentaires

 
GN⁺ 2024-02-25
Avis Hacker News
  • C’est une belle réalisation. L’auteur menait des recherches dans la même direction avec SQLite et disait qu’il était encore loin d’introduire des réseaux de neurones. Inspiré par la série de cours makemore, il a commencé à utiliser des réseaux de neurones environ une heure plus tard, et c’est à ce niveau que l’auteur en est arrivé. Découper cela selon le modèle relationnel est en fait un très bon exercice.
  • La démo est bonne, mais l’explication du masquage causal dans l’article est confuse. Le masquage causal existe pour empêcher le modèle de « jeter un œil » aux futurs tokens pendant l’entraînement et, dans une architecture comme GPT, pour imposer l’aspect auto-régressif pendant l’inférence. Pendant l’inférence, de toute façon, seul le dernier token est utilisé, donc ce token prêtera attention à toute la séquence d’entrée. Il n’est donc certainement pas déterminé uniquement par l’embedding du dernier token.
  • Je me demande si c’est une description exacte de la boucle principale de GPT. Le code semble convertir une chaîne en liste de tokens, exécuter l’algorithme pour renvoyer les probabilités des tokens, choisir le token suivant dans une liste de candidats, l’ajouter à la liste des tokens, puis répéter en décidant s’il faut arrêter la génération. Enfin, il semble reconvertir la liste de tokens en chaîne et la renvoyer. Cela ressemble beaucoup à une machine à états implémentant l’algorithme de Shlemiel the painter, ce qui soulève des questions sur le coût de calcul intrinsèque de la génération.
  • Le machine learning moderne n’exige pas la complétude de Turing, mais les gens envisagent la possibilité de l’AGI. Si la complétude de Turing n’est pas nécessaire, ce serait assez fascinant.
  • Lien connexe : « GPT en 60 lignes avec NumPy » - février 2023 (146 commentaires)
  • J’adore ça. Il y a un an, cela ressemblait à une forme de magie ; maintenant c’est très bien expliqué, presque de manière enfantine.
  • J’ai complètement évité GPT et les LLM. Cela semble pouvoir produire un certain niveau de fluidité dans la sortie texte, mais je ne pense pas que cela puisse servir à analyser des questions et y répondre. Je me demande comment ils fonctionnent, ou s’il existe un billet de blog simple ou un cours qui publie un moteur jouet dans un langage comme Python. Tout ce que j’ai vu jusqu’à présent comme matériel pédagogique est centré sur la manière d’utiliser les plateformes.
  • C’est excellent. Dans le même esprit, l’auteur a aussi implémenté GPT en utilisant uniquement des fonctions de tableur, avec un tutoriel vidéo à l’appui.
  • C’est étonnamment instructif et cela répond à quelques questions que j’avais au début, non seulement sur le « comment », mais aussi sur le « pourquoi ». On voit souvent apparaître le motif softmax. J’aimerais qu’on l’enseigne comme un « argmax différentiable » au lieu de donner directement la formule aux gens. Ce n’est pas toute l’histoire, mais c’est souvent ainsi qu’il est utilisé.
  • Je continue à lire que GPT n’est qu’une version « plus intelligente » et « plus complexe » d’une chaîne de Markov qui recrache le mot suivant avec une certaine probabilité. Mais d’après mon expérience, ce n’est pas vrai : il doit bien y avoir de l’apprentissage d’une manière ou d’une autre. Par exemple, si on lui dit quelque chose qui s’est passé aujourd’hui et qui contredit le passé (j’utilise la Coupe du monde au Qatar pour tester cela), puis qu’on pose une question affectée par cet événement, il répond correctement. Je me demande comment une simple phrase, c’est-à-dire l’information qu’on lui fournit, peut modifier aussi fortement la probabilité du token suivant jusque très loin dans la séquence.