Hugging Face هو أكبر مركز لنماذج الذكاء الاصطناعي ومجموعات البيانات والمساحات. لكن المستخدمين من روسيا والصين وعدد من الدول الأخرى يواجهون بانتظام حظرًا: الصفحة لا تُحمّل، تحميل النموذج يتوقف، وواجهة برمجة التطبيقات تعيد خطأ 403. إذا كنت تعمل مع الشبكات العصبية وتحتاج إلى وصول مستقر إلى المستودعات - فإن البروكسي يحل هذه المشكلة بسرعة وبدون إعدادات معقدة.
لماذا Hugging Face غير متاح: أسباب الحظر
قبل إعداد البروكسي، من المهم فهم سبب حدوث مشاكل في الوصول. الأسباب متنوعة، وهذا يعتمد على الحل المناسب لك.
الحظر الجغرافي من قبل المزود. في روسيا، يقوم عدد من مزودي الإنترنت بحظر أو إبطاء حركة المرور إلى الموارد الخارجية بناءً على طلب الجهات التنظيمية. يتعرض Hugging Face بانتظام لمثل هذه القيود - خاصة خوادم CDN الخاصة به، التي تمر من خلالها ملفات النماذج التي تتراوح أحجامها من عدة جيجابايت إلى مئات الجيجابايت.
جدران الحماية المؤسسية. إذا كنت تعمل في شركة أو جامعة، قد يقوم مسؤولو الشبكة بحظر الوصول إلى المستودعات الخارجية. هذا ينطبق بشكل خاص على المؤسسات الحكومية والشركات الكبرى، حيث تمنع سياسة الأمان تحميل الملفات من مصادر غير معروفة.
قيود Hugging Face نفسها. في عام 2024، فرضت المنصة قيودًا على تحميل بعض النماذج في عدد من المناطق - خاصة تلك التي تخضع لرقابة التصدير الأمريكية. قد تتطلب النماذج المميزة بـ "restricted" التحقق من الحساب أو قد تكون غير متاحة من عناوين IP معينة.
عدم استقرار الاتصال والانقطاعات. حتى إذا لم يكن هناك حظر رسمي، قد تكون توجيه حركة المرور من روسيا إلى خوادم Hugging Face في الولايات المتحدة وأوروبا غير مستقرة لدرجة أن تحميل نموذج بحجم 20 جيجابايت يتوقف باستمرار. البروكسي مع الخوادم في الولايات المتحدة أو أوروبا يحل هذه المشكلة - حيث تمر حركة المرور عبر قناة مستقرة.
تحديد معدل الطلبات حسب IP. يقوم Hugging Face بتحديد عدد الطلبات من عنوان IP واحد. إذا كنت تقوم بتحميل عدة نماذج تلقائيًا أو تستخدم سكربتات لتحميل مجموعات بيانات بشكل جماعي، قد تقوم المنصة بحظر IP الخاص بك مؤقتًا. تدوير البروكسي يحل هذه المشكلة.
مهم: VPN ليست هي نفسها البروكسي. VPN تشفر كل حركة المرور للجهاز وغالبًا ما تبطئ الاتصال. البروكسي يعمل على مستوى تطبيق أو سكربت معين، مما يجعله أكثر ملاءمة لتحميل الملفات الكبيرة والأتمتة.
ماذا يعطي البروكسي عند العمل مع Hugging Face
يعمل خادم البروكسي كوسيط بين جهاز الكمبيوتر الخاص بك وخوادم Hugging Face. بدلاً من الاتصال المباشر (الذي قد يكون محظورًا أو غير مستقر)، يتم توجيه الطلب عبر خادم البروكسي الموجود في بلد يتمتع بإمكانية وصول طبيعية.
إليك ما يقدمه هذا عمليًا:
- تحميل مستقر للملفات الكبيرة. النماذج مثل LLaMA 3 وMistral وStable Diffusion تتراوح أحجامها من 4 إلى 150+ جيجابايت. عبر البروكسي مع خادم في أوروبا أو الولايات المتحدة، يتم التحميل بدون انقطاعات، لأن القناة إلى Hugging Face قصيرة ومستقرة.
- تجاوز الحظر الجغرافي من المزود. يرى مزودك فقط حركة المرور إلى خادم البروكسي - وليس إلى Hugging Face. يتم تجاوز الحظر تلقائيًا.
- تغيير IP لتجاوز تحديد معدل الطلبات. إذا كنت بحاجة إلى تحميل العديد من النماذج أو مجموعات البيانات بشكل متتالي، فإن تدوير البروكسي يسمح بتجنب الحظر المؤقت حسب IP.
- العمل على الخوادم بدون واجهة مستخدم رسومية. يتم إعداد البروكسي بسهولة عبر متغيرات البيئة - مما يجعله ملائمًا للعمل على الخوادم البعيدة، في حاويات Docker، في دفاتر Jupyter، وفي خطوط CI/CD.
- الوصول إلى النماذج المقيدة. بعض النماذج متاحة فقط من IP لدول معينة. البروكسي مع الموقع الجغرافي المطلوب يفتح الوصول إليها.
ومع ذلك، لا يتطلب البروكسي تغييرات في كود مشروعك - يكفي مرة واحدة كتابة الإعدادات في النظام أو البيئة، وستبدأ جميع الأدوات (huggingface_hub وtransformers وgit-lfs) العمل عبر البروكسي تلقائيًا.
ما هي أنواع البروكسي المناسبة لتحميل النماذج
ليست جميع البروكسيات مناسبة بنفس القدر للعمل مع Hugging Face. دعنا نستعرض الأنواع الرئيسية وملاءمتها لهذه المهمة.
| نوع البروكسي | السرعة | الاستقرار | لـ Hugging Face | متى تختار |
|---|---|---|---|---|
| مركز البيانات (DC) | ⚡ عالية | ✅ عالية | ✅ ممتازة | تحميل جماعي للنماذج، سكربتات، CI/CD |
| سكنية | 🔄 متوسطة | ✅ عالية | ✅ جيدة | الوصول إلى النماذج المقيدة، تجاوز الفحوصات |
| محمولة | 🔄 متوسطة | ⚠️ يعتمد | ⚠️ زائد | لا حاجة لها لهذه المهمة |
| مجانية | ❌ منخفضة | ❌ منخفضة | ❌ غير مناسبة | لا تناسب أي عمل جاد |
لأغلب المهام مع Hugging Face، الخيار الأمثل هو بروكسي مراكز البيانات. إنها توفر أقصى سرعة تحميل (وهذا مهم عند تحميل النماذج التي تصل إلى عشرات الجيجابايت)، اتصال مستقر وعنوان IP ثابت. بالنسبة لتحميل نموذج بحجم 30 جيجابايت، الفرق بين البروكسي البطيء والسريع هو الفرق بين ساعتين و20 دقيقة.
البروكسيات السكنية ستكون مفيدة إذا واجهت أن Hugging Face يحظر عناوين IP لمراكز البيانات (هذا يحدث لبعض النماذج المقيدة). تبدو عناوين IP السكنية كأنها مستخدمون منزليون عاديون وتثير شكوكًا أقل لدى أنظمة حماية المنصة.
البروكسيات المحمولة لتحميل النماذج زائدة - فهي أغلى، والفوائد من استخدامها (ثقة عالية من المنصات في عناوين IP المحمولة) ليست ضرورية هنا. Hugging Face ليست شبكة اجتماعية مع حماية ضد البريد المزعج، لذا يكفي استخدام بروكسيات DC أو سكنية عادية.
إعداد البروكسي للوصول عبر المتصفح
إذا كنت بحاجة فقط لفتح موقع Hugging Face، واستكشاف النماذج أو تحميل ملف يدويًا عبر واجهة الويب - قم بإعداد البروكسي في المتصفح. هذه هي أبسط طريقة.
الخيار 1: إضافة للمتصفح (للمهام الفردية)
قم بتثبيت إضافة FoxyProxy (Firefox) أو Proxy SwitchyOmega (Chrome/Edge). بعد التثبيت:
- افتح إعدادات الإضافة
- أضف ملف تعريف بروكسي جديد
- حدد النوع: HTTP أو SOCKS5
- أدخل عنوان الخادم (المضيف) والمنفذ
- إذا كان البروكسي يتطلب مصادقة - أدخل اسم المستخدم وكلمة المرور
- احفظ الملف الشخصي وقم بتفعيله
- افتح huggingface.co - يجب أن يتم تحميل الموقع
الخيار 2: إعدادات النظام للبروكسي (لـ Windows)
إذا كنت تريد أن يعمل البروكسي لكل الكمبيوتر (بما في ذلك المتصفح، سكربتات Python وتطبيقات أخرى):
- افتح الإعدادات → الشبكة والإنترنت → خادم البروكسي
- قم بتفعيل "استخدام خادم البروكسي"
- أدخل العنوان والمنفذ
- في حقل الاستثناءات، أضف localhost و127.0.0.1
- احفظ الإعدادات
💡 نصيحة: لتحميل نماذج كبيرة عبر المتصفح، استخدم مدير تحميل (مثل Free Download Manager) - فهو يدعم استئناف التحميل عند انقطاع الاتصال ويعمل مع إعدادات النظام للبروكسي.
إعداد البروكسي لبيئة CLI وPython
يقوم معظم مستخدمي Hugging Face بتحميل النماذج عبر سطر الأوامر أو سكربتات Python - باستخدام المكتبات huggingface_hub وtransformers أو مباشرة عبر git lfs. يتم إعداد البروكسي لجميع هذه الأدوات عبر متغيرات البيئة.
الخطوة 1. إعداد متغيرات البيئة
هذه هي الطريقة الأكثر شمولاً - حيث تقوم معظم مكتبات Python والأدوات النظامية بالتقاط هذه المتغيرات تلقائيًا:
# لـ Linux / macOS (في الطرفية أو ~/.bashrc / ~/.zshrc) export HTTP_PROXY="http://username:password@proxy-host:port" export HTTPS_PROXY="http://username:password@proxy-host:port" # لـ Windows (في PowerShell) $env:HTTP_PROXY = "http://username:password@proxy-host:port" $env:HTTPS_PROXY = "http://username:password@proxy-host:port" # لـ Windows (في CMD) set HTTP_PROXY=http://username:password@proxy-host:port set HTTPS_PROXY=http://username:password@proxy-host:port
استبدل username:password@proxy-host:port بالبيانات الحقيقية للبروكسي الخاص بك. إذا كان البروكسي بدون مصادقة - فقط حدد http://proxy-host:port.
الخطوة 2. تحميل النموذج عبر huggingface_hub
بعد إعداد متغيرات البيئة، تعمل الأوامر القياسية دون تغييرات:
# تحميل النموذج عبر CLI huggingface-cli download mistralai/Mistral-7B-v0.1 # أو عبر Python from huggingface_hub import snapshot_download snapshot_download(repo_id="mistralai/Mistral-7B-v0.1")
الخطوة 3. إعداد البروكسي مباشرة في Python (إذا لم تعمل متغيرات البيئة)
في بعض الحالات - مثل في Jupyter Notebook أو عند التشغيل عبر IDE - قد لا يتم تمرير متغيرات البيئة. في هذه الحالة، قم بإعداد البروكسي بوضوح في الكود:
import os import requests from huggingface_hub import snapshot_download # إعداد البروكسي عبر os.environ os.environ["HTTP_PROXY"] = "http://username:password@proxy-host:port" os.environ["HTTPS_PROXY"] = "http://username:password@proxy-host:port" # الآن نقوم بتحميل النموذج - سيتم تطبيق البروكسي تلقائيًا snapshot_download(repo_id="meta-llama/Meta-Llama-3-8B")
إعداد البروكسي لـ git lfs
إذا كنت تقوم باستنساخ مستودع عبر git (طريقة git clone)، يجب إعداد البروكسي لـ git بشكل منفصل:
# إعداد بروكسي HTTP لـ git git config --global http.proxy http://username:password@proxy-host:port git config --global https.proxy http://username:password@proxy-host:port # استنساخ المستودع مع النموذج git clone https://huggingface.co/mistralai/Mistral-7B-v0.1 # لإزالة البروكسي بعد الاستخدام git config --global --unset http.proxy git config --global --unset https.proxy
⚠️ مهم: git lfs (تخزين الملفات الكبيرة) يستخدم قناة منفصلة لتحميل الملفات الكبيرة. إذا كانت متغيرات البيئة HTTP_PROXY مضبوطة عالميًا - فإن git lfs ستلتقطها. إذا لم يكن الأمر كذلك - أضفها إلى .lfsconfig في جذر المستودع.
استخدام البروكسي في Docker والبيئات الخدمية
يعمل العديد من مهندسي التعلم الآلي مع النماذج في حاويات Docker أو على خوادم بعيدة (AWS وGCP وHetzner وخوادم خاصة). إذا كان الخادم موجودًا في روسيا أو دولة أخرى ذات وصول محدود إلى Hugging Face - يجب إعداد البروكسي على مستوى الحاوية أو النظام.
الخيار 1: تمرير البروكسي في Docker عبر متغيرات البيئة
عند تشغيل الحاوية، قم بتمرير متغيرات البيئة عبر علامة -e:
docker run -it \ -e HTTP_PROXY="http://username:password@proxy-host:port" \ -e HTTPS_PROXY="http://username:password@proxy-host:port" \ -e NO_PROXY="localhost,127.0.0.1" \ python:3.11 bash
الخيار 2: البروكسي في Dockerfile
إذا كان البروكسي مطلوبًا في مرحلة بناء الصورة (على سبيل المثال، لتحميل النموذج أثناء docker build):
FROM python:3.11
# إعداد البروكسي للبناء
ARG HTTP_PROXY
ARG HTTPS_PROXY
ENV HTTP_PROXY=$HTTP_PROXY
ENV HTTPS_PROXY=$HTTPS_PROXY
RUN pip install huggingface_hub transformers
# تحميل النموذج أثناء البناء
RUN python -c "from huggingface_hub import snapshot_download; snapshot_download('mistralai/Mistral-7B-v0.1')"
تشغيل البناء مع تمرير البروكسي:
docker build \ --build-arg HTTP_PROXY="http://username:password@proxy-host:port" \ --build-arg HTTPS_PROXY="http://username:password@proxy-host:port" \ -t my-ml-app .
الخيار 3: إعداد البروكسي على مستوى الخادم (Ubuntu/Debian)
إذا كنت تريد أن يعمل البروكسي لجميع المستخدمين والعمليات على الخادم - أضف الإعدادات إلى تكوين النظام:
# أضف إلى /etc/environment HTTP_PROXY="http://username:password@proxy-host:port" HTTPS_PROXY="http://username:password@proxy-host:port" NO_PROXY="localhost,127.0.0.1,::1" # تطبيق التغييرات source /etc/environment
بعد ذلك، ستستخدم جميع الأوامر - pip install وhuggingface-cli download وwget وcurl - ستستخدم البروكسي تلقائيًا.
بالنسبة للمهام الخدمية، حيث تكون سرعة تحميل الملفات الكبيرة مهمة، فإن بروكسي مراكز البيانات تناسب بشكل جيد - حيث توفر عرض نطاق ترددي عالي واتصال مستقر، وهو أمر حاسم عند تحميل نماذج بحجم 20-100+ جيجابايت.
قائمة التحقق: كيفية التحقق من أن البروكسي يعمل بشكل صحيح
قبل بدء تحميل نموذج ثقيل، تأكد من أن البروكسي تم إعداده بشكل صحيح. إليك قائمة تحقق سريعة:
1. تحقق من أن البروكسي يعمل بالفعل
# تحقق عبر curl - يجب أن يعيد IP خادم البروكسي، وليس IP الحقيقي الخاص بك
curl -x http://username:password@proxy-host:port https://api.ipify.org
# تحقق عبر Python
import requests
proxies = {"http": "http://username:password@proxy-host:port",
"https": "http://username:password@proxy-host:port"}
r = requests.get("https://api.ipify.org", proxies=proxies)
print(r.text) # يجب أن يطبع IP البروكسي، وليس IP الخاص بك
2. تحقق من إمكانية الوصول إلى Hugging Face عبر البروكسي
curl -x http://username:password@proxy-host:port https://huggingface.co/api/models?limit=1 # النتيجة المتوقعة: JSON مع بيانات النماذج (الحالة 200)
3. تحقق من سرعة التحميل
# قم بتحميل ملف اختبار صغير وقياس السرعة curl -x http://username:password@proxy-host:port \ -o /dev/null \ --progress-bar \ "https://huggingface.co/bert-base-uncased/resolve/main/config.json"
✅ قائمة التحقق قبل تحميل النموذج:
- يظهر IP البروكسي عند التحقق عبر api.ipify.org
- تُعيد واجهة برمجة التطبيقات Hugging Face الحالة 200
- سرعة تحميل الملف التجريبي > 5 ميغابايت/ثانية (لعمل مريح)
- تم تعيين متغيرات HTTP_PROXY وHTTPS_PROXY في البيئة المطلوبة
- بالنسبة لـ git - تم إعداد إعدادات البروكسي عبر git config
- بالنسبة لـ Docker - تم تمرير المتغيرات عبر -e أو ARG
- NO_PROXY يحتوي على localhost و127.0.0.1
الأخطاء الشائعة وكيفية تجنبها
جمعنا أكثر المشاكل شيوعًا التي تواجهها عند إعداد البروكسي لـ Hugging Face وطرق حلها.
الخطأ 1: فشل التحقق من شهادة SSL
بعض البروكسيات (خاصة المؤسسية) تعترض حركة مرور HTTPS وتستبدل شهادة SSL. لا تثق مكتبات Python في هذه الشهادة وتظهر خطأ.
الحل: استخدم بروكسيات عالية الجودة لا تعترض SSL. إذا كان هذا بروكسي مؤسسي - أضف الشهادة الجذرية للشركة إلى الموثوق بها عبر متغير REQUESTS_CA_BUNDLE.
الخطأ 2: البروكسي يعمل في المتصفح، ولكن ليس في Python
إعدادات النظام للبروكسي في Windows لا تُمرر دائمًا إلى Python. المتصفح يقرأها، لكن Python لا تفعل.
الحل: قم بتعيين متغيرات البيئة HTTP_PROXY وHTTPS_PROXY بوضوح قبل تشغيل السكربت أو أضفها في بداية ملف Python عبر os.environ.
الخطأ 3: يبدأ التحميل، لكن يتوقف في المنتصف
قد يتسبب البروكسي مع حد حركة المرور أو اتصال غير مستقر في انقطاع تحميل الملفات الكبيرة.
الحل: استخدم بروكسيات بدون حد حركة المرور. تدعم مكتبة huggingface_hub استئناف التحميل - إذا انقطع التحميل، أعد تشغيل الأمر بنفس المسار، وسيستمر من حيث توقف.
الخطأ 4: 407 مطلوب مصادقة البروكسي
يتطلب البروكسي مصادقة، لكن لم يتم تمريرها في الطلب.
الحل: تأكد من أن اسم المستخدم وكلمة المرور محددان بشكل صحيح في عنوان URL للبروكسي: http://login:password@host:port. إذا كانت كلمة المرور تحتوي على رموز خاصة (@، #، %) - قم بترميزها عبر ترميز URL.
الخطأ 5: البروكسي يعمل، لكن Hugging Face لا يزال غير متاح
هذا يعني أن خادم البروكسي نفسه موجود في منطقة محظورة أو لديه مشاكل في التوجيه إلى Hugging Face.
الحل: تحقق من الموقع الجغرافي لخادم البروكسي. للوصول إلى Hugging Face، اختر بروكسي مع خوادم في الولايات المتحدة أو ألمانيا أو هولندا أو دول أوروبية أخرى. تجنب البروكسيات من روسيا أو الصين أو إيران - فقد تواجه نفس القيود.
الخطأ 6: لا يتم حفظ متغيرات البيئة بعد إعادة التشغيل
إذا قمت بتعيين المتغيرات عبر export في الطرفية - فإنها تعمل فقط في الجلسة الحالية.
الحل: أضف الأسطر export HTTP_PROXY=... إلى ملف ~/.bashrc أو ~/.zshrc (Linux/macOS) أو في متغيرات البيئة النظامية لـ Windows عبر "خصائص النظام".
الخاتمة
إعداد البروكسي لـ Hugging Face هو مهمة بسيطة تحل عدة مشاكل في آن واحد: تجاوز الحظر الجغرافي، تحميل النماذج الثقيلة بشكل مستقر، تجاوز تحديد معدل الطلبات والوصول إلى المستودعات المقيدة. الميزة الأساسية لهذا النهج عبر متغيرات البيئة هي الشمولية: بمجرد إعدادها، تعمل جميع الأدوات (huggingface_hub وtransformers وgit lfs وcurl) عبر البروكسي تلقائيًا.
بالنسبة لمعظم المهام - تحميل النماذج، العمل مع السكربتات، البيئات الخدمية - الخيار الأمثل هو بروكسي مراكز البيانات: حيث توفر أقصى سرعة واستقرار عند تحميل الملفات الكبيرة. إذا كنت بحاجة إلى الوصول إلى النماذج ذات الوصول المحدود حسب الموقع الجغرافي أو كانت المنصة تحظر عناوين IP لمراكز البيانات - فكر في البروكسيات السكنية مع الموقع الجغرافي المطلوب: حيث تبدو كأنها مستخدمون منزليون عاديون ولا تسبب حظرًا تقريبًا.
القاعدة الأساسية عند العمل مع Hugging Face عبر البروكسي - اختر خادمًا في الولايات المتحدة أو غرب أوروبا، تحقق من الاتصال قبل تحميل النماذج الثقيلة ولا تنسَ متغير NO_PROXY لضمان مرور حركة المرور المحلية مباشرة.