Cybertron عبارة عن حزمة في Pure Go مبنية على Spago توفر لمطوري GO واجهة سهلة لاستخدام تقنيات NLP ، دون الحاجة إلى لغات البرمجة الأخرى أو الأطر المعقدة. تم تصميمه لاستخدام نماذج المحولات التي تم تدريبها مسبقًا على مستودع موديلات Huggingface.
تهدف الحزمة في المقام الأول إلى تشغيل الاستدلال مع إمكانية إضافة صقل في المستقبل.
الفريق مفتوح للمساهمين في تسريع نموه.
متطلبات:
استنساخ هذا الريبو أو الحصول على المكتبة:
go get -u github.com/nlpodyssey/cybertronيدعم Cybertron حالتين للاستخدام الرئيسيين ، والتي يتم شرحها أكثر بالتفصيل في ما يلي.
يتم تكوين الإعدادات في ملف .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": {}
}' يمكن الاستفادة من العديد من الأمثلة للقيام بجولة في إمكانات NLP الحالية في Cybertron. قائمة العروض التوضيحية الآن.
GOARCH=amd64 go run ./examples/textgeneration
.env غير متوافق ، فسيتم إرجاع خطأ. في هذه الحالة ، قم بإزالة النموذج المحدد من ملف التكوين ، بحيث سيتم استخدام النظام الافتراضي.
GOARCH=amd64 go run ./examples/zeroshotclassification politics,business,science,technology,health,culture,sports
تبعيات Cybertron الجبلية هي:
الباقي هي أساسا لتطورات GRPC و HTTP API.
هذا القسم مخصص للمطورين الذين يرغبون في تغيير أو إثراء APIs 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
ثم قم بتشغيل الأمر التالي لإنشاء واجهات برمجي GRPC و HTTP:
go generate ./...