Skip to content

نشر Potato على Space في Hugging Face

شغّل مهمة تعليق توضيحي على Potato في Docker Space على Hugging Face باستخدام potato deploy، مع نسخ التعليقات احتياطيًا إلى مجموعة بيانات خاصة كل خمس دقائق.

يشغّل potato deploy up --provider huggingface مهمة تعليق توضيحي في Docker Space على Hugging Face، مع HTTPS على عنوان hf.space ودون أي إعداد على خادم. وهو يناسب عرضًا توضيحيًا عامًا لمهمة، ومختبرًا بياناته ونماذجه موجودة بالفعل على Hugging Face Hub. يُمسح قرص الـ Space مع كل إعادة تشغيل، لذا يحفظ Potato التعليقات في مجموعة بيانات خاصة على Hugging Face ينشئها إلى جانب الـ Space. وينسخ التعليقات احتياطيًا إلى مجموعة البيانات كل خمس دقائق ويستعيدها عند بدء الـ Space. تتطلب هذه الصفحة Potato 2.10 أو أحدث وملف إعداد سبق أن شغّلته باستخدام potato start.

متطلبات الـ Space وحدوده

مساحات Potato هي Docker Spaces، وإنشاء Docker Space يتطلب خطة مدفوعة على Hugging Face، أي PRO للحساب الشخصي أو Team أو Enterprise للمؤسسة. كما أن الحساب أو المؤسسة على الفئة المجانية من Hugging Face لا يشغّل أكثر من ثلاث مساحات في الوقت نفسه. تبقى الرابعة في حالة PAUSED، وخلافًا للـ Space النائم، لا يستيقظ الـ Space الموقوف مؤقتًا أبدًا عندما يفتحه زائر.

لدراسة تستمر أسابيع مع معلّقين مسمَّين، يحتفظ الجهاز الافتراضي، مثل AWS Lightsail أو Jetstream2 أو Hetzner، بقرصه بعد إعادة التشغيل، فلا تعتمد البيانات على نسخة احتياطية. ويكون الـ Space أنسب ما يكون عندما يكون لدى الأشخاص الذين تريد الوصول إليهم حسابات على Hugging Face بالفعل، أو عندما تكون المهمة عرضًا توضيحيًا يمكنك تحمّل فقدان تعليقاته.

إعداد رمز Hugging Face

ينشئ Potato الـ Space ومجموعة البيانات باستخدام رمز Hugging Face الخاص بك. أنشئ رمزًا بصلاحية الكتابة في إعدادات Hugging Face، ثم ثبّت إضافة Hugging Face وضع الرمز في بيئتك:

bash
pip install 'potato-annotation[huggingface]'
export HF_TOKEN=hf_...
potato deploy providers --verify

يطبع providers --verify الحساب الذي ينتمي إليه الرمز. يمرّر Potato الرمز إلى الـ Space كسرّ من أسرار الـ Space حتى يتمكن النسخ الاحتياطي من الكتابة في مجموعة البيانات، ولا يضيفه أبدًا إلى مستودع الـ Space.

تحديد من يمكنه تسجيل الدخول

لا يغيّر potato deploy إعدادات تسجيل الدخول لديك، ويمكن لأي شخص لديه عنوان الـ Space العام أن يفتحه. إذا كان ملف الإعداد يسمح لأي شخص بالتسجيل، فسيبلّغ التشغيل التجريبي أدناه عن التحذير D003، "Anyone who finds the URL can register and annotate." (يستطيع أي شخص يعثر على عنوان URL أن يسجّل ويعلّق). يناسب التسجيل المفتوح العرض التوضيحي عادةً. أما للمعلّقين المسمَّين، فاسردهم تحت user_config.users مع allow_all_users: false (إدارة كلمات المرور)، أو اجعلهم يسجّلون الدخول بحساباتهم على Hugging Face، وهو ما يدعمه Potato كمزوّد مدمج تحت authentication.providers (مصادقة SSO وOAuth).

مراجعة الخطة والنشر

لا ينشئ التشغيل التجريبي شيئًا، ويطبع ما سينشئه النشر:

bash
potato deploy up myproject/config.yaml --provider huggingface --dry-run

تنشئ الخطة مجموعة البيانات الخاصة <account>/<name>-annotations، ثم Docker Space باسم <account>/<name>، وتضبط مفتاح الجلسة ومفتاح المشرف والرمز كأسرار للـ Space، وترفع مشروعك مع Dockerfile وREADME. يُبنى الـ Dockerfile على صورة Potato المنشورة للإصدار المثبّت لديك، فلا يحتوي الـ Space إلا على ملفات مشروعك. ينشر --owner تحت مؤسسة، ويجعل --private الـ Space نفسه خاصًا، ويتجاوز --name الاسم المأخوذ من المهمة.

شغّل الأمر من دون --dry-run وأكّد الخطة:

bash
potato deploy up myproject/config.yaml --provider huggingface

ينتظر النشر حتى يعمل الـ Space ثم يطبع عنوانه، https://<account>-<name>.hf.space، ومسار ملف مفتاح المشرف، .potato/secrets.json بجانب ملف الإعداد. يفتح مفتاح المشرف لوحة تحكم المشرف على /admin. ينام الـ Space على العتاد المجاني بعد 48 ساعة بلا زوار ويستيقظ عندما يفتحه أحد، وتعود التعليقات من مجموعة البيانات في كل مرة.

إنهاء الدراسة

ينزّل potato deploy pull مجموعة بيانات النسخ الاحتياطي، التي تحتوي على كل ما حفظه الـ Space، بدلًا من القراءة من الـ Space نفسه:

bash
potato deploy pull myproject/config.yaml
potato deploy destroy myproject/config.yaml

يحذف destroy الـ Space ويترك مجموعة البيانات في مكانها، لأن حذف الـ Space يمكن التراجع عنه بالنشر مرة أخرى، أما حذف التعليقات فلا يمكن التراجع عنه. وعندما لا تعود بحاجة إلى مجموعة البيانات، احذفها من صفحة إعداداتها على Hub.

النشر دون نسخ احتياطي

ينشر --demo الـ Space دون مجموعة بيانات، لعرض توضيحي لا تهم تعليقاته. ويحذّر التشغيل التجريبي حينها من أن كل ما يُجمع يضيع عند إعادة التشغيل التالية. ومن دون مجموعة بيانات، يقرأ pull الـ Space العامل عبر تصدير المشرف، وهذا لا يعمل إلا ما دام الـ Space قيد التشغيل.

استكشاف الأخطاء وإصلاحها

خطأ في الدفع عند الإنشاء يعني أن الحساب أو المؤسسة ليست لديه خطة مدفوعة. تتطلب Docker Spaces خطة PRO للحساب الشخصي، أو Team أو Enterprise للمؤسسة.

يكون الـ Space في حالة PAUSED عندما يشغّل حساب على الفئة المجانية ثلاث مساحات بالفعل. أوقف واحدة أخرى مؤقتًا، ثم أعد تشغيل هذه من صفحة إعداداتها. ولا تتطلب إعادة تشغيل Space موجود خطة مدفوعة.

تختفي التعليقات بعد إعادة البناء عندما يتعذر على الـ Space الاستعادة من مجموعة البيانات. يعرض سجل الـ Space سطر RESTORED عند نجاح الاستعادة، وغيابه يعني عادةً أن سرّ الـ Space المسمّى HF_TOKEN مفقود أو يفتقر إلى صلاحية الكتابة.

BUILD_ERROR يُشرح سببه في سجل البناء على https://huggingface.co/spaces/<account>/<name>?logs=build.

قراءة إضافية