Bienvenido a VerbaFlow, una arquitectura neuronal escrita en Go diseñada específicamente para tareas de modelado de lenguaje. Construido sobre el robusto RWKV RNN, este modelo está optimizado para un rendimiento eficiente en CPU estándar, lo que permite un funcionamiento fluido de modelos de lenguaje relativamente grandes incluso en hardware de consumo.
Con la capacidad de utilizar modelos previamente entrenados en el conjunto de datos de Pile, VerbaFlow funciona de manera comparable a los modelos Transformer similares a GPT en la predicción del siguiente token, así como en otras tareas como resumen de texto, clasificación de texto, respuesta a preguntas y conversación general.
Requisitos:
Clona este repositorio u obtén la biblioteca:
go get -u github.com/nlpodyssey/verbaflow
Para comenzar a usar VerbaFlow, recomendamos utilizar el modelo previamente entrenado RWKV-4-Pile-1B5-Instruct
, disponible en Hugging Face Hub. Este modelo se ha ajustado utilizando el conjunto de datos Pile y se ha diseñado especialmente para comprender y ejecutar instrucciones humanas, tal como se ha ajustado en el conjunto de datos xP3. Se puede acceder al modelo original RWKV-4-Pile-1B5-Instruct-test2-20230209
, del cual se deriva este modelo, aquí.
La biblioteca está optimizada para ejecutarse en CPU x86-64. Si desea ejecutarlo en una arquitectura diferente, puede utilizar la variable de entorno
GOARCH=amd64
.
Los siguientes comandos se pueden usar para construir y usar VerbaFlow:
go build ./cmd/verbaflow
Este comando construye el programa go y crea un ejecutable llamado verbaflow
.
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct download
Este comando descarga el modelo especificado (en este caso, "nlpodyssey/RWKV-4-Pile-1B5-Instruct" en el directorio "modelos")
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct convert
Este comando convierte el modelo descargado al formato utilizado por el programa.
./verbaflow -log-level trace -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct inference --address :50051
Este comando ejecuta el punto final de inferencia de gRPC en el modelo especificado.
Asegúrese de tener instaladas las dependencias necesarias antes de ejecutar los comandos anteriores.
Una de las características más interesantes del LLM es la capacidad de reaccionar según las indicaciones.
Ejecute el punto final de verbaflow
gRPC con el comando en inferencia, luego ejecute el ejemplo prompttester
ingresando las siguientes indicaciones:
Inmediato:
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
Resultado esperado:
Science and Technology
Inmediato:
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
Resultado esperado:
I am the happiest father in the world.
A continuación se muestra una lista de las principales dependencias:
¡Gracias PENG Bo por crear RWKV RNN y todos los recursos relacionados, incluidos los modelos previamente entrenados!
"VerbaFlow" combina "verba", que en latín significa palabras , y "flow", que alude a las características de las redes neuronales recurrentes al evocar la idea de un flujo fluido y continuo de palabras, posible gracias a la capacidad de mantener un estado interno y "recordar" palabras y contexto anteriores al generar nuevas palabras.