Emballage facile à utiliser pour les modèles GPT-2 124m, 345m, 774m et 1,5b
Qu'est-ce que c'est • Installation • Début
Fabriqué par Rishabh Anand • https://rish-16.github.io
GPT-2 est un modèle de traitement du langage naturel développé par OpenAI pour la génération de texte. Il s'agit du successeur du modèle GPT (transformateur générateur pré-formé) formé sur 40 Go de texte depuis Internet. Il dispose d'un modèle de transformateur qui a été mis en lumière par l'attention est tout ce dont vous avez besoin de papier en 2017. Le modèle a 4 versions - 124M
, 345M
, 774M
et 1558M
- qui diffèrent en termes de quantité de données de formation qui lui est alimentée et du nombre de paramètres qu'ils contiennent.
Le modèle 1.5b est actuellement le plus grand modèle disponible publié par OpenAI.
Enfin, gpt2-client
est un wrapper autour du référentiel gpt-2
original qui présente les mêmes fonctionnalités mais avec plus d'accès, de compréhensibilité et d'utilisation. Vous pouvez jouer avec les quatre modèles GPT-2 en moins de cinq lignes de code.
* Remarque : ce wrapper client n'est en aucun cas susceptible de les dégâts causés directement ou indirectement. Tous les noms, lieux et objets référencés par le modèle sont fictifs et ne cherchent aucune ressemblance avec des entités ou des organisations réelles. Les échantillons ne sont pas filtrés et peuvent contenir un contenu offensant. Discrétion utilisateur conseillé. *
Installez le client via pip
. Idéalement, gpt2-client
est bien pris en charge pour Python> = 3,5 et TensorFlow> = 1.x. Certaines bibliothèques peuvent devoir être réinstallées ou mises à niveau à l'aide de l'indicateur --upgrade
via pip
si Python 2.x est utilisé.
pip install gpt2-client
Remarque:
gpt2-client
n'est pas compatible avec TensorFlow 2.0, essayez TensorFlow 1.14.0
1. Téléchargez les poids et les points de contrôle du modèle
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`. Rename `save_dir` to anything.
gpt2 . load_model ( force_download = False ) # Use cached versions if available.
Cela crée un répertoire appelé models
dans le répertoire de travail actuel et télécharge les poids, les points de contrôle, le modèle JSON et les hyper-paramètres requis par le modèle. Une fois que vous avez appelé la fonction load_model()
, vous n'avez pas besoin de l'appeler à nouveau en supposant que les fichiers ont terminé le téléchargement dans le répertoire models
.
Remarque: Set
force_download=True
pour écraser les poids et points de contrôle du modèle mis en cache existant
2. Commencez à générer du texte!
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
gpt2 . generate ( interactive = True ) # Asks user for prompt
gpt2 . generate ( n_samples = 4 ) # Generates 4 pieces of text
text = gpt2 . generate ( return_text = True ) # Generates text and returns it in an array
gpt2 . generate ( interactive = True , n_samples = 3 ) # A different prompt each time
Vous pouvez voir à partir de l'échantillon susmentionné que les options de production sont très flexibles. Vous pouvez mélanger et assortir en fonction du type de texte dont vous avez besoin, que ce soit plusieurs morceaux ou un à la fois avec des invites.
3. Génération de texte à partir d'un lot d'invites
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
prompts = [
"This is a prompt 1" ,
"This is a prompt 2" ,
"This is a prompt 3" ,
"This is a prompt 4"
]
text = gpt2 . generate_batch_from_prompts ( prompts ) # returns an array of generated text
4. Fonctionner GPT-2 aux ensembles de données personnalisés
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
my_corpus = './data/shakespeare.txt' # path to corpus
custom_text = gpt2 . finetune ( my_corpus , return_text = True ) # Load your custom dataset
Afin de régler GPT-2 à votre corpus ou un ensemble de données personnalisé, il est idéal d'avoir un GPU ou un TPU à portée de main. Google Colab est l'un de ces outils que vous pouvez utiliser pour rétracter / affiner votre modèle personnalisé.
5. Encodage et décodage de séquences de texte
from gpt2_client import GPT2Client
gpt2 = GPT2Client ( '124M' ) # This could also be `355M`, `774M`, or `1558M`
gpt2 . load_model ()
# encoding a sentence
encs = gpt2 . encode_seq ( "Hello world, this is a sentence" )
# [15496, 995, 11, 428, 318, 257, 6827]
# decoding an encoded sequence
decs = gpt2 . decode_seq ( encs )
# Hello world, this is a sentence
Les suggestions, les améliorations et les améliorations sont toujours les bienvenues! Si vous avez des problèmes, veuillez en relever un dans la section des problèmes. Si vous avez une amélioration, déposez un problème pour discuter de la suggestion avant de créer un PR.
Toutes les idées - peu importe comment scandaleuses - bienvenue!
L'Open-source est vraiment amusante. Vos dons me motivent à donner vie à de nouvelles idées. Si vous souhaitez soutenir mes efforts open source, veuillez faire un don - cela signifie beaucoup pour moi!
Mit