Cog هي أداة مفتوحة المصدر تتيح لك تجميع نماذج التعلم الآلي في حاوية قياسية جاهزة للإنتاج.
يمكنك نشر النموذج المعبأ الخاص بك على البنية التحتية الخاصة بك، أو النسخ المتماثل.
حاويات عامل ميناء دون ألم. يمكن أن تكون كتابة Dockerfile
الخاص بك عملية محيرة. باستخدام Cog، يمكنك تحديد بيئتك باستخدام ملف تكوين بسيط ويقوم بإنشاء صورة Docker مع أفضل الممارسات: صور Nvidia الأساسية، والتخزين المؤقت الفعال للتبعيات، وتثبيت إصدارات Python محددة، والإعدادات الافتراضية لمتغيرات البيئة المعقولة، وما إلى ذلك.
لا مزيد من الجحيم CUDA. يعرف Cog مجموعات CUDA/cuDNN/PyTorch/Tensorflow/Python المتوافقة وسيقوم بإعدادها بشكل صحيح لك.
حدد المدخلات والمخرجات لنموذجك باستخدام Python القياسي. بعد ذلك، يقوم Cog بإنشاء مخطط OpenAPI والتحقق من صحة المدخلات والمخرجات باستخدام Pydantic.
خادم تنبؤ HTTP التلقائي : يتم استخدام أنواع النموذج الخاص بك لإنشاء RESTful HTTP API ديناميكيًا باستخدام FastAPI.
عامل طابور تلقائي. من الأفضل تصميم نماذج التعلم العميق طويلة الأمد أو المعالجة المجمعة باستخدام قائمة الانتظار. نماذج الترس تفعل ذلك خارج الصندوق. Redis مدعوم حاليًا، وهناك المزيد في طور التنفيذ.
التخزين السحابي. يمكن قراءة الملفات وكتابتها مباشرة إلى Amazon S3 وGoogle Cloud Storage. (قريباً.)
جاهز للإنتاج. انشر النموذج الخاص بك في أي مكان يتم فيه تشغيل صور Docker. البنية التحتية الخاصة بك، أو النسخ المتماثل.
حدد بيئة Docker التي يعمل بها نموذجك باستخدام cog.yaml
:
البناء: وحدة معالجة الرسومات: صحيح system_packages: - "libgl1-ميسا-glx" - "libglib2.0-0" python_version: "3.12" python_packages: - توقع "الشعلة==2.3": "predict.py:Predictor"
حدد كيفية تشغيل التنبؤات على النموذج الخاص بك باستخدام predict.py
:
from cog import BasePredictor, Input, Pathimport torchclass Predictor(BasePredictor): def setup(self): """تحميل النموذج إلى الذاكرة لجعل تشغيل التنبؤات المتعددة فعالاً""" self.model = torch.load("./weights. pth") # الوسيطات والأنواع التي يأخذها النموذج كمدخلات defتنبأ(self, image: Path = Input(description=Grayscale input image)) ) -> المسار: """تشغيل تنبؤ واحد على النموذج"""process_image = المعالجة المسبقة(الصورة) الإخراج = self.model(processed_image) إرجاع postprocess(output)
الآن، يمكنك تشغيل التنبؤات على هذا النموذج:
توقع $ cog -i [email protected]> إنشاء صورة Docker...--> تشغيل التنبؤ...--> الإخراج المكتوب إلىoutput.jpg
أو أنشئ صورة Docker للنشر:
$ cog build -t my-colorization-model--> Building Docker image...--> تم إنشاء نموذج التلوين الخاص بي: أحدث $ docker run -d -p 5000:5000 --gpus all my-colorization-model$ حليقة http://localhost:5000/predictions -X POST -H 'نوع المحتوى: application/json' -d '{"input": {"image": "https://.../input.jpg"}}'
من الصعب جدًا على الباحثين إرسال نماذج التعلم الآلي إلى الإنتاج.
جزء من الحل هو Docker، ولكن تشغيله معقد جدًا: Dockerfiles، المعالجة المسبقة/اللاحقة، خوادم Flask، إصدارات CUDA. في أغلب الأحيان يتعين على الباحث الجلوس مع مهندس لنشر الشيء اللعين.
أنشأ أندرياس وبن Cog. اعتاد أندرياس العمل في Spotify، حيث قام ببناء أدوات لبناء نماذج تعلم الآلة ونشرها باستخدام Docker. عمل بن في Docker، حيث أنشأ Docker Compose.
لقد أدركنا أنه، بالإضافة إلى Spotify، كانت شركات أخرى تستخدم أيضًا Docker لبناء نماذج التعلم الآلي ونشرها. وقد قامت شركة أوبر وغيرها ببناء أنظمة مماثلة. لذا، فإننا نصنع إصدارًا مفتوح المصدر حتى يتمكن الآخرون من القيام بذلك أيضًا.
تواصل معنا إذا كنت مهتمًا باستخدامه أو ترغب في التعاون معنا. نحن موجودون على Discord أو راسلنا عبر البريد الإلكتروني على [email protected].
ماك أو لينكس أو ويندوز 11 . يعمل Cog على أنظمة التشغيل macOS وLinux وWindows 11 مع WSL 2
عامل ميناء . يستخدم Cog Docker لإنشاء حاوية لنموذجك. ستحتاج إلى تثبيت Docker قبل أن تتمكن من تشغيل Cog. إذا قمت بتثبيت Docker Engine بدلاً من Docker Desktop، فستحتاج إلى تثبيت Buildx أيضًا.
إذا كنت تستخدم macOS، فيمكنك تثبيت Cog باستخدام Homebrew:
ترس تثبيت المشروب
يمكنك أيضًا تنزيل أحدث إصدار وتثبيته باستخدام برنامج التثبيت النصي الخاص بنا:
# قذائف السمك (curl -fsSL https://cog.run/install.sh | psub)# bash وzsh وأصداف أخرى<(curl -fsSL https://cog.run/install.sh)# التنزيل باستخدام wget وتشغيله في أمر منفصلwget -qO- https://cog.run/install.sh ش ./install.sh
يمكنك تثبيت أحدث إصدار من Cog يدويًا مباشرةً من GitHub عن طريق تشغيل الأوامر التالية في الوحدة الطرفية:
sudo cur -o /usr/local/bin/cog -L "https://github.com/replicate/cog/releases/latest/download/cog_$(uname -s)_$(uname -m)"sudo chmod +x /usr/local/bin/cog
وبدلاً من ذلك، يمكنك إنشاء Cog من المصدر وتثبيته باستخدام هذه الأوامر:
makesudo جعل التثبيت
أو إذا كنت على عامل ميناء:
RUN sh -c "INSTALL_DIR="/usr/local/bin" SUDO="" $(curl -fsSL https://cog.run/install.sh)"
إذا كنت تستخدم macOS وقمت مسبقًا بتثبيت Cog with Homebrew، فقم بتشغيل ما يلي:
ترس ترقية المشروب
بخلاف ذلك، يمكنك الترقية إلى الإصدار الأحدث عن طريق تشغيل نفس الأوامر التي استخدمتها لتثبيته.
ابدأ بنموذج نموذجي
ابدأ بالنموذج الخاص بك
استخدام الترس مع أجهزة الكمبيوتر المحمولة
استخدام Cog مع نظام التشغيل Windows 11
ألق نظرة على بعض الأمثلة لاستخدام Cog
نشر النماذج باستخدام Cog
مرجع cog.yaml
لمعرفة كيفية تحديد بيئة النموذج الخاص بك
مرجع واجهة التنبؤ لمعرفة كيفية عمل واجهة Predictor
مرجع واجهة التدريب لمعرفة كيفية إضافة واجهة برمجة التطبيقات (API) للضبط الدقيق إلى النموذج الخاص بك
مرجع HTTP API لمعرفة كيفية استخدام HTTP API التي تخدمها النماذج
انضم إلينا في #cog على Discord.