Bem-vindo ao VerbaFlow, uma arquitetura neural escrita em Go projetada especificamente para tarefas de modelagem de linguagem. Construído no robusto RWKV RNN, este modelo é otimizado para desempenho eficiente em CPUs padrão, permitindo o bom funcionamento de modelos de linguagem relativamente grandes, mesmo em hardware de consumo.
Com a capacidade de utilizar modelos pré-treinados no conjunto de dados Pile, o VerbaFlow tem um desempenho comparável aos modelos Transformer do tipo GPT na previsão do próximo token, bem como em outras tarefas, como resumo de texto, classificação de texto, resposta a perguntas e conversação geral.
Requisitos:
Clone este repositório ou obtenha a biblioteca:
go get -u github.com/nlpodyssey/verbaflow
Para começar a usar o VerbaFlow, recomendamos usar o modelo pré-treinado RWKV-4-Pile-1B5-Instruct
, disponível no Hugging Face Hub. Este modelo foi ajustado usando o conjunto de dados Pile e foi especialmente projetado para compreender e executar instruções humanas, conforme ajustado no conjunto de dados xP3. O modelo RWKV-4-Pile-1B5-Instruct-test2-20230209
original, do qual este modelo é derivado, pode ser acessado aqui.
A biblioteca é otimizada para rodar em CPUs x86-64. Se quiser executá-lo em uma arquitetura diferente, você pode usar a variável de ambiente
GOARCH=amd64
.
Os seguintes comandos podem ser usados para construir e usar o VerbaFlow:
go build ./cmd/verbaflow
Este comando constrói o programa go e cria um executável chamado verbaflow
.
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct download
Este comando baixa o modelo especificado (neste caso, "nlpodyssey/RWKV-4-Pile-1B5-Instruct" no diretório "models")
./verbaflow -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct convert
Este comando converte o modelo baixado para o formato usado pelo programa.
./verbaflow -log-level trace -model-dir models/nlpodyssey/RWKV-4-Pile-1B5-Instruct inference --address :50051
Este comando executa o endpoint de inferência gRPC no modelo especificado.
Certifique-se de ter as dependências necessárias instaladas antes de executar os comandos acima.
Um dos recursos mais interessantes do LLM é a capacidade de reagir com base no prompt.
Execute o endpoint gRPC verbaflow
com o comando em inferência e, em seguida, execute o exemplo prompttester
inserindo os seguintes prompts:
Incitar:
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
Incitar:
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.
Segue uma lista das principais dependências:
Obrigado PENG Bo por criar o RWKV RNN e todos os recursos relacionados, incluindo modelos pré-treinados!
"VerbaFlow" combina "verba", que é a palavra latina para palavras , e "fluxo", que alude às características das redes neurais recorrentes, evocando a ideia de um fluxo fluente e contínuo de palavras, que é possibilitado pela rede capacidade de manter um estado interno e "lembrar" palavras e contexto anteriores ao gerar novas palavras.