Maison  >  Article  >  Périphériques technologiques  >  Gagnant rapidement 2 500 étoiles, Andrej Karpathy a réécrit une bibliothèque minGPT

Gagnant rapidement 2 500 étoiles, Andrej Karpathy a réécrit une bibliothèque minGPT

WBOY
WBOYavant
2023-04-13 14:01:061119parcourir

En tant qu'œuvre représentative de « l'esthétique violente » dans le domaine de l'intelligence artificielle, on peut dire que GPT a volé la vedette Des 117 millions de paramètres de GPT au début de sa naissance, il est passé à 175. milliards de paramètres de GPT-3. Avec la sortie de GPT-3, OpenAI a ouvert son API commerciale à la communauté, encourageant tout le monde à tenter davantage d'expériences en utilisant GPT-3. Cependant, l’utilisation de l’API nécessite une application, et votre application risque d’aboutir à rien.

Afin de permettre aux chercheurs disposant de ressources limitées de découvrir le plaisir de jouer avec de grands modèles, l'ancien directeur de Tesla AI, Andrej Karpathy, a écrit une petite bibliothèque de formation GPT basée sur PyTorch avec seulement environ 300 lignes de code. Ce minGPT peut effectuer des opérations d'addition et une modélisation du langage au niveau des caractères, et la précision n'est pas mauvaise.

Après deux ans, minGPT a été mis à jour et Karpathy a lancé une nouvelle version nommée NanoGPT. Cette bibliothèque est utilisée pour entraîner et affiner les GPT de taille moyenne. Quelques jours seulement après son lancement, il a récolté 2,5 000 étoiles.

Gagnant rapidement 2 500 étoiles, Andrej Karpathy a réécrit une bibliothèque minGPT


Adresse du projet : https://github.com/karpathy/nanoGPT

Dans l'introduction du projet, Karpathy a écrit : "NanoGPT est utilisé pour la formation et le réglage fin du support- scale La bibliothèque la plus simple et la plus rapide pour GPT. C'est une réécriture de minGPT, car minGPT est si compliqué que je suis réticent à l'utiliser. NanoGPT est toujours en cours de développement et travaille actuellement à la reproduction de GPT sur l'ensemble de données OpenWebText 2.

.

L'objectif de conception du code NanoGPT est d'être simple et facile à lire, où train.py est un code d'environ 300 lignes ; model.py est une définition de modèle GPT d'environ 300 lignes, qui peut éventuellement charger des poids GPT-2. d'OpenAI 》

Gagnant rapidement 2 500 étoiles, Andrej Karpathy a réécrit une bibliothèque minGPT

Afin de présenter l'ensemble de données, l'utilisateur doit d'abord tokeniser certains documents dans un simple tableau d'index 1D.

$ cd data/openwebtext
$ python prepare.py

Cela générera deux fichiers : train.bin et val.bin, chacun contenant une séquence brute de uint16 octets représentant l'identifiant du jeton GPT-2 BPE. Ce script de formation tente de répliquer la plus petite version de GPT-2 fournie par OpenAI, qui est la version 124M.

$ python train.py

Si vous souhaitez utiliser le parallélisme de données distribué (DDP) PyTorch pour la formation, veuillez utiliser torchrun pour exécuter le script.

$ torchrun --standalone --nproc_per_node=4 train.py

Pour rendre le code plus efficace, les utilisateurs peuvent également échantillonner à partir du modèle :

$ python sample.py

Karpathy a déclaré que le projet a actuellement une perte d'entraînement d'environ 3,74 sur 1 GPU A100 40 Go pendant la nuit, et sur 4 La perte d'entraînement sur GPU est d'environ 3,60. La formation est tombée à 3,1 ATM avec 400 000 itérations (~ 1 jour) sur 8 nœuds A100 de 40 Go.

Pour savoir comment affiner GPT sur un nouveau texte, les utilisateurs peuvent visiter data/shakespeare et consulter prepare.py. Contrairement à OpenWebText, cela s'exécutera en quelques secondes. Le réglage fin prend très peu de temps, par exemple quelques minutes sur un seul GPU. Voici un exemple de réglage fin

$ python train.py config/finetune_shakespeare.py

Dès que le projet a été mis en ligne, les gens ont déjà commencé à l'essayer :

Gagnant rapidement 2 500 étoiles, Andrej Karpathy a réécrit une bibliothèque minGPT

Les amis qui veulent l'essayer peuvent se référer au projet original opération.

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