Willkommen bei VerbaFlow, einer in Go geschriebenen neuronalen Architektur, die speziell für Sprachmodellierungsaufgaben entwickelt wurde. Dieses auf dem robusten RWKV-RNN basierende Modell ist für eine effiziente Leistung auf Standard-CPUs optimiert und ermöglicht den reibungslosen Betrieb relativ großer Sprachmodelle selbst auf Consumer-Hardware.
Durch die Möglichkeit, vorab trainierte Modelle für den Pile-Datensatz zu verwenden, ist VerbaFlow bei der Vorhersage des nächsten Tokens sowie bei anderen Aufgaben wie Textzusammenfassung, Textklassifizierung, Beantwortung von Fragen und allgemeinen Konversationen mit GPT-ähnlichen Transformer-Modellen vergleichbar.
Anforderungen:
Klonen Sie dieses Repo oder holen Sie sich die Bibliothek:
go get -u github.com/nlpodyssey/verbaflow
Um mit der Verwendung von VerbaFlow zu beginnen, empfehlen wir die Verwendung des vorab trainierten Modells RWKV-4-Pile-1B5-Instruct
, das auf dem Hugging Face Hub verfügbar ist. Dieses Modell wurde mithilfe des Pile-Datensatzes verfeinert und speziell dafür entwickelt, menschliche Anweisungen zu verstehen und auszuführen, wie sie anhand des xP3-Datensatzes verfeinert wurden. Auf das Originalmodell RWKV-4-Pile-1B5-Instruct-test2-20230209
, von dem dieses Modell abgeleitet ist, kann hier zugegriffen werden.
Die Bibliothek ist für die Ausführung auf x86-64-CPUs optimiert. Wenn Sie es auf einer anderen Architektur ausführen möchten, können Sie die Umgebungsvariable
GOARCH=amd64
verwenden.
Die folgenden Befehle können zum Erstellen und Verwenden von VerbaFlow verwendet werden:
go build ./cmd/verbaflow
Dieser Befehl erstellt das go-Programm und erstellt eine ausführbare Datei mit dem Namen verbaflow
.
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct download
Dieser Befehl lädt das angegebene Modell herunter (in diesem Fall „nlpodyssey/RWKV-4-Pile-1B5-Instruct“ im Verzeichnis „models“).
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct convert
Dieser Befehl konvertiert das heruntergeladene Modell in das vom Programm verwendete Format.
./verbaflow -log-level trace -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct inference --address :50051
Dieser Befehl führt den gRPC-Inferenzendpunkt auf dem angegebenen Modell aus.
Bitte stellen Sie sicher, dass die erforderlichen Abhängigkeiten installiert sind, bevor Sie die oben genannten Befehle ausführen.
Eines der interessantesten Features des LLM ist die Fähigkeit, auf Eingabeaufforderungen zu reagieren.
Führen Sie den verbaflow
gRPC-Endpunkt mit dem Befehl in inference aus und führen Sie dann das prompttester
-Beispiel aus, indem Sie die folgenden Eingabeaufforderungen eingeben:
Prompt:
echo 'nQ: Briefly: The Universe is expanding, its constituent galaxies flying apart like pieces of cosmic shrapnel in the aftermath of the Big Bang. Which section of a newspaper would this article likely appear in?nnA:' | go run ./examples/prompttester --dconfig ./examples/prompttester/config.yaml
Erwartete Ausgabe:
Science and Technology
Prompt:
echo 'nQ:Translate the following text from French to English Je suis le père le plus heureux du mondennA:' | go run ./examples/prompttester --dconfig ./examples/prompttester/config.yaml
Erwartete Ausgabe:
I am the happiest father in the world.
Es folgt eine Liste der wichtigsten Abhängigkeiten:
Vielen Dank an PENG Bo für die Erstellung des RWKV RNN und aller zugehörigen Ressourcen, einschließlich vorab trainierter Modelle!
„VerbaFlow“ kombiniert „verba“, das lateinische Wort für Wörter , und „flow“, das auf die Eigenschaften wiederkehrender neuronaler Netze anspielt, indem es die Idee eines fließenden und kontinuierlichen Flusses von Wörtern hervorruft, der durch die Netze ermöglicht wird Fähigkeit, einen inneren Zustand aufrechtzuerhalten und sich an frühere Wörter und den Kontext zu „erinnern“, wenn neue Wörter generiert werden.