Cybertron ist ein Paket in Pure GO, das auf Spago baut, das GO -Entwicklern eine einfache Schnittstelle zur Verwendung von NLP -Technologien bietet, ohne andere Programmiersprachen oder komplexe Frameworks zu benötigen. Es ist für die Verwendung vorgeburiger Transformatormodelle ausgelegt, die auf dem Repository von Huggingface-Modellen verfügbar sind.
Das Paket zielt in erster Linie darauf ab, die Möglichkeit zu erreichen, in Zukunft Feinabstimmungen hinzuzufügen.
Das Team steht den Mitwirkenden offen, um sein Wachstum zu beschleunigen.
Anforderungen:
Klonen Sie dieses Repo oder holen Sie sich die Bibliothek:
go get -u github.com/nlpodyssey/cybertronCybertron unterstützt zwei Hauptanwendungsfälle, die im Folgenden ausführlicher erklärt werden.
Die Einstellungen sind in einer .env -Datei konfiguriert, die automatisch von Cybertron geladen wird. Alternativ akzeptiert es auch Konfigurationen über Flags.
Für eine vollständige Liste lief:
GOARCH=amd64 go run ./cmd/server -hAusgabe:
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
Um Cybertron beispielsweise im Servermodus für maschinelle Übersetzung ( it en mit Standardeinstellungen auszuführen, erstellen Sie einfach eine .env -Datei im aktuellen Verzeichnis:
echo "CYBERTRON_MODEL=Helsinki-NLP/opus-mt-en-it" > .env
echo "CYBERTRON_MODELS_DIR=models" >> .env
echo "CYBERTRON_MODEL_TASK=text-generation" >> .envund führen Sie den folgenden Befehl aus:
GOARCH=amd64 go run ./cmd/server -address 0.0.0.0:8080Um den Server zu testen, führen Sie aus:
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": {}
}' Mehrere Beispiele können genutzt werden, um die aktuellen NLP -Funktionen in Cybertron zu besichtigen. Eine Liste der Demos folgt nun.
GOARCH=amd64 go run ./examples/textgeneration
.env -Datei angegebene Modell nicht kompatibel ist, wird ein Fehler zurückgegeben. Entfernen Sie in diesem Fall das angegebene Modell aus der Konfigurationsdatei, sodass die Standardeinstellung verwendet wird.
GOARCH=amd64 go run ./examples/zeroshotclassification politics,business,science,technology,health,culture,sports
Cybertron's prievale Abhängigkeiten sind:
Der Rest erfolgt hauptsächlich für GRPC- und HTTP -API -Entwicklungen.
Dieser Abschnitt richtet sich an Entwickler, die die Cybertron -GRPC- und HTTP -APIs ändern oder bereichern möchten.
Um loszulegen, müssen Sie BUF in Ihrem Computer installiert.
Installieren Sie dann die folgenden Tools:
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
Führen Sie dann den folgenden Befehl aus, um die GRPC- und HTTP -APIs zu generieren:
go generate ./...