كجزء من عمل فريق Hugging Face’s Xet لتحسين الواجهة الخلفية للتخزين في Hugging Face Hub، قمنا بتحليل نافذة طلبات تحميل Hugging Face على مدار 24 ساعة لفهم أنماط الوصول بشكل أفضل. في 11 أكتوبر 2024، رأينا:

  • تحميلات من 88 دولة
  • 8.2 مليون طلب تحميل
  • تم نقل 130.8 تيرابايت من البيانات

توضح الخريطة أدناه هذا النشاط، مع تلوين البلدان بالبايتات التي يتم تحميلها في الساعة.

حاليًا، يتم تخزين التحميلات في حاوية S3 us-east-1 وتحسينها باستخدام S3 Transfer Acceleration. يتم تخزين التنزيلات مؤقتًا وتقديمها باستخدام AWS Cloudfront كشبكة CDN. توفر مواقع Cloudfront المريحة التي يزيد عددها عن 400 موقع تغطية عالمية وعمليات نقل بيانات ذات زمن وصول منخفض. ومع ذلك، مثل معظم شبكات CDN، فقد تم تحسينها لمحتوى الويب ويبلغ الحد الأقصى لحجم الملف 50 جيجابايت.

في حين أن تقييد الحجم هذا معقول لعمليات نقل الملفات عبر الإنترنت النموذجية، فإن الحجم المتزايد باستمرار للملفات في مستودعات النماذج ومجموعة البيانات يمثل تحديًا. على سبيل المثال، يبلغ إجمالي أوزان meta-llama/Meta-Llama-3-70B 131 جيجابايت ويتم تقسيمها على 30 ملفًا لتلبية توصية Hub بتقسيم الأوزان إلى شرائح بحجم 20 جيجابايت. بالإضافة إلى ذلك، يتطلب تمكين تقنيات إلغاء البيانات المكررة أو الضغط المتقدمة لكل من التحميلات والتنزيلات إعادة تصور لكيفية تعاملنا مع عمليات نقل الملفات.

بروتوكول مخصص للتحميلات والتنزيلات

لدفع البنية الأساسية لـ Hugging Face إلى ما هو أبعد من حدودها الحالية، نقوم بإعادة تصميم بنية التحميل والتنزيل الخاصة بـ Hub. نحن نخطط لإدراج متجر مخصص للمحتوى (CAS) باعتباره المحطة الأولى لتوزيع المحتوى. يتيح لنا ذلك تنفيذ بروتوكول مخصص مبني على فلسفة توجيهية يقرأ غبيًا ويكتب ذكيًا. على عكس Git LFS، الذي يتعامل مع الملفات على أنها نقاط غير شفافة، يقوم نهجنا بتحليل الملفات على مستوى البايت، مما يكشف عن فرص تحسين سرعات النقل للملفات الضخمة الموجودة في مستودعات النماذج ومجموعة البيانات.

يعطي مسار القراءة الأولوية للبساطة والسرعة لضمان إنتاجية عالية بأقل قدر من زمن الوصول. يتم توجيه طلبات الملف إلى خادم CAS، الذي يوفر معلومات إعادة الإعمار. تظل البيانات نفسها مدعومة بحاوية S3 us-east-1، مع استمرار AWS CloudFront في العمل كشبكة CDN للتنزيلات.

يعد مسار الكتابة أكثر تعقيدًا لتحسين سرعات التحميل وتوفير ضمانات أمان إضافية. مثل عمليات القراءة، يتم توجيه طلبات التحميل إلى خادم CAS، ولكن بدلاً من الاستعلام على مستوى الملف، فإننا نعمل على أجزاء. عند العثور على التطابقات، يقوم خادم CAS بإرشاد العميل (على سبيل المثال، Huggingface_hub) لنقل القطع الضرورية (الجديدة) فقط. يتم التحقق من صحة القطع بواسطة CAS قبل تحميلها إلى S3.

هناك العديد من تفاصيل التنفيذ التي يجب معالجتها مثل قيود الشبكة وحمل التخزين الذي سنغطيه في المنشورات المستقبلية. في الوقت الحالي، دعونا نلقي نظرة على كيفية ظهور القراءات حاليًا. يوضح الرسم البياني الأول أدناه مسار القراءة والكتابة كما يبدو حاليًا:

مخطط تسلسل القراءة والكتابة القديم
يتم تمثيل القراءات على اليسار؛ يكتب هي على اليمين. لاحظ أن عمليات الكتابة تنتقل مباشرة إلى S3 دون أي وسيط.

وفي الوقت نفسه، في التصميم الجديد، ستتخذ القراءات المسار التالي:

مسار قراءة جديد في الهندسة المعمارية المقترحة
مسار قراءة جديد مع مخزن موجه للمحتوى (CAS) يوفر معلومات إعادة الإعمار. تستمر Cloudfront في العمل كشبكة CDN.

وأخيرًا، هذا هو مسار الكتابة المحدث:

مسار قراءة جديد في الهندسة المعمارية المقترحة
مسار كتابة جديد مع CAS لتسريع التحميلات والتحقق من صحتها. يستمر S3 في توفير مساحة تخزين داعمة.

من خلال إدارة الملفات على مستوى البايت، يمكننا تكييف التحسينات لتناسب تنسيقات الملفات المختلفة. على سبيل المثال، قمنا باستكشاف تحسين إمكانية إلغاء التكرار في ملفات Parquet، ونقوم الآن بالتحقيق في ضغط ملفات Tensor (مثل Safetensors) التي لديها القدرة على خفض سرعات التحميل بنسبة 10-25%. مع ظهور تنسيقات جديدة، نحن في وضع فريد يمكننا من تطوير المزيد من التحسينات التي تعمل على تحسين تجربة التطوير على المركز.

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

تصميم للوصول العالمي

لدعم هذا البروتوكول المخصص، نحتاج إلى تحديد التوزيع الجغرافي الأمثل لخدمة CAS. تم اعتبار AWS Lambda@Edge في البداية لتغطيتها العالمية الشاملة للمساعدة في تقليل وقت الرحلة ذهابًا وإيابًا. ومع ذلك، فإن اعتمادها على مشغلات Cloudfront جعلها غير متوافقة مع مسار التحميل المحدث لدينا. وبدلاً من ذلك، اخترنا نشر عقد CAS في عدد قليل من مناطق AWS البالغ عددها 34 منطقة.

بإلقاء نظرة فاحصة على نافذة طلبات S3 PUT على مدار 24 ساعة، حددنا أنماط حركة المرور العالمية التي تكشف عن توزيع عمليات تحميل البيانات إلى المركز. وكما هو متوقع، تأتي أغلبية النشاط من أمريكا الشمالية وأوروبا، مع تحميلات متواصلة بكميات كبيرة على مدار اليوم. وتسلط البيانات الضوء أيضًا على التواجد القوي والمتنامي في آسيا. من خلال التركيز على هذه المناطق الأساسية، يمكننا وضع نقاط تواجد CAS الخاصة بنا لتحقيق التوازن بين موارد التخزين والشبكة مع تقليل زمن الوصول.

مخطط باريتو للتحميلات

على الرغم من أن AWS تقدم 34 منطقة، فإن هدفنا هو الحفاظ على تكاليف البنية التحتية معقولة مع الحفاظ على تجربة مستخدم عالية. من بين 88 دولة ممثلة في هذه اللقطة، يوضح مخطط باريتو أعلاه أن أكبر 7 دول تمثل 80% من البايتات التي تم تحميلها، بينما تساهم أكبر 20 دولة بنسبة 95% من إجمالي حجم التحميل والطلبات.

تظهر الولايات المتحدة كمصدر رئيسي لحركة التحميل، مما يستلزم وجود نقطة اتصال (PoP) في هذه المنطقة. وفي أوروبا، يتركز معظم النشاط في البلدان الوسطى والغربية (على سبيل المثال، لوكسمبورغ والمملكة المتحدة وألمانيا) على الرغم من وجود بعض الأنشطة الإضافية التي يجب أخذها في الاعتبار في أفريقيا (على وجه التحديد الجزائر ومصر وجنوب أفريقيا). تعتمد حركة التحميل في آسيا بشكل أساسي على سنغافورة وهونج كونج واليابان وكوريا الجنوبية.

إذا استخدمنا طريقة إرشادية بسيطة لتوزيع حركة المرور، فيمكننا تقسيم تغطية CAS لدينا إلى ثلاث مناطق رئيسية:

  • us-east-1: خدمة أمريكا الشمالية والجنوبية
  • eu-west-3: خدمة أوروبا والشرق الأوسط وأفريقيا
  • ap-southeast-1: خدمة آسيا وأوقيانوسيا

وهذا في نهاية المطاف فعال للغاية. تمثل الولايات المتحدة وأوروبا 78.4% من البايتات التي تم تحميلها، بينما تمثل آسيا 21.6%.

رسم خرائط AWS جديد

يؤدي هذا التقسيم الإقليمي إلى حمل متوازن بشكل جيد عبر نقاط التواجد الثلاثة في CAS، مع قدرة إضافية على النمو ap-southeast-1 والمرونة في التوسع us-east-1 و eu-west-3 حسب الحاجة.

بناءً على حركة المرور المتوقعة، نخطط لتخصيص الموارد على النحو التالي:

  • us-east-1: 4 العقد
  • eu-west-3: 4 العقد
  • ap-southeast-1: 2 العقد

التحقق من الصحة والتدقيق

على الرغم من أننا نعمل على زيادة مسافة القفزة الأولى لبعض المستخدمين، إلا أن التأثير الإجمالي على عرض النطاق الترددي عبر المركز سيكون محدودًا. تتوقع تقديراتنا أنه على الرغم من أن عرض النطاق الترددي التراكمي لجميع عمليات التحميل سينخفض ​​من 48.5 ميجابت في الثانية إلى 42.5 ميجابت في الثانية (انخفاض بنسبة 12%)، إلا أن أداء الأداء سيتم تعويضه بشكل أكبر من خلال تحسينات النظام الأخرى.

نحن نعمل حاليًا على نقل بنيتنا التحتية إلى الإنتاج بحلول نهاية عام 2024، حيث سنبدأ بـ CAS واحد في عام us-east-1. من هناك، سنبدأ في تكرار المستودعات الداخلية لنظام التخزين الجديد لدينا لقياس أداء النقل، ثم تكرار CAS الخاص بنا إلى نقاط التواجد الإضافية المذكورة أعلاه لمزيد من قياس الأداء. واستنادًا إلى هذه النتائج، سنواصل تحسين نهجنا للتأكد من أن كل شيء يعمل بسلاسة عندما تكون الواجهة الخلفية للتخزين لدينا جاهزة بالكامل في العام المقبل.

ما وراء البايتات

وبينما نواصل هذا التحليل، تظهر فرص جديدة للحصول على رؤى أعمق. تستضيف Hugging Face واحدة من أكبر مجموعات البيانات من مجتمع التعلم الآلي مفتوح المصدر، مما يوفر وجهة نظر فريدة لاستكشاف الأساليب والاتجاهات التي تقود تطوير الذكاء الاصطناعي في جميع أنحاء العالم.

على سبيل المثال، يمكن للتحليلات المستقبلية تصنيف النماذج التي تم تحميلها إلى المركز حسب حالة الاستخدام (مثل البرمجة اللغوية العصبية أو رؤية الكمبيوتر أو الروبوتات أو نماذج اللغات الكبيرة) وفحص الاتجاهات الجغرافية في نشاط تعلم الآلة. لا تُعلم هذه البيانات قراراتنا المتعلقة بالبنية التحتية فحسب، بل توفر أيضًا عدسة في المشهد المتطور للتعلم الآلي.

نحن ندعوك لاستكشاف النتائج الحالية التي توصلنا إليها بمزيد من التفاصيل! قم بزيارة مساحتنا التفاعلية لرؤية توزيع التحميل لمنطقتك، وتابع فريقنا لمعرفة المزيد حول ما نقوم ببنائه.

شاركها.
اترك تعليقاً