Einfach zu bedienende Wrapper für GPT-2 124 m, 345 m, 774 m und 1,5B-Transformatormodelle
Was ist das • Installation • Erste Schritte
Hergestellt von Rishabh Anand • https://rish-16.github.io
GPT-2 ist ein natürliches Sprachverarbeitungsmodell, das von OpenAI für die Textgenerierung entwickelt wurde. Es ist der Nachfolger des GPT-Modells (Generative Pre-aus-Transformator), das auf 40 GB Text aus dem Internet ausgebildet ist. Es verfügt über ein Transformatormodell, das von der Aufmerksamkeit ans Licht gebracht wurde, ist alles, was Sie 2017 Papier benötigen. Das Modell verfügt über 4 Versionen - 124M
, 345M
, 774M
und 1558M
-, die sich hinsichtlich der Anzahl der damit verbundenen Trainingsdaten und der Anzahl der Parameter unterscheiden.
Das 1,5B -Modell ist derzeit das größte verfügbare Modell, das von OpenAI veröffentlicht wurde.
Schließlich ist gpt2-client
ein Wrapper um das ursprüngliche gpt-2
Repository, das dieselbe Funktionalität enthält, jedoch mit mehr Zugriffsbehörde, Verständlichkeit und Nutzerin. Sie können mit allen vier GPT-2-Modellen in weniger als fünf Codezeilen herumspielen.
*Hinweis : Dieser Client -Wrapper haftet in keiner Weise einem direkt oder indirekten Schaden. Alle Namen, Orte und Objekte, auf die das Modell verwiesen wird, sind fiktiv und suchen keine Ähnlichkeit mit Einheiten oder Organisationen im wirklichen Leben. Die Proben sind ungefiltert und können anstößige Inhalte enthalten. Benutzerdessen empfohlen.*
Installieren Sie den Client über pip
. Im Idealfall ist gpt2-client
für Python> = 3,5 und TensorFlow> = 1.x gut unterstützt. Einige Bibliotheken müssen möglicherweise mit dem Flag --upgrade
über pip
neu installiert oder aktualisiert werden, wenn Python 2.x verwendet wird.
pip install gpt2-client
Hinweis:
gpt2-client
ist nicht mit TensorFlow 2.0 kompatibel. Versuchen Sie TensorFlow 1.14.0
1. Laden Sie die Modellgewichte und Kontrollpunkte herunter
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.
Dadurch werden ein Verzeichnis namens models
im aktuellen Arbeitsverzeichnis erstellt und die Gewichte, Kontrollpunkte, Modell JSON und Hyper-Parameter heruntergeladen, die vom Modell gefordert werden. Sobald Sie die Funktion load_model()
angerufen haben, müssen Sie sie nicht erneut aufrufen, vorausgesetzt, dass die Dateien im models
heruntergeladen wurden.
HINWEIS: Setzen Sie
force_download=True
, um die vorhandenen Zwischenmodellgewichte und Checkpoints zu überschreiben
2. Erstellen Sie Text!
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
Sie können aus der oben genannten Stichprobe sehen, dass die Erzeugungsoptionen sehr flexibel sind. Sie können sich anhand der Art von Text mischen und übereinstimmen, die Sie generiert benötigen, sei es mehrere Stücke oder eins mit Eingabeaufforderungen.
3.. Erstellen von Text aus Anforderungen
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. Fine-stimmende GPT-2 mit benutzerdefinierten Datensätzen
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
Um GPT-2 auf Ihren benutzerdefinierten Korpus oder Datensatz zu optimieren, ist es ideal, eine GPU oder eine TPU zur Verfügung zu haben. Google Colab ist ein solches Tool, das Sie verwenden können, um Ihr benutzerdefiniertes Modell erneut zu verhandeln/zu optimieren.
5. Codierung und Dekodierung von Textsequenzen
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
Vorschläge, Verbesserungen und Verbesserungen sind immer willkommen! Wenn Sie Probleme haben, erheben Sie bitte eine im Abschnitt "Ausgaben". Wenn Sie eine Verbesserung haben, stellen Sie ein Problem ein, um den Vorschlag zu besprechen, bevor Sie eine PR erstellen.
Alle Ideen - egal wie unverschämt - willkommen!
Open-Source macht wirklich Spaß. Ihre Spenden motivieren mich, neue Ideen zum Leben zu erwecken. Wenn Sie meine Open-Source-Bemühungen unterstützen möchten, spenden Sie bitte-es bedeutet mir viel!
MIT