Wir freuen uns, Ihnen unsere Entwicklung vorstellen zu können – einen russischsprachigen Chatbot für Discord, der auf der Transformer-Architektur basiert .
Das neuronale Netzwerk wurde während einer Epoche (5 Tage auf einer GTX 1080 ) auf mehr als 36 Millionen öffentlich zugängliche Nachrichten von den beliebtesten russischsprachigen Discord- Servern trainiert. Das Training basierte auf dem Prinzip: Welche Nachricht wird am wahrscheinlichsten nach den vorherigen 10 auf der Ebene der Zeichen-Trigramm-Einbettungen gesendet?
Dieser Bot verwendet keine vorgefertigte Nachrichtendatenbank, sondern generiert neue einzigartige Nachrichten und implementiert das seq2seq-Konzept auf der Transformer-Architektur . Die Basis des Netzwerks stammt aus diesem TensorFlow 2 -Tutorial.
Dieses Modell war im Jahr 2019 relevant, wurde jedoch recht schnell veraltet. Wenn Sie hier folgen, können Sie etwas Besseres und Moderneres finden.
Lass uns gehen!
Getestet auf 2 x 2,6 GHz CPU + 4 GB RAM .
Install launcher for all users (recommended)
und Add Python 3.8 to PATH
aktiviert seinscipy
Git Bash Here
auswählengit clone https://github.com/sergree/DolboNet
cd DolboNet
pip install -r requirements.txt
im angezeigten Fenster ausconfig.py
und fügen Sie das Bot-Token in token = "..."
ein.python bot.py
Der Bot funktioniert nur unter 64-Bit -Windows und Python .
Getestet auf 2 x 2,6 GHz CPU + 2 GB RAM .
git clone https://github.com/sergree/DolboNet
cd DolboNet
pip3
noch nicht installiert ist, installieren Sie es: sudo apt install python3-pip
pip3 install -r requirements.txt
nano config.py
und fügen Sie das Bot-Token in token = "..."
ein.python3 bot.py
Wenn der Computer über eine NVIDIA- Grafikkarte verfügt, können Sie den Bot mit CUDA ausführen, wodurch seine Geschwindigkeit erhöht wird.
tensorflow
, wenn Sie die Abhängigkeiten bereits installiert haben: pip uninstall tensorflow
pip install tensorflow-gpu>=2.3.1
oder pip install -r requirements_gpu.txt
In der Datei config.py
können Sie einige Parameter bearbeiten, um die Art und das Verhalten des Bots zu ändern:
temperature
– Sampling-Temperatur – regelt die Art und Vielfalt des erzeugten TextesBedeutung | Beschreibung |
---|---|
0,01 | Ich kenne nur das Wort Hallo |
0,3 | Papagei wiederholen |
0,65 | Standard |
1.3 | Betrunkener Dichter |
3 | Auf der Tastatur eingeschlafen |
Um das Experimentieren zu erleichtern, gibt es einen !temp значение
Wertbefehl, der an Discord gesendet werden kann, um diesen Wert im Handumdrehen zu bearbeiten. Der Befehl funktioniert nur für Benutzer mit Administratorrechten .
mention_prob
– die Wahrscheinlichkeit, dass der Bot auf eine Nachricht antwortet, in der er erwähnt wurde. Kann Werte von 0
bis 1
annehmen. Standard: 1
, d. h. 100 %no_mention_prob
– die Wahrscheinlichkeit, dass der Bot auf eine Nachricht antwortet, in der er nicht erwähnt wurde. Kann Werte von 0
bis 1
annehmen. Standard: 0.2
, d.h. 20 %command_temperature_change
– Befehl zum Ändern der Temperatur, wenn Ihnen !temp значение
nicht gefällt?use_delay
– Emulation der menschlichen Tippgeschwindigkeit auf der Tastatur, standardmäßig False
, weil Auf der CPU ist der Generierungsprozess nicht schnell genugdiscord_game_name
– Bot-Status in DiscordEs ist besser, die restlichen Parameter nicht zu bearbeiten.
☕ Wenn Sie an der Entwicklung des Projekts interessiert sind, können Sie mir einen Kaffee spendieren. ☕
Danke schön!
Ich habe einen halben Server solcher Idioten, warum brauche ich noch einen?
Aber im Ernst, es gibt nur einen Grund.
Hosten Sie diesen Bot? Komme ich mit der öffentlichen Version zurecht? Gib mir einen Link!
Link. Der Bot ist nicht immer verfügbar und reagiert manchmal langsam. Wir hosten keine öffentliche Version des Bots. Damit es auf Ihrem Discord -Server erscheint, muss es installiert sein.
Auf welchen Servern ist dieser Bot bereits installiert?
Wir wissen, dass der Bot bereits hier gehostet wird:
Schreiben Sie uns, um auf dieser Liste zu stehen.
Er verbreitet im Grunde unzusammenhängenden Unsinn. ?
Ja, so etwas gibt es. Aber manchmal wird es lustig.
Das ist nutzloser Blödsinn, verstehst du?
Sicherlich. Wie viele andere Dinge in unserer modernen Welt.
Der Bot hat mir eine Beleidigung oder Drohung geschickt! Chaos! ?
Das neuronale Netzwerk des Bots spiegelt nur die öffentlichen Daten wider, auf denen das Training stattgefunden hat. Vielleicht ist dies ein Weckruf darüber, was aus unserer Gesellschaft geworden ist. Wir wollten sowieso nicht.
Was ist mit Englisch?
Zu diesem Zeitpunkt haben wir beschlossen, die Netzwerkkapazität nicht für lateinische Trigramme zu verschwenden. Latein wird mithilfe von opendatakosovo/cyrillic-transliteration automatisch ins Kyrillische transkribiert. Wir haben viele ähnliche Bibliotheken getestet, diese ist die schnellste.
Warum Trigramme?
Weil er großartig und mächtig ist. Die Idee stammt natürlich nicht von uns, sondern ist diesem Buch entnommen.
Vielleicht wäre es besser, Stemming zu verwenden?
In diesem Fall nicht. Da die Leute in Chats mit Fehlern und manchmal auch mit Ascheben reden. Ein manchmal translitom, ile fse vmesti. ?
Es ist eine andere Sache, Wikipedia oder Newsfeeds zu durchsuchen.
Kann er auch Emojis verschicken?
Ja. Im Moment nur zufällig. Allen benutzerdefinierten Emojis wird ein einziges Token im Wörterbuch zugewiesen. Zukünftig ist geplant, CNN mit einem Klassifikator zu verknüpfen.
Sie haben gerade den Leitfaden für TensorFlow 2 kopiert. Was haben Sie selbst gemacht?
Was ist mit LSTM ?
Wir lassen es einfach hier.
Was kommt als nächstes?
?