Cybertron es un paquete en Pure Go basado en Spago que proporciona a los desarrolladores GO una interfaz fácil para usar tecnologías NLP, sin necesidad de otros lenguajes de programación o marcos complejos. Está diseñado para usar modelos de transformador previamente capacitados disponibles en el repositorio de modelos Huggingface.
El paquete está dirigido principalmente a ejecutar inferencia con la posibilidad de agregar ajuste fino en el futuro.
El equipo está abierto a contribuyentes para acelerar su crecimiento.
Requisitos:
Clon este repositorio o obtenga la biblioteca:
go get -u github.com/nlpodyssey/cybertronCybertron admite dos casos de uso principales, que se explican más en detalle a continuación.
Las configuraciones se configuran en un archivo .env , que Cybertron cargue automáticamente. Alternativamente, también acepta configuraciones a través de banderas.
Para una lista completa de la lista:
GOARCH=amd64 go run ./cmd/server -hProducción:
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 ejemplo, para ejecutar Cybertron en modo servidor para la traducción automática (por ejemplo it en ) con la configuración predeterminada, simplemente cree un archivo .env en el directorio actual:
echo "CYBERTRON_MODEL=Helsinki-NLP/opus-mt-en-it" > .env
echo "CYBERTRON_MODELS_DIR=models" >> .env
echo "CYBERTRON_MODEL_TASK=text-generation" >> .envy ejecute el siguiente comando:
GOARCH=amd64 go run ./cmd/server -address 0.0.0.0:8080Para probar el servidor, ejecute:
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": {}
}' Se pueden aprovechar varios ejemplos para recorrer las capacidades actuales de PNL en Cybertron. Ahora sigue una lista de las demostraciones.
GOARCH=amd64 go run ./examples/textgeneration
.env no es compatible, se devolverá un error. En este caso, elimine el modelo especificado del archivo de configuración, por lo que se utilizará el predeterminado.
GOARCH=amd64 go run ./examples/zeroshotclassification politics,business,science,technology,health,culture,sports
Las dependencias pricipales de Cybertron son:
El resto son principalmente para desarrollos de API GRPC y HTTP.
Esta sección está destinada a los desarrolladores que desean cambiar o enriquecer las API Cybertron GRPC y HTTP.
Para comenzar, necesita BUF instalado en su máquina.
Luego instale las siguientes herramientas:
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
Luego ejecute el siguiente comando para generar las API GRPC y HTTP:
go generate ./...