Cybertron adalah paket dalam GO Pure GO yang dibangun di atas Spago yang memberikan antarmuka GO pengembang dengan mudah untuk menggunakan teknologi NLP, tanpa memerlukan bahasa pemrograman lain atau kerangka kerja yang kompleks. Ini dirancang untuk menggunakan model transformator pra-terlatih yang tersedia di repositori Model Huggingface.
Paket ini terutama ditujukan untuk menjalankan inferensi dengan kemungkinan menambahkan fine-tuning di masa depan.
Tim ini terbuka untuk kontributor untuk mempercepat pertumbuhannya.
Persyaratan:
Klone repo ini atau dapatkan perpustakaan:
go get -u github.com/nlpodyssey/cybertronCybertron mendukung dua kasus penggunaan utama, yang dijelaskan lebih detail secara berikut.
Pengaturan dikonfigurasi dalam file .env , yang secara otomatis dimuat oleh Cybertron. Atau, ia juga menerima konfigurasi melalui bendera.
Untuk daftar lengkap yang dijalankan:
GOARCH=amd64 go run ./cmd/server -hKeluaran:
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
Misalnya, untuk menjalankan Cybertron dalam mode server untuk terjemahan mesin ( en it ) dengan pengaturan default, cukup buat file .env di direktori saat ini:
echo "CYBERTRON_MODEL=Helsinki-NLP/opus-mt-en-it" > .env
echo "CYBERTRON_MODELS_DIR=models" >> .env
echo "CYBERTRON_MODEL_TASK=text-generation" >> .envdan jalankan perintah berikut:
GOARCH=amd64 go run ./cmd/server -address 0.0.0.0:8080Untuk menguji server, jalankan:
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": {}
}' Beberapa contoh dapat dimanfaatkan untuk berkeliling kemampuan NLP saat ini di Cybertron. Daftar demo sekarang mengikuti.
GOARCH=amd64 go run ./examples/textgeneration
.env tidak kompatibel, kesalahan akan dikembalikan. Dalam hal ini, hapus model yang ditentukan dari file konfigurasi, sehingga yang default akan digunakan.
GOARCH=amd64 go run ./examples/zeroshotclassification politics,business,science,technology,health,culture,sports
Ketergantungan Pripipil Cybertron adalah:
Sisanya terutama untuk pengembangan API GRPC dan HTTP.
Bagian ini ditujukan untuk pengembang yang ingin mengubah atau memperkaya Cybertron GRPC dan HTTP API.
Untuk memulai, Anda perlu Buf terpasang di mesin Anda.
Kemudian instal alat berikut:
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
Kemudian jalankan perintah berikut untuk menghasilkan API GRPC dan HTTP:
go generate ./...