dévoiler les secrets des modèles de grande langue: une plongée profonde dans la tokenisation
Vous vous souvenez du buzz entourant le GPT-3 d'OpenAI en 2020? Bien que ce ne soit pas le premier de sa ligne, les capacités remarquables de génération de texte de GPT-3 l'ont catapultée à la gloire. Depuis lors, d'innombrables modèles de grandes langues (LLM) ont émergé. Mais comment les LLM aiment-elles le chatte de chatte de chatpt? La réponse réside dans un processus appelé tokenisation.
Cet article s'inspire de la série YouTube perspicace d'Andrej Karpathy, "Deep Dive dans des LLM comme Chatgpt", un incontournable pour quiconque cherche une compréhension plus profonde de LLMS. (Hautement recommandé!)
Avant d'explorer la tokenisation, examinons brièvement le fonctionnement interne d'un LLM. Sautez si vous êtes déjà familier avec les réseaux de neurones et les LLM.
Dans les modèles de grands langues
LLMS utilisent des réseaux de neurones du transformateur - des formules mathématiques complexes. L'entrée est une séquence de jetons (mots, phrases ou caractères) traités par des couches d'intégration, en les convertissant en représentations numériques. Ces entrées, ainsi que les paramètres du réseau (poids), sont introduites dans une équation mathématique massive.
Les réseaux de neurones modernes possèdent des milliards de paramètres, initialement définis au hasard. Le réseau fait initialement des prédictions aléatoires. La formation ajuste de manière itérative ces poids pour aligner la sortie du réseau avec les modèles dans les données de formation. La formation, par conséquent, implique de trouver l'ensemble de poids optimal qui reflète le mieux les propriétés statistiques des données de formation.
L'architecture du transformateur, introduit dans l'article 2017, "l'attention est tout ce dont vous avez besoin" par Vaswani et al., Est un réseau neuronal spécifiquement conçu pour le traitement des séquences. Initialement utilisé pour la traduction des machines neuronales, c'est maintenant la pierre angulaire de LLMS.
Pour une compréhension visuelle des réseaux de transformateurs au niveau de la production, visitez https://www.php.cn/link/f4a75336b061f291b6c11f5e4d6ebf7d . Ce site propose des visualisations 3D interactives des architectures GPT et de leur processus d'inférence.
Ce nano-gpt. Paramètres) montre des séquences de jetons d'entrée traitées à travers les couches, subissant des transformations (mécanismes d'attention et réseaux de flux pour prédire le jetons suivant.
Tokenisation: la rupture du texte
Formation d'un LLM de pointe comme Chatgpt ou Claude implique plusieurs étages séquentiels. (Voir mon article précédent sur les hallucinations pour plus de détails sur le pipeline d'entraînement.)
Pretepraining, l'étape initiale, nécessite un ensemble de données massif et de haute qualité (téraoctets). Ces ensembles de données sont généralement propriétaires. Nous utiliserons l'ensemble de données OpenSource Fineweb à partir de Hugging Face (disponible sous la licence d'attribution Open Data Commons) par exemple. ( Plus de détails sur la création de finweb ici ).
un échantillon de fineweb (100 exemples concaténés).
Notre objectif est de former un réseau de neurones pour reproduire ce texte. Les réseaux de neurones nécessitent une séquence unidimensionnelle de symboles à partir d'un ensemble fini. Cela nécessite la conversion du texte en une telle séquence.
Nous commençons par une séquence de texte unidimensionnelle. Le codage UTF-8 convertit ceci en une séquence de bits bruts.
Les premiers 8 Bits représentent la lettre "A '. La séquence binaire, bien que techniquement une séquence de symboles (0 et 1), est trop longue. Nous avons besoin de séquences plus courtes avec plus de symboles. Le regroupement de 8 bits dans un octet nous donne une séquence de 256 symboles possibles (0-255).
src = "https://img.php.cn/upload/article/000/000/000/174166083192550.jpg" alt = "C'est ainsi que LLMS décompose le langage" /> Cette conversion est la tokenisation. Les modèles de pointe vont plus loin, en utilisant le codage des paires d'octets (BPE).
BPE identifie des paires d'octets consécutifs fréquents et les remplace par de nouveaux symboles. Par exemple, si "101 114" apparaît souvent, il est remplacé par un nouveau symbole. Ce processus répète, raccourcissant la séquence et élargissant le vocabulaire. GPT-4 utilise du BPE, résultant en un vocabulaire d'environ 100 000 jetons.
Explorez la tokenisation de manière interactive avec tktokizer Tokenisation pour divers modèles. Using GPT-4's cl100k_base encoder on the first four sentences yields:
<code>11787, 499, 21815, 369, 90250, 763, 14689, 30, 7694, 1555, 279, 21542, 3770, 323, 499, 1253, 1120, 1518, 701, 4832, 2457, 13, 9359, 1124, 323, 6642, 264, 3449, 709, 3010, 18396, 13, 1226, 617, 9214, 315, 1023, 3697, 430. 1093, 499, 0 </code> pre> <p> <img src="https://img.php.cn/upload/article/000/000/000/174166084058435.jpg" alt="C'est la façon dont LLMS décompose le langage"> </p> <p> <em> cl100k_base </em>. </p> <p> <img src="https://img.php.cn/upload/article/000/000/000/174166084234224.jpg" alt="Il s'agit de la façon dont LLMS décompose le langage"> </p> <p> La tokenisation </p><p> est cruciale pour les LLM, transformant le texte brut en un format structuré pour les réseaux de neurones. La longueur de séquence d'équilibrage et la taille du vocabulaire sont essentielles pour l'efficacité de calcul. Les LLM modernes comme GPT utilisent le BPE pour des performances optimales. Comprendre la tokenisation fournit des informations précieuses sur le fonctionnement interne des LLMS. </p> <p> Suivez-moi sur X (anciennement Twitter) pour plus d'informations sur l'IA! </p> <p> <strong> Références </strong> </p>
Veuillez remplacer les liens entre le crochet. J'ai tenté de maintenir le formatage d'origine et les placements d'image comme demandé.
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!