O Cybertron é um pacote no Pure Go construído no Spago que fornece aos desenvolvedores Go uma interface fácil para usar tecnologias de PNL, sem precisar de outras linguagens de programação ou estruturas complexas. Ele foi projetado para o uso de modelos de transformadores pré-treinados disponíveis no repositório de modelos Huggingface.
O pacote visa principalmente a inferência com a possibilidade de adicionar ajustes finos no futuro.
A equipe está aberta a colaboradores para agilizar seu crescimento.
Requisitos:
Clone este repositório ou obtenha a biblioteca:
go get -u github.com/nlpodyssey/cybertronA Cybertron suporta dois casos de uso principais, que são explicados mais detalhadamente a seguir.
As configurações são configuradas em um arquivo .env , que é automaticamente carregado pelo Cybertron. Como alternativa, ele também aceita configurações via sinalizadores.
Para uma lista completa da lista:
GOARCH=amd64 go run ./cmd/server -hSaída:
Usage of server:
-address value
server listening address
-allowed-origins value
allowed origins (comma separated)
-loglevel value
zerolog global level
-model value
model name (and sub-path of models-dir)
-model-conversion value
model conversion policy ("always"|"missing"|"never")
-model-conversion-precision value
floating-point bits of precision to use if the model is converted ("32"|"64")
-model-download value
model downloading policy ("always"|"missing"|"never")
-models-dir value
models's base directory
-network value
network type for server listening
-task value
type of inference/computation that the model can fulfill ("textgeneration"|"zero-shot-classification"|"question-answering"|"text-classification"|"token-classification"|"text-encoding")
-tls value
whether to enable TLS ("true"|"false")
-tls-cert value
TLS cert filename
-tls-key value
TLS key filename
Por exemplo, para executar o Cybertron no modo de servidor para tradução da máquina (por en , it ) com configurações padrão, basta criar um arquivo .env no diretório atual:
echo "CYBERTRON_MODEL=Helsinki-NLP/opus-mt-en-it" > .env
echo "CYBERTRON_MODELS_DIR=models" >> .env
echo "CYBERTRON_MODEL_TASK=text-generation" >> .enve execute o seguinte comando:
GOARCH=amd64 go run ./cmd/server -address 0.0.0.0:8080Para testar o servidor, execute:
curl -X 'POST'
'0.0.0.0:8080/v1/generate'
-H 'accept: application/json'
-H 'Content-Type: application/json'
-d '{
"input": "You must be the change you wish to see in the world.",
"parameters": {}
}' Vários exemplos podem ser aproveitados para visitar os recursos atuais da PNL em Cybertron. Uma lista das demos agora segue.
GOARCH=amd64 go run ./examples/textgeneration
.env não for compatível, um erro será retornado. Nesse caso, remova o modelo especificado do arquivo de configuração, para que o padrão seja usado.
GOARCH=amd64 go run ./examples/zeroshotclassification politics,business,science,technology,health,culture,sports
As dependências primitivas de Cybertron são:
O restante é principalmente para desenvolvimentos de API GRPC e HTTP.
Esta seção é destinada a desenvolvedores que desejam alterar ou enriquecer as APIs Cybertron GRPC e HTTP.
Para começar, você precisa de BUF instalado em sua máquina.
Em seguida, instale as seguintes ferramentas:
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2
google.golang.org/protobuf/cmd/protoc-gen-go
google.golang.org/grpc/cmd/protoc-gen-go-grpc
Em seguida, execute o seguinte comando para gerar as APIs GRPC e HTTP:
go generate ./...