Hier ist mein Versuch, Meena nachzubilden, einen hochmodernen Chatbot, der von Google Research entwickelt und im Artikel „Towards a Human-like Open-Domain Chatbot“ beschrieben wird.
Für diese Implementierung habe ich die Deep-Learning-Bibliothek tensor2tensor verwendet und dabei ein weiterentwickeltes Transformatormodell verwendet, wie im Artikel beschrieben.
Als Trainingssatz wird das OpenSubtitles-Korpus in italienischer Sprache verwendet. Viele weitere Sprachen sind hier verfügbar.
Ähnlich wie in der Arbeit besteht dieses Modell aus 1 Encoderblock und 12 Decoderblöcken für insgesamt 108 Millionen Parameter. Der verwendete Optimierer ist Adafactor mit demselben Trainingsratenplan wie im Dokument beschrieben.
Hier sind die Ergebnisse nach dem Training des Modells mit 40 Millionen Sätzen des OpenSubtitles-Datensatzes in italienischer Sprache. Die Lernrate beginnt bei 0,01 und bleibt 10.000 Schritte lang konstant und nimmt dann mit der umgekehrten Quadratwurzel der Anzahl der Schritte ab.
Hier ist die Darstellung des Bewertungsverlusts während des Trainings.
Der endgültige Ratlosigkeitswert beträgt 10,4 , was dem Ratlosigkeitswert von Googles meena chatbot 10,2 sehr nahe kommt.
Das Papier zeigt eine Korrelation zwischen dem Ratlosigkeitswert und dem Sensibilitäts- und Spezifitätsdurchschnitt, der mit der „menschlichen Ähnlichkeit“ des Chatbots korreliert. Unser Ratlosigkeitswert zeigt, dass unser Bot besser ist als andere Chatbots wie Cleverbot und DialoGPT:
Der verwendete Datensatz stellt jedoch keine normalen Gespräche zwischen Menschen dar. Opensubtitles bietet jedoch sehr große Datensätze in vielen Sprachen.
Führen Sie einfach „notebook meena_chatbot_inference.ipynb
“ aus.
Andernfalls laden Sie das folgende Modell herunter und extrahieren Sie es. Legen Sie den richtigen MODEL_DIR und CHECKPOINT_NAME in predict.py
fest und führen Sie main.py
aus
Führen Sie zum Training einfach das ipython-Notebook auf Google Colab aus. Das Modell wird auf Google Drive gespeichert. Am Ende der Ausführung können Sie mit dem Chatbot interagieren.
Das Modell kann exportiert werden, indem die folgenden Dateien in einen Ordner kopiert werden:
und führen Sie main.py
aus, nachdem Sie das richtige Modellverzeichnis festgelegt haben.
server.py
bietet eine einfache HTTP-API zum Bereitstellen des Chatbots.