Ein Spiel, in dem Sie raten müssen, ob ein Tweet von einem Menschen stammt, oder von einem neuronalen Netzwerksprachmodell, das auf einer Kategorie von Tweets ausgebildet ist.
Dieses Projekt verwendet die folgenden Open -Source -Projekte für die Entwicklung unserer Modelle:
Twint zum Abkratzen von Twitter -Daten aus einer Reihe von Benutzernamen. Für einige größere Datensätze wird Scrapoxy als Proxy -Pool verwendet, um die IP -Blacklist von Twitter zu vermeiden.
Umarme Gesichtstransformatoren zur Feinabstimmung des offenen AI GPT-2-Modells für zusätzliche Daten.
Modelle werden für einen Echtzeit -HTTP -Endpunkt für einen Echtzeit -HTTP -Endpunkt bereitgestellt.
Die Frontend React -Anwendung ist ein Wrapper um einen Datensatz statischer Tweets und die HTTP -Endpunkte des Modells Zoo. Weitere Informationen finden Sie unter Frontend -Dokumentation.
Das Skript-Download-tweets.sh enthält unsere Methodik zum Abkratzen download-tweets.sh Twitter-Datensatzes mit Twint. Das Skript akzeptiert ein einzelnes Argument $name und sucht nach einer sources/$name.txt in der eine Liste von Twitter -Handles angegeben werden sollte, von denen er abkratzen. Das Scraping -Skript wendet einige grobe Heuristiken an, um zu versuchen, Tweets herauszufiltern, dass (1) Antworten auf andere Tweets und (2) Links sind. Diese Heuristiken sind nicht perfekt, aber ich fand, dass sie gut genug gearbeitet haben.
Bei der Vorbereitung mehrerer Datensätze mit Twint stellte ich fest, dass Twitter ein paar Minuten nach dem Schabtprozess oft auf die schwarze Liste gesetzt wurde. Um dies zu umgehen, habe ich auf EC2 Scrapoxy verwendet, um aus fünf verschiedenen EC2 -Proxy -Instanzen gleichzeitig zu kratzen.
Mehrere Datensätze wurden öffentlich auf AWS erstellt und veröffentlicht, von denen Sie frei sind:
| Datensatz | Quellendatei | AWS S3 URL |
|---|---|---|
| Risikokapital | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/vc.txt | s3://modelzoo-datasets/text-generation/vc |
| Republikaner | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/republicans.txt | s3://modelzoo-datasets/text-generation/republicans |
| Demokraten | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/democrats.txt | s3://modelzoo-datasets/text-generation/democrats |
| COVID 19 | https://github.com/model-zoo/twitter-turing-test/blob/master/sources/covid19.txt | s3://modelzoo-datasets/text-generation/covid19 |
Vielen Dank an Minimaxir/Download-Tweets-ai-Textgen für die Bereitstellung einer Liste von republikanischen und demokratischen Twitter-Handles.
Der train.py enthält Code zum Laden vorgeladener Gewichte und die Feinabstimmung des Modells, das weitgehend aus dem Beispiel für das Modellieren der umarmenden Gesichtssprache angepasst ist. Jedes Modell wurde auf einer einzelnen K80 -GPU trainiert. Alle Modelle wurden für eine einzelne Epoche mit Ausnahme von Covid-19 trainiert, einem etwas kleineren Datensatz und für zwei Epochen trainiert. Das Modelltraining dauerte für jedes Modell zwischen 6 und 16 Stunden.
Der Trainingsprozess könnte durch Hyperparameteroptimierung und zusätzliche Experimente weiter verbessert werden. Dies bleibt dem Leser als Übung :)
Das Modell wird automatisch nach dem Training mithilfe der Support der Modellzoo transformers und einigen Codezeilen bereitgestellt:
textgen = pipeline("text-generation", model=model, tokenizer=tokenizer)
modelzoo.transformers.deploy(
textgen,
model_name="..."
resources_config=modelzoo.ResourcesConfig(memory_mb=2048, cpu_units=1024),
)
Bitte stellen Sie sicher, dass Sie $ modelzoo auth ausführen, um ein Modellzoo -Konto in Ihrer Trainingsumgebung zu erstellen oder sich anhand zu erstellen. Alternativ können Sie die Umgebungsvariable MODELZOO_API_KEY entsprechend festlegen.
Weitere Informationen finden Sie modelzoo.transformers.deploy .