Cybertron - это пакет в Pure Go, построенный на Spago, который предоставляет разработчикам GO простой интерфейс для использования технологий NLP, без необходимости других языков программирования или сложных структур. Он предназначен для использования предварительно обученных трансформаторных моделей, доступных в репозитории моделей HuggingFaceface.
Пакет в первую очередь предназначена для вывода вывода с возможностью добавления тонкой настройки в будущем.
Команда открыта для участников, чтобы ускорить его рост.
Требования:
Клонировать это репо или получить библиотеку:
go get -u github.com/nlpodyssey/cybertronCybertron поддерживает два основных варианта использования, которые более подробно объясняются в следующем.
Настройки настроены в файле .env , который автоматически загружается Cybertron. В качестве альтернативы, он также принимает конфигурации через флаги.
Для полного списка запуска:
GOARCH=amd64 go run ./cmd/server -hВыход:
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
Например, чтобы запустить Cybertron в режиме сервера для машинного перевода ( en к it ) с настройками по умолчанию, просто создайте файл .env в текущем каталоге:
echo "CYBERTRON_MODEL=Helsinki-NLP/opus-mt-en-it" > .env
echo "CYBERTRON_MODELS_DIR=models" >> .env
echo "CYBERTRON_MODEL_TASK=text-generation" >> .envи выполнить следующую команду:
GOARCH=amd64 go run ./cmd/server -address 0.0.0.0:8080Чтобы проверить сервер, запустите:
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": {}
}' Несколько примеров могут быть использованы для поездки по нынешним возможностям НЛП в Кибертроне. Список демонстраций сейчас следует.
GOARCH=amd64 go run ./examples/textgeneration
.env , не совместима, будет возвращена ошибка. В этом случае удалите указанную модель из файла конфигурации, поэтому будет использоваться по умолчанию.
GOARCH=amd64 go run ./examples/zeroshotclassification politics,business,science,technology,health,culture,sports
КИБЕРТРЕНА
Остальные в основном предназначены для разработок GRPC и HTTP API.
Этот раздел предназначен для разработчиков, которые хотят изменить или обогатить API Cybertron GRPC и HTTP.
Чтобы начать, вам нужен BUF, установленный на вашей машине.
Затем установите следующие инструменты:
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
Затем запустите следующую команду, чтобы сгенерировать API GRPC и HTTP:
go generate ./...