Englisch |. Chinesisch
Nutzung des Passage Retrieval mit generativen Modellen für die Beantwortung von Open-Domain-Fragen
RetrievalDense Passage Retrieval für die Beantwortung von Fragen im offenen Bereich
APScheduler
Ein prozessübergreifendes Dialogsystem, das bereitgestellt und ausgeführt werden kann
TensorFlow-Modell
Transformator
Seq2Seq
SMN-Abrufmodell
Geplanter Abtasttransformator
GPT2
Aufgabendialog
Pytorch-Modell
Transformator
Seq2Seq
Dieses Projekt zielt darauf ab, ein Dialogsystem zu erstellen, das sowohl offene Domänen- als auch aufgabenorientierte Dialogsysteme umfasst. Die Lesenotizen des Artikels werden in einem anderen Projekt platziert: TensorFlow und Pytorch werden im Projekt eingesetzt.
Das Datenverzeichnis im Lager enthält Spielzeugdaten für jeden Korpus, die zur Überprüfung der Systemausführung verwendet werden können. Der vollständige Korpus und das Papier können hier angezeigt werden
LCCC
CrossWOZ
kleines gelbes Huhn
Douban
Ubuntu
Qingyun
Tieba
Linux führt run.sh aus und die Projektverzeichnisprüfung führt check.sh (oder check.py) aus.
„actuator.py“ im Stammverzeichnis ist der allgemeine Ausführungseingang, der durch Aufrufen des folgenden Befehlsformats ausgeführt wird (beachten Sie, dass „requirements.txt“ vor der Ausführung installiert wird):
python actuator.py --version [Options] --model [Options] ...
Bei der Ausführung über „actuator.py“ im Stammverzeichnis sind --version
, --model
und --act
erforderliche Parameter, darunter --version
für die Codeversion tf/torch
--model
für den entsprechenden transformer/smn...
für die Ausführung. transformer/smn...
und act ist der Ausführungsmodus (standardmäßig pre_treat
Modus). Weitere Informationen zu den Befehlsparametern finden Sie unter actuator.py
unter jedem Modell oder in der entsprechenden JSON-Konfigurationsdatei im Konfigurationsverzeichnis.
Der Ausführungsmodus --act
wird wie folgt beschrieben:
Der pre_treat-Modus ist der Textvorverarbeitungsmodus. Wenn kein Wortsegmentierungsergebnissatz und kein Wörterbuch vorhanden sind, müssen Sie zuerst den pre_treat-Modus ausführen.
Der Trainingsmodus ist der Trainingsmodus
Der Bewertungsmodus ist der Indikatorbewertungsmodus
Der Chat-Modus ist ein Konversationsmodus. Wenn Sie im Chat-Modus arbeiten, geben Sie ESC ein, um die Konversation zu verlassen.
Die normale Ausführungssequenz ist pre_treat->train->evaluate->chat
Unter jedem Modell gibt es eine separate Datei „actuator.py“, die die äußere Kopplung für die Ausführung und Entwicklung umgehen kann. Achten Sie jedoch darauf, den Projektverzeichnispfad während der Ausführung anzupassen.
Im Dialog wird der Kerncode des relevanten Modells platziert, um die zukünftige Kapselung und Verpackung zu erleichtern.
checkpoints speichert den Standort für Checkpoints
config ist das Verzeichnis, in dem die Konfigurationsdatei gespeichert wird
data ist der Speicherort der Originaldaten. Gleichzeitig werden in diesem Verzeichnis auch die während der Ausführung des Modells generierten Zwischendatendateien gespeichert.
Modelle speichern Verzeichnis für Modelle
Tensorflow und Pytorch platzieren den Kerncode für die Modellkonstruktion und Ausführung jedes Moduls
preprocess_corpus.py ist ein Korpusverarbeitungsskript, das jeden Korpus in Einzelrunden- und Mehrrundendialogen verarbeitet und einheitliche Schnittstellenaufrufe standardisiert.
read_data.py wird für den Datenladeformataufruf von load_dataset.py verwendet
metrics.py ist ein Skript für verschiedene Indikatoren
tools.py ist ein Tool-Skript, das Wörtertrennungen, Protokollvorgänge, Checkpoint-Speicher-/Ladeskripte usw. enthält.
Platzieren Sie Dokumentationsanweisungen unter „Dokumente“, einschließlich Notizen zum Lesen von Musterpapieren
Docker (mobil) wird für Serverbereitstellungsskripte (mobiles Terminal) verwendet
Server ist die UI-Dienstschnittstelle. Verwenden Sie zum Erstellen und Verwenden einfach die entsprechende server.py.
tools ist das reservierte Werkzeugverzeichnis
actuator.py (run.sh) ist der gesamte Aktuatoreingang
check.py (check.sh) ist das Skript zur Überprüfung des Projektverzeichnisses
Bevor Sie das SMN-Abrufdialogsystem verwenden, müssen Sie die Solr-Bereitstellungssystemumgebung vorbereiten. Es wird empfohlen, die Containerbereitstellung (Docker wird empfohlen) zu verwenden und Folgendes vorzubereiten.
Solr(8.6.3)
pysolr(3.9.0)
Nachfolgend finden Sie eine kurze Erläuterung. Weitere Informationen finden Sie im Artikel: Abrufen von Kandidatenantworten zum Abrufen von Dialogsystemen – Verwenden von Pysolr zum Aufrufen von Solr
Um sicherzustellen, dass Solr online stabil läuft und die anschließende Wartung erleichtert, verwenden Sie bitte die DockerFile-Erfassungsadresse: docker-solr
Nur zur Verwendung als Testmodell können Sie die folgenden einfachsten Bauanweisungen verwenden:
docker pull solr:8.6.3 # 然后启动solr docker run -itd --name solr -p 8983:8983 solr:8.6.3 # 然后创建core核心选择器,这里取名smn(可选) docker exec -it --user=solr solr bin/solr create_core -c smn
Zu den Wortsegmentierungstools in Solr gehören IK Analyzer, Smartcn, Pinyin-Wortsegmentierer usw. Sie müssen das entsprechende JAR herunterladen und dann die Konfiguration in der Solr-Kernkonfigurationsdatei „Managed-Schema“ hinzufügen.
Besonderer Hinweis : Wenn Sie TF-IDF verwenden, müssen Sie auch die Ähnlichkeitskonfiguration im verwalteten Schema aktivieren.
Nachdem Sie Solr online bereitgestellt haben, verwenden Sie pysolr in Python, um eine Verbindung herzustellen und Folgendes zu verwenden:
pip install pysolr
Die Methode zum Hinzufügen von Indexdaten (die im Allgemeinen zuerst eine Sicherheitsprüfung erfordert) ist wie folgt. Fügen Sie den Antwortdaten einen Index hinzu: [{},{},{},...]. Jedes darin enthaltene Objekt wird entsprechend Ihren Antwortanforderungen erstellt:
solr = pysolr.Solr(url=solr_server, always_commit=True, timeout=10) # 安全检查 solr.ping() solr.add(docs=responses)
Die Abfragemethode lautet wie folgt: Um alle Anweisungen mit TF-IDF abzufragen, lautet die Abfrageanweisungsmethode wie folgt:
{!func}sum(product(idf(utterance,key1),tf(utterance,key1),product(idf(utterance,key2),tf(utterance,key2),...)
Vor der Verwendung müssen Sie die Daten zu Solr hinzufügen. Um sie in diesem SMN-Modell zu verwenden, führen Sie einfach zuerst den pre_treat-Modus aus.
Aufmerksamkeit ist alles, was Sie brauchen |. Lesenotizen: Die bahnbrechende Arbeit von Transformer, die eine intensive Lektüre wert ist |
Sequentielles Matching-Netzwerk: Eine neue Architektur für die Multi-Turn-Antwortauswahl in abrufbasierten Chatbots |. Lesehinweise: SMN-Abrufdialogmodell, mehrschichtige und mehrgranulare Extraktion von Informationen |
Massive Erforschung neuronaler maschineller Übersetzungsarchitekturen |. Lesehinweise: Die erste groß angelegte Analyse am Beispiel von NMT-Architektur-Hyperparametern wird vorgestellt. Das Experiment bringt neue Erkenntnisse und praktische Vorschläge für den Aufbau und die Erweiterung von NMT-Architekturen. |. Denny et al., 2017
Geplante Probenahme für Transformatoren |. Lesehinweise: Anwendung der geplanten Probenahme in Transformer |
Lizenziert unter der Apache-Lizenz, Version 2.0. Copyright 2021 DengBoCong.