Bienvenue dans VerbaFlow, une architecture neuronale écrite en Go conçue spécifiquement pour les tâches de modélisation de langage. Construit sur le robuste RWKV RNN, ce modèle est optimisé pour des performances efficaces sur les processeurs standard, permettant un fonctionnement fluide de modèles de langage relativement volumineux, même sur du matériel grand public.
Avec la possibilité d'utiliser des modèles pré-entraînés sur l'ensemble de données Pile, VerbaFlow fonctionne de manière comparable aux modèles Transformer de type GPT pour prédire le prochain jeton, ainsi que dans d'autres tâches telles que le résumé de texte, la classification de texte, la réponse aux questions et la conversation générale.
Exigences:
Clonez ce dépôt ou récupérez la bibliothèque :
go get -u github.com/nlpodyssey/verbaflow
Pour commencer à utiliser VerbaFlow, nous vous recommandons d'utiliser le modèle pré-entraîné RWKV-4-Pile-1B5-Instruct
, disponible sur Hugging Face Hub. Ce modèle a été affiné à l'aide de l'ensemble de données Pile et a été spécialement conçu pour comprendre et exécuter des instructions humaines, tel qu'affiné sur l'ensemble de données xP3. Le modèle original RWKV-4-Pile-1B5-Instruct-test2-20230209
, dont ce modèle est dérivé, est accessible ici.
La bibliothèque est optimisée pour fonctionner sur des processeurs x86-64. Si vous souhaitez l'exécuter sur une architecture différente, vous pouvez utiliser la variable d'environnement
GOARCH=amd64
.
Les commandes suivantes peuvent être utilisées pour créer et utiliser VerbaFlow :
go build ./cmd/verbaflow
Cette commande construit le programme go et crée un exécutable nommé verbaflow
.
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct download
Cette commande télécharge le modèle spécifié (dans ce cas, "nlpodyssey/RWKV-4-Pile-1B5-Instruct" dans le répertoire "models")
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct convert
Cette commande convertit le modèle téléchargé au format utilisé par le programme.
./verbaflow -log-level trace -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct inference --address :50051
Cette commande exécute le point de terminaison d'inférence gRPC sur le modèle spécifié.
Veuillez vous assurer d'avoir installé les dépendances nécessaires avant d'exécuter les commandes ci-dessus.
L'une des fonctionnalités les plus intéressantes du LLM est la capacité de réagir en fonction de l'invite.
Exécutez le point de terminaison gRPC verbaflow
avec la commande en inférence, puis exécutez l'exemple prompttester
en saisissant les invites suivantes :
Rapide:
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
Résultat attendu :
Science and Technology
Rapide:
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
Résultat attendu :
I am the happiest father in the world.
Voici une liste des principales dépendances :
Merci PENG Bo d'avoir créé le RWKV RNN et toutes les ressources associées, y compris les modèles pré-entraînés !
"VerbaFlow" combine "verba", qui est le mot latin pour les mots , et "flow", qui fait allusion aux caractéristiques des réseaux de neurones récurrents en évoquant l'idée d'un flux de mots fluide et continu, rendu possible par le réseau. capacité à maintenir un état interne et à « se souvenir » des mots et du contexte précédents lors de la génération de nouveaux mots.