Cybertron est un package de Pure Go construit sur Spago qui offre aux développeurs Go une interface facile pour utiliser les technologies NLP, sans avoir besoin d'autres langages de programmation ou de cadres complexes. Il est conçu pour utiliser des modèles de transformateurs pré-formés disponibles sur le référentiel de modèles HuggingFace.
Le package vise principalement à exécuter l'inférence avec la possibilité d'ajouter du réglage fin à l'avenir.
L'équipe est ouverte aux contributeurs pour accélérer sa croissance.
Exigences:
Clone ce repo ou obtenez la bibliothèque:
go get -u github.com/nlpodyssey/cybertronCybertron prend en charge deux cas d'utilisation principaux, qui sont expliqués plus en détail dans ce qui suit.
Les paramètres sont configurés dans un fichier .env , qui est automatiquement chargé par Cybertron. Alternativement, il accepte également les configurations via des drapeaux.
Pour une liste complète Run:
GOARCH=amd64 go run ./cmd/server -hSortir:
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
Par exemple, pour exécuter Cybertron en mode serveur pour la traduction machine (par exemple en it ) avec les paramètres par défaut, créez simplement un fichier .env dans le répertoire actuel:
echo "CYBERTRON_MODEL=Helsinki-NLP/opus-mt-en-it" > .env
echo "CYBERTRON_MODELS_DIR=models" >> .env
echo "CYBERTRON_MODEL_TASK=text-generation" >> .envet exécuter la commande suivante:
GOARCH=amd64 go run ./cmd/server -address 0.0.0.0:8080Pour tester le serveur, exécutez:
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": {}
}' Plusieurs exemples peuvent être exploités pour visiter les capacités actuelles de la PNL dans Cybertron. Une liste des démos suit maintenant.
GOARCH=amd64 go run ./examples/textgeneration
.env n'est pas compatible, une erreur sera renvoyée. Dans ce cas, supprimez le modèle spécifié du fichier de configuration, de sorte que le par défaut sera utilisé.
GOARCH=amd64 go run ./examples/zeroshotclassification politics,business,science,technology,health,culture,sports
Les dépendances primipales de Cybertron sont:
Les autres sont principalement pour les développements API GRPC et HTTP.
Cette section est destinée aux développeurs qui souhaitent changer ou enrichir les API Cybertron GRPC et HTTP.
Pour commencer, vous avez besoin de BUF installé dans votre machine.
Installez ensuite les outils suivants:
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
Ensuite, exécutez la commande suivante pour générer les API GRPC et HTTP:
go generate ./...